@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
53
Embed
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
@ldellaquila#Devoxx #OrientDB
Luigi Dell’AquilaDirector of ConsultingOrient Technologies LTDTwitter: @ldellaquila
http://www.orientdb.com
OrientDB - the 2nd generation of
(Multi-Model) NoSQLAnd why GraphDB are the starting point of this revolution
Use multiple edges to represent 1-‐N and N-‐M relationships
Worked on: 2015
1-N and N-M Relationships
@ldellaquila#Devoxx #OrientDB
Congrats! This is your diploma in «Graph Theory»
@ldellaquila#Devoxx #OrientDB
How does a true* Graph Database
manage relationships?
*a “Graph” layer on top of a DBMS doesn’t qualify as a true GraphDB
@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
@ldellaquila#Devoxx #OrientDB
Luigi Antwerp
Visited on: 2015
#13:55#15:99
Connections use persistent pointers
out = #22:11in = #22:11
#22:11
(Edge)
(Vertex)(Vertex)
out = #13:55
in = #15:99
@ldellaquila#Devoxx #OrientDB
Luigi Antwerp
Visited on: 2015
#13:55#15:99out = #22:11
in = #22:11
#22:11
(Edge)
(Vertex)(Vertex)
out = #13:55
in = #15:99
@ldellaquila#Devoxx #OrientDB
Luigi Lyon
Visited on: 2015
#13:55#15:99out = #22:11
in = #22:11
#22:11
(Edge)
(Vertex)(Vertex)
out = #13:55
in = #15:99
@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
@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
@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
@ldellaquila#Devoxx #OrientDB
Rel
atio
nshi
ps C
ompl
exity
>
Data Complexity >
Relational
Key Value
Column
Graph
Document
First generation NoSQL
@ldellaquila#Devoxx #OrientDB
@ldellaquila#Devoxx #OrientDB
Oracle(RDBMS)
Redis orMemcache(Key/Value)
MongoDB(DocDB)
Neo4j(GraphDB)
Application
ETL
Primary DB
@ldellaquila#Devoxx #OrientDB
Oracle(RDBMS)
Redis orMemcache(Key/Value)
MongoDB(DocDB)
Neo4j(GraphDB)
Application
ETL
- No standard between NoSQL products - Multiple vendors = multiple skills - ETL + synchronization code is costly to write and maintain - Performance and Reliability is hard to predict
@ldellaquila#Devoxx #OrientDB
2nd Generation NoSQL is
Multi-Model
2nd Generation NoSQL is
Multi-model
@ldellaquila#Devoxx #OrientDB
GraphDocument
Object
Key/Value
Multi Model represents the intersection
of multiple models in just one product
What’s Multi-Model DBMS?
@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
With a true Graph, Document, Key/Value and Object Oriented engine
@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
@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
@ldellaquila#Devoxx #OrientDB
Master Node Master Node
CC C C
CC
C
Multi-master Replication
Atomic, Consistent, Isolated and Durable (ACID) multi-statement transactions
@ldellaquila#Devoxx #OrientDB
Master Node Master Node
CC C C
CC
C
Auto-Discovered
Node
Multi-Master Replication, Sharding and Auto-Discovery to Simplify Ops+200k Tps on Commodity Hardware
Demo
@ldellaquila#Devoxx #OrientDB
@ldellaquila#Devoxx #OrientDB
50,000 Downloads per
Month from 200+ countries.
70+ Committers
contributing to the product
1000s Users from SMBs
to Fortune 10 Companies.
17+ Years of Research have been put in
the product
@ldellaquila#Devoxx #OrientDB
Graph DBMS increased their popularity by 500% within the last 2 years Document DBMS are the 3rd fastest growing category
@ldellaquila#Devoxx #OrientDB
@ldellaquila#Devoxx #OrientDB
Udemy Getting Started Training is ★★★★★ and Freehttp://www.orientechnologies.com/getting-started
OrientDB Enterprise is Free for Development
OrientDB Community is FREE for any purpose (APACHE 2 license)