OrientDB - the 2nd generation of (Multi-Model) NoSQL
1. 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
2. “90% of the data
in the world today
has been created
in the last two years alone.”
- IBM
Welcome to Big Data
3. Just Data
Order #134
(Order) John
(Provider)
Commodore
Amiga 1200
(Product)
Frank
(Customer)
Monitor 40”
(Product)
Mouse
(Product)
Bruno
(Provider)
4. Just Data
Order #134
(Order) John
(Provider)
Commodore
Amiga 1200
(Product)
Frank
(Customer)
Monitor 40”
(Product)
Mouse
(Product)
Bruno
(Provider)
Data by itself has little value,
it’s the relationship
between data that gives it
incredible value
5. Relationships give data “meaning”
Order #134
(Order) John
(Provider)
Commodore
Amiga 1200
(Product)
(Sells)
Frank
(Customer)
(Has)
(Makes)
Monitor 40”
(Product)
(Sells)
(Has)
Mouse
(Product)
Bruno
(Provider)
(Sells)
(Has)
8. Why do most NoSQL products
avoid
managing relationships?
9. 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. 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. Joins Kill Performance
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
17. This is why the database
query performance
suffers as the database
increases in size
O(Log N)
19. In a world that’s becoming
more connected, we need a
better way to store data and
manage relationships
Read: Data is important, but relationships are even more fundamental today
20. “A graph database is any
storage system
that provides
index-free adjacency”
- Marko Rodriguez
(author of TinkerPop Blueprints)
24. Vertices and Edges can
have properties
Vertices are directed
* https://github.com/tinkerpop/blueprints/wiki/Property-Graph-Model
Property Graph Model*
Lyon
people: 500,000
Luigi
company:
OrientTechnologies
Vertices and Edges can
have properties
Vertices and Edges can
have properties
Visited
on: 2015
25. Luigi Lyon
An Edge connects only 2 vertices
Use multiple edges to represent 1-N
and N-M relationships
1-N and N-M Relationships
28. How does a true*
Graph Database
manage relationships?
*a “Graph” layer on top of a DBMS doesn’t qualify as a true GraphDB
29. Luigi Lyon
#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
33. A Graph Database creates the
relationship just once
(when the edge is created)
VS
RDBMS computes the
relationship every time
you query a database
34. 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
35. Graph Databases Easily Manage Complex
Relationships
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
44. What’s Multi-Model DBMS?
GraphDocument
Object
Key/Value
Multi Model represents the
intersection
of multiple models in just one
product
- 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
45. Relationships give data “meaning”
Order #134
(Order) John
(Provider)
Commodore
Amiga 1200
(Product)
(Sells)
Frank
(Customer)
(Has)
(Makes)
Monitor 40”
(Product)
(Sells)
(Has)
Mouse
(Product)
Bruno
(Provider)
(Sells)
(Has)
46. Multi-Model domain schema
Customer Provider
Product
name: string
qty: int
Actor
name: string
surname: string
Sells
price: decimal
Inherits
Edge
Legenda:
V Vertex
Makes
Order
number: int
date: datetime
Has
price: decimal
47. `
Vertices and Edges are Documents
{
”@rid": “12:382”,
”@class": ”Customer",
“name”: “Frank”,
“surname” : “Raggio”,
“phone” : “+39 33123212”,
“details”: {
“city”:”London",
“tags”:”millennial”
}
}
Frank
Order
General purpose solution:
• JSON
• Schema-less
• Schema-full
• Schema-hybrid
• Nested documents
• Rich indexing and
querying
• Developer friendly
53. There are a few DBMSs that claim
to be Multi-Model, but they do not
have a true Graph Engine.
The “Graph” is only a layer on top
of the engine.
Under the hood they do JOINs,
which means traversal time is
affected by database size.
54. Meet OrientDB
The First Ever Multi-Model
Database Combining Flexibility
of Documents with
Connectedness of Graphs
55. With a true Graph, Document,
Key/Value and Object Oriented engine
58. • 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
59. Availability and Integrity
• Atomic, Consistent, Isolated and Durable (ACID)
multi-statement transactions
Master
Node
Master
Node
C
C C C
CC
C
Multi-master
Replication
60. Scalability and Performance
• Multi-Master Replication, Sharding and Auto-
Discovery to Simplify Ops
• +200k Tps on Commodity Hardware
Master
Node
Master
Node
C
C C C
CC
C
Auto-
Discovered
Node
64. Get Started for Free
OrientDB Community Edition is FREE
for any purpose (Apache 2 license)
Udemy Getting Started Training is
★★★★★ and Free
http://www.orientechnologies.com/getting-started
OrientDB Enterprise is Free for
Development