OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
1. @ldellaquila#Devoxx #OrientDB
Luigi Dell’Aquila
Director of Consulting
Orient Technologies LTD
Twitter: @ldellaquila
http://www.orientdb.com
OrientDB - the 2nd generation
of
(Multi-Model) NoSQL
And why GraphDB are the starting point of this revolution
9. @ldellaquila#Devoxx #OrientDB
ID Name
10 John
11 John
24 Mike
28 Mike
ID Address
10 24
10 33
32 44
ID Location
24 Milan
33 London
18 Paris
18 Madrid
44 Moscow
Customer CustomerAddress Address
Is this
familiar?
15. @ldellaquila#Devoxx #OrientDB
Index Lookup: how does it work?
A-‐Z
A-‐L M-‐Z
A-‐L
A-‐D E-‐L
M-‐Z
M-‐R S-‐Z
A-‐D
A-‐B C-‐D
E-‐L
E-‐G H-‐L
E-‐G
E-‐F G
H-‐L
H-‐J K-‐L
Luigi
Found!
This
lookup
took
5
steps.
With
millions
of
indexed
records,
the
tree
depth
could
be
1000’s
of
levels!
16. @ldellaquila#Devoxx #OrientDB
ID Name
10 John
11 John
24 Mike
28 Mike
ID Address
10 24
10 33
32 44
ID Location
24 Milan
33 London
18 Paris
18 Madrid
44 Moscow
Customer CustomerAddress Address
Joins are executed every time
you cross relationships
Querying million of records
joining 3-4 tables could
generate billions of
combinations
20. @ldellaquila#Devoxx #OrientDB
“A graph database is any
storage system
that provides
index-free adjacency”
- Marko Rodriguez
(author of TinkerPop Blueprints)
23. @ldellaquila#Devoxx #OrientDB
Vertices
and
Edges
can
have
properties
Vertices
are
directed
*
https://github.com/tinkerpop/blueprints/wiki/Property-‐Graph-‐Model
Property Graph Model*
Antwerp
country:
Belgium
Luigi
company:
OrientTechnologies
Vertices
and
Edges
can
have
properties
Vertices
and
Edges
can
have
properties
Visited
on:
2015
27. @ldellaquila#Devoxx #OrientDB
Luigi Antwerp
Visited
on:
2015
#13:55
#15:99
Each element in the
Graph has own immutable
Record ID
#22:11
(Edge)
(Vertex)
(Vertex)
Each element in the
Graph has own immutable
Record ID
Each element in the
Graph has own immutable
Record ID
31. @ldellaquila#Devoxx #OrientDB
A Graph Database creates the
relationship just once
(when the edge is created)
VS
RDBMS computes the
relationship every time
you query a database
32. @ldellaquila#Devoxx #OrientDB
When you move from a RDBMS
to a Graph Database you jump
from a O(log N) speed to a near O(1)
With a Graph Database, the
traversing time is
not affected by database size!
This is huge in the BigData age
33. @ldellaquila#Devoxx #OrientDB
No costs to traverse relationships:
• Recommendation engines
• Social Applications
• Spatial Apps
• Master Data Management
• Information Clustering
John
Thriller
Comedy
Pulp
Fiction
Mr Bean
Theater
B
Theater
A
Theater C
NYC
San Josè
Lives in
Likes
40. @ldellaquila#Devoxx #OrientDB
GraphDocument
Object
Key/Value
Multi Model represents the
intersection
of multiple models in just one
product
What’s Multi-Model DBMS?
- Just one product to learn and maintain
- Just one vendor relationship to manage
- No ETL, no synchronization required
- Performance and Reliability is easy to test from the beginning
41. @ldellaquila#Devoxx #OrientDB
`
{
”@rid": “12:382”,
”@class": ”Customer",
“name”: “Frank”,
“surname” : “Raggio”,
“phone” : “+39 33123212”,
“details”: {
“city”:”London",
“tags”:”millennial”
}
}
Frank
Order
M
akes
General purpose solution:
• JSON
• Schema-less
• Schema-full
• Schema-hybrid
• Nested documents
• Rich indexing and querying
• Developer friendly
44. @ldellaquila#Devoxx #OrientDB
FEATURES ORIENTDB)) MONGODB NEO4J
MYSQL)
(RDBMS)
Operational Database X X X
Graph Database X X
Document Database X X
Object-Oriented Concepts X
Schema-full, Schema-less, Schema mix X
User and Role & Record Level Security X
Record Level Locking X X X
SQL X X
ACID Transaction X X X
Relationships (Linked Documents) X X X
Custom Data Types X X X
Embedded Documents X X
Multi-Master Zero Configuration Replication X
Sharding X X
Server Side Functions X X X
Native HTTP Rest/ JSON X X
Embeddable with No Restrictions X
45. @ldellaquila#Devoxx #OrientDB
• Support for TinkerPop standard for
Graph DB: Gremlin language and
Blueprints API
• SQL + extensions for graphs
• JDBC driver to connect any BI tool
• HTTP/JSON support
• Drivers in Java, Node.js, Python,
PHP, .NET, Perl, C/C++ and more
API & Standards
46. @ldellaquila#Devoxx #OrientDB
Master Node Master Node
C
C C C
CC
C
Multi-master
Replication
Atomic, Consistent, Isolated and Durable (ACID) multi-statement transactions
47. @ldellaquila#Devoxx #OrientDB
Master Node Master Node
C
C C C
CC
C
Auto-
Discovered
Node
Multi-Master Replication, Sharding and Auto-Discovery to Simplify Ops
+200k Tps on Commodity Hardware
52. @ldellaquila#Devoxx #OrientDB
Udemy Getting Started Training is
★★★★★ and Free
http://www.orientechnologies.com/getting-started
OrientDB Enterprise is Free for
Development
OrientDB Community is FREE for any
purpose (APACHE 2 license)