SlideShare une entreprise Scribd logo
1  sur  49
ROME 11-12 april 2014ROME 11-12 april 2014
OrientDB: a Document-Graph Database
ready for the Cloud
OrientDB Committer
OrientDB Academy Coordinator at Orient Technologies LTD
Project Manager at AssetData S.r.l.
Email: l.dellaquila – at – orientechnologies.com
Twitter: @ldellaquila
Luigi Dell’Aquila
ROME 11-12 april 2014 - Luigi Dell’Aquila
Relational Databases:
Everybody knows what a TABLE is
Everybody knows SQL
ROME 11-12 april 2014 - Luigi Dell’Aquila
These are tables,
Data ARE Tables!
ROME 11-12 april 2014 - Luigi Dell’Aquila
These are tables,
Data ARE Tables!
ROME 11-12 april 2014 - Luigi Dell’Aquila
These are tables,
Data ARE Tables!
ROME 11-12 april 2014 - Luigi Dell’Aquila
But this is not
ROME 11-12 april 2014 - Luigi Dell’Aquila
But this is not
ROME 11-12 april 2014 - Luigi Dell’Aquila
But this is not
ROME 11-12 april 2014 - Luigi Dell’Aquila
But this is not
ROME 11-12 april 2014 - Luigi Dell’Aquila
But this is not
ROME 11-12 april 2014 - Luigi Dell’Aquila
These are
GRAPHS!
ROME 11-12 april 2014 - Luigi Dell’Aquila
And sometimes
Representing them in tables
Can be difficult
And
Inefficient
ROME 11-12 april 2014 - Luigi Dell’Aquila
Think about it…
ROME 11-12 april 2014 - Luigi Dell’Aquila
When you write your code
You have to deal with
Links, References, Pointers
ROME 11-12 april 2014 - Luigi Dell’Aquila
When you write your code
You have to deal with
Collections and Maps
(and dynamic data structures!)
ROME 11-12 april 2014 - Luigi Dell’Aquila
When you write your code
You have to deal with
Nested and complex objects
ROME 11-12 april 2014 - Luigi Dell’Aquila
When you write your code
You have to deal with
Class hierarchies,
Inheritance, Polymorphism
ROME 11-12 april 2014 - Luigi Dell’Aquila
Would You Like
A Storage Layer
That Supports ALL
These Conceps
Out Of The Box?
ROME 11-12 april 2014
This is why
Was born
- Luigi Dell’Aquila
ROME 11-12 april 2014 - Luigi Dell’Aquila
Two data models:
Graph
and
Document
ROME 11-12 april 2014 - Luigi Dell’Aquila
Classes, not Tables
create class Person
create class Student extends Person
select from Person
Polymorphic query: returns both instances of Person and
Student
ROME 11-12 april 2014 - Luigi Dell’Aquila
Dynamic schema
create class Person
insert into Person (name, surname) values (“Luigi”,
“Dell’Aquila”)
No need to fully specify the class structure, you can work in
schemaless mode
ROME 11-12 april 2014 - Luigi Dell’Aquila
Complex attributes
Update person
set address = {
“street”: “5th Ave”,
“city”: “NY”
},
tags = [“developer”, “artist”, “geek”]
Collections and embedded properties
ROME 11-12 april 2014 - Luigi Dell’Aquila
Physical links
(no Join!)
Update person set address.city =
(select from city where name = ‘Rome’)
where name = ‘Luigi’
Select address.city.country.name
from Person where name = ‘Luigi’
Dot notation instead of Join
No need for foreign keys
O(1) computational cost – compared to O(log N) in relational Join
ROME 11-12 april 2014 - Luigi Dell’Aquila
The Graph API
(TinkerPop Blueprints)
Traverse out(“Friend”) from
(select from Person where name = ‘Luigi’)
while address.city = ‘Rome’
Find my friends network in my city (friends, firends of frineds,
friends of friends of friends…)
Deep traversal, no need to know in advance HOW deep
ROME 11-12 april 2014 - Luigi Dell’Aquila
Every record has unique ID
Select from Person
{"result": [
{
"@rid": "#13:0",
"@class": “Person",
"name": "Luigi",
"surname": "Dell'Aquila",
"friendOf": "#13:1"
}
]}
ROME 11-12 april 2014 - Luigi Dell’Aquila
Every record has unique ID
Select from Person
{"result": [
{
"@rid": "#13:0",
"@class": “Person",
"name": "Luigi",
"surname": "Dell'Aquila",
"friendOf": "#13:1"
}
]}
ROME 11-12 april 2014 - Luigi Dell’Aquila
Every record has unique ID
Select from Person
{"result": [
{
"@rid": "#13:0",
"@class": “Person",
"name": "Luigi",
"surname": "Dell'Aquila",
"friendOf": "#13:1"
}
]}
ROME 11-12 april 2014 - Luigi Dell’Aquila
Record ID (RID)
=
Physical position
ROME 11-12 april 2014 - Luigi Dell’Aquila
Traversing relationships
=
Following a physical path
ROME 11-12 april 2014 - Luigi Dell’Aquila
It means:
• Accessing linked data is very efficient
• No calculation *
• Independent from cluster size **
• Deep traversal is allowed and encouraged ***
* In RDMS, a Join is calculated EVERY TIME you execute a query
** RDBS use index-based optimization to speed up joins, but index
access is O(log N), so it depends on data size – what about Big
Data???
*** in RDMS multiple joins are inefficient (would you dare to write a
query with 1000 joins?)
ROME 11-12 april 2014 - Luigi Dell’Aquila
But OrientDB
Gives you more!
ROME 11-12 april 2014 - Luigi Dell’Aquila
Javascript In the Storage
Extend the query language
With you own functions
ROME 11-12 april 2014 - Luigi Dell’Aquila
Javascript functions
As REST services
ROME 11-12 april 2014 - Luigi Dell’Aquila
But of course you can use it
from
ROME 11-12 april 2014 - Luigi Dell’Aquila
90’s are gone
Today you need
ROME 11-12 april 2014 - Luigi Dell’Aquila
Scalability
ROME 11-12 april 2014 - Luigi Dell’Aquila
High availability
ROME 11-12 april 2014 - Luigi Dell’Aquila
Fault tolerance
ROME 11-12 april 2014 - Luigi Dell’Aquila
Today everybody
(with a little luck)
Can write a killer app
And reach billions of users
ROME 11-12 april 2014 - Luigi Dell’Aquila
provides:
Replication (Multi Master)
and
Sharding
Also on cloud infrastructures
ROME 11-12 april 2014 - Luigi Dell’Aquila
HAZELCAST HAZELCAST
HAZELCAST
Multi Master
ROME 11-12 april 2014 - Luigi Dell’Aquila
Example
ROME 11-12 april 2014 - Luigi Dell’Aquila
HAZELCAST HAZELCAST
HAZELCAST
Amazon
Elastic
Load
Balancing
+
Auto
Scaling
ROME 11-12 april 2014 - Luigi Dell’Aquila
HOWTO 1/3
Key pair
ROME 11-12 april 2014 - Luigi Dell’Aquila
HOWTO 2/3
Security group
ROME 11-12 april 2014 - Luigi Dell’Aquila
HOWTO 3/3
ROME 11-12 april 2014ROME 11-12 april 2014
http://www.orientechnologies.com
http://www.orientechnologies.com/training
https://github.com/orientechnologies/orientdb/
Job opportunities: jobs@assetdata.it
References
ROME 11-12 april 2014ROME 11-12 april 2014
http://www.orientechnologies.com/event/orientdb-
planet-first-conference-orientdb-rome-italy/
OrientDB Planet

Contenu connexe

Similaire à OrientDB: a Document-Graph Database ready for the Cloud - Dell'Aquila

Vert.x - Dessì
Vert.x - DessìVert.x - Dessì
Vert.x - DessìCodemotion
 
“Publishing and Consuming Linked Data. (Lessons learnt when using LOD in an a...
“Publishing and Consuming Linked Data. (Lessons learnt when using LOD in an a...“Publishing and Consuming Linked Data. (Lessons learnt when using LOD in an a...
“Publishing and Consuming Linked Data. (Lessons learnt when using LOD in an a...Marta Villegas
 
sopac : connecting koha and drupal
sopac : connecting koha and drupalsopac : connecting koha and drupal
sopac : connecting koha and drupalNicolas Morin
 
.NET Development for SQL Server Developer
.NET Development for SQL Server Developer.NET Development for SQL Server Developer
.NET Development for SQL Server DeveloperMarco Parenzan
 
Drupal
DrupalDrupal
Drupalbtopro
 
Session 5 - SOPAC: Further Separateing Front Office and Back Office Application
Session 5 - SOPAC: Further Separateing Front Office and Back Office ApplicationSession 5 - SOPAC: Further Separateing Front Office and Back Office Application
Session 5 - SOPAC: Further Separateing Front Office and Back Office ApplicationJonathan Field
 
Ddd cqrs - Forat Latif
Ddd cqrs - Forat LatifDdd cqrs - Forat Latif
Ddd cqrs - Forat LatifCodemotion
 
Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso CrowdcoreSviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso CrowdcoreENTER S.r.l.
 
How execute perfomance tests in a continuous delivery environment
How execute perfomance tests in a continuous delivery environmentHow execute perfomance tests in a continuous delivery environment
How execute perfomance tests in a continuous delivery environmentAndrea Bozzoni
 
How to execute the performance tests during a build in a continuous delivery ...
How to execute the performance tests during a build in a continuous delivery ...How to execute the performance tests during a build in a continuous delivery ...
How to execute the performance tests during a build in a continuous delivery ...Codemotion
 
Oracle Service Bus and Oracle SOA Suite in the Mobile World
Oracle Service Bus and Oracle SOA Suite in the Mobile WorldOracle Service Bus and Oracle SOA Suite in the Mobile World
Oracle Service Bus and Oracle SOA Suite in the Mobile WorldGuido Schmutz
 
THE POWER OF OPENDJ AND REST
THE POWER OF OPENDJ AND RESTTHE POWER OF OPENDJ AND REST
THE POWER OF OPENDJ AND RESTForgeRock
 
Microsoft Flow : what you need to know before starting a real project
Microsoft Flow : what you need to know before starting a real projectMicrosoft Flow : what you need to know before starting a real project
Microsoft Flow : what you need to know before starting a real projectserge luca
 
Session Flow advanced - Serge Luca, Isabelle van Campenhoudt
Session Flow advanced - Serge Luca, Isabelle van CampenhoudtSession Flow advanced - Serge Luca, Isabelle van Campenhoudt
Session Flow advanced - Serge Luca, Isabelle van CampenhoudtaOS Community
 
CV_Vaira_Pasquale - Eng
CV_Vaira_Pasquale - EngCV_Vaira_Pasquale - Eng
CV_Vaira_Pasquale - EngPasquale Vaira
 
Sketchnotes+Service Design=BFFs :: Service Design Meetup [Tue Feb 11, 2014]
Sketchnotes+Service Design=BFFs :: Service Design Meetup [Tue Feb 11, 2014]Sketchnotes+Service Design=BFFs :: Service Design Meetup [Tue Feb 11, 2014]
Sketchnotes+Service Design=BFFs :: Service Design Meetup [Tue Feb 11, 2014]Kate Rutter
 

Similaire à OrientDB: a Document-Graph Database ready for the Cloud - Dell'Aquila (20)

Vert.x - Dessì
Vert.x - DessìVert.x - Dessì
Vert.x - Dessì
 
“Publishing and Consuming Linked Data. (Lessons learnt when using LOD in an a...
“Publishing and Consuming Linked Data. (Lessons learnt when using LOD in an a...“Publishing and Consuming Linked Data. (Lessons learnt when using LOD in an a...
“Publishing and Consuming Linked Data. (Lessons learnt when using LOD in an a...
 
sopac : connecting koha and drupal
sopac : connecting koha and drupalsopac : connecting koha and drupal
sopac : connecting koha and drupal
 
.NET Development for SQL Server Developer
.NET Development for SQL Server Developer.NET Development for SQL Server Developer
.NET Development for SQL Server Developer
 
Drupal
DrupalDrupal
Drupal
 
Mostafa EL-Masry Project
Mostafa EL-Masry ProjectMostafa EL-Masry Project
Mostafa EL-Masry Project
 
Session 5 - SOPAC: Further Separateing Front Office and Back Office Application
Session 5 - SOPAC: Further Separateing Front Office and Back Office ApplicationSession 5 - SOPAC: Further Separateing Front Office and Back Office Application
Session 5 - SOPAC: Further Separateing Front Office and Back Office Application
 
Ddd cqrs - Forat Latif
Ddd cqrs - Forat LatifDdd cqrs - Forat Latif
Ddd cqrs - Forat Latif
 
Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso CrowdcoreSviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
 
How execute perfomance tests in a continuous delivery environment
How execute perfomance tests in a continuous delivery environmentHow execute perfomance tests in a continuous delivery environment
How execute perfomance tests in a continuous delivery environment
 
How to execute the performance tests during a build in a continuous delivery ...
How to execute the performance tests during a build in a continuous delivery ...How to execute the performance tests during a build in a continuous delivery ...
How to execute the performance tests during a build in a continuous delivery ...
 
Hive sq lfor-hadoop
Hive sq lfor-hadoopHive sq lfor-hadoop
Hive sq lfor-hadoop
 
Oracle Service Bus and Oracle SOA Suite in the Mobile World
Oracle Service Bus and Oracle SOA Suite in the Mobile WorldOracle Service Bus and Oracle SOA Suite in the Mobile World
Oracle Service Bus and Oracle SOA Suite in the Mobile World
 
THE POWER OF OPENDJ AND REST
THE POWER OF OPENDJ AND RESTTHE POWER OF OPENDJ AND REST
THE POWER OF OPENDJ AND REST
 
Web Frameworks
Web FrameworksWeb Frameworks
Web Frameworks
 
Microsoft Flow : what you need to know before starting a real project
Microsoft Flow : what you need to know before starting a real projectMicrosoft Flow : what you need to know before starting a real project
Microsoft Flow : what you need to know before starting a real project
 
Session Flow advanced - Serge Luca, Isabelle van Campenhoudt
Session Flow advanced - Serge Luca, Isabelle van CampenhoudtSession Flow advanced - Serge Luca, Isabelle van Campenhoudt
Session Flow advanced - Serge Luca, Isabelle van Campenhoudt
 
Sybase To Oracle Migration for Developers
Sybase To Oracle Migration for DevelopersSybase To Oracle Migration for Developers
Sybase To Oracle Migration for Developers
 
CV_Vaira_Pasquale - Eng
CV_Vaira_Pasquale - EngCV_Vaira_Pasquale - Eng
CV_Vaira_Pasquale - Eng
 
Sketchnotes+Service Design=BFFs :: Service Design Meetup [Tue Feb 11, 2014]
Sketchnotes+Service Design=BFFs :: Service Design Meetup [Tue Feb 11, 2014]Sketchnotes+Service Design=BFFs :: Service Design Meetup [Tue Feb 11, 2014]
Sketchnotes+Service Design=BFFs :: Service Design Meetup [Tue Feb 11, 2014]
 

Plus de Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

Plus de Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Dernier

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Dernier (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

OrientDB: a Document-Graph Database ready for the Cloud - Dell'Aquila

  • 1. ROME 11-12 april 2014ROME 11-12 april 2014 OrientDB: a Document-Graph Database ready for the Cloud OrientDB Committer OrientDB Academy Coordinator at Orient Technologies LTD Project Manager at AssetData S.r.l. Email: l.dellaquila – at – orientechnologies.com Twitter: @ldellaquila Luigi Dell’Aquila
  • 2. ROME 11-12 april 2014 - Luigi Dell’Aquila Relational Databases: Everybody knows what a TABLE is Everybody knows SQL
  • 3. ROME 11-12 april 2014 - Luigi Dell’Aquila These are tables, Data ARE Tables!
  • 4. ROME 11-12 april 2014 - Luigi Dell’Aquila These are tables, Data ARE Tables!
  • 5. ROME 11-12 april 2014 - Luigi Dell’Aquila These are tables, Data ARE Tables!
  • 6. ROME 11-12 april 2014 - Luigi Dell’Aquila But this is not
  • 7. ROME 11-12 april 2014 - Luigi Dell’Aquila But this is not
  • 8. ROME 11-12 april 2014 - Luigi Dell’Aquila But this is not
  • 9. ROME 11-12 april 2014 - Luigi Dell’Aquila But this is not
  • 10. ROME 11-12 april 2014 - Luigi Dell’Aquila But this is not
  • 11. ROME 11-12 april 2014 - Luigi Dell’Aquila These are GRAPHS!
  • 12. ROME 11-12 april 2014 - Luigi Dell’Aquila And sometimes Representing them in tables Can be difficult And Inefficient
  • 13. ROME 11-12 april 2014 - Luigi Dell’Aquila Think about it…
  • 14. ROME 11-12 april 2014 - Luigi Dell’Aquila When you write your code You have to deal with Links, References, Pointers
  • 15. ROME 11-12 april 2014 - Luigi Dell’Aquila When you write your code You have to deal with Collections and Maps (and dynamic data structures!)
  • 16. ROME 11-12 april 2014 - Luigi Dell’Aquila When you write your code You have to deal with Nested and complex objects
  • 17. ROME 11-12 april 2014 - Luigi Dell’Aquila When you write your code You have to deal with Class hierarchies, Inheritance, Polymorphism
  • 18. ROME 11-12 april 2014 - Luigi Dell’Aquila Would You Like A Storage Layer That Supports ALL These Conceps Out Of The Box?
  • 19. ROME 11-12 april 2014 This is why Was born - Luigi Dell’Aquila
  • 20. ROME 11-12 april 2014 - Luigi Dell’Aquila Two data models: Graph and Document
  • 21. ROME 11-12 april 2014 - Luigi Dell’Aquila Classes, not Tables create class Person create class Student extends Person select from Person Polymorphic query: returns both instances of Person and Student
  • 22. ROME 11-12 april 2014 - Luigi Dell’Aquila Dynamic schema create class Person insert into Person (name, surname) values (“Luigi”, “Dell’Aquila”) No need to fully specify the class structure, you can work in schemaless mode
  • 23. ROME 11-12 april 2014 - Luigi Dell’Aquila Complex attributes Update person set address = { “street”: “5th Ave”, “city”: “NY” }, tags = [“developer”, “artist”, “geek”] Collections and embedded properties
  • 24. ROME 11-12 april 2014 - Luigi Dell’Aquila Physical links (no Join!) Update person set address.city = (select from city where name = ‘Rome’) where name = ‘Luigi’ Select address.city.country.name from Person where name = ‘Luigi’ Dot notation instead of Join No need for foreign keys O(1) computational cost – compared to O(log N) in relational Join
  • 25. ROME 11-12 april 2014 - Luigi Dell’Aquila The Graph API (TinkerPop Blueprints) Traverse out(“Friend”) from (select from Person where name = ‘Luigi’) while address.city = ‘Rome’ Find my friends network in my city (friends, firends of frineds, friends of friends of friends…) Deep traversal, no need to know in advance HOW deep
  • 26. ROME 11-12 april 2014 - Luigi Dell’Aquila Every record has unique ID Select from Person {"result": [ { "@rid": "#13:0", "@class": “Person", "name": "Luigi", "surname": "Dell'Aquila", "friendOf": "#13:1" } ]}
  • 27. ROME 11-12 april 2014 - Luigi Dell’Aquila Every record has unique ID Select from Person {"result": [ { "@rid": "#13:0", "@class": “Person", "name": "Luigi", "surname": "Dell'Aquila", "friendOf": "#13:1" } ]}
  • 28. ROME 11-12 april 2014 - Luigi Dell’Aquila Every record has unique ID Select from Person {"result": [ { "@rid": "#13:0", "@class": “Person", "name": "Luigi", "surname": "Dell'Aquila", "friendOf": "#13:1" } ]}
  • 29. ROME 11-12 april 2014 - Luigi Dell’Aquila Record ID (RID) = Physical position
  • 30. ROME 11-12 april 2014 - Luigi Dell’Aquila Traversing relationships = Following a physical path
  • 31. ROME 11-12 april 2014 - Luigi Dell’Aquila It means: • Accessing linked data is very efficient • No calculation * • Independent from cluster size ** • Deep traversal is allowed and encouraged *** * In RDMS, a Join is calculated EVERY TIME you execute a query ** RDBS use index-based optimization to speed up joins, but index access is O(log N), so it depends on data size – what about Big Data??? *** in RDMS multiple joins are inefficient (would you dare to write a query with 1000 joins?)
  • 32. ROME 11-12 april 2014 - Luigi Dell’Aquila But OrientDB Gives you more!
  • 33. ROME 11-12 april 2014 - Luigi Dell’Aquila Javascript In the Storage Extend the query language With you own functions
  • 34. ROME 11-12 april 2014 - Luigi Dell’Aquila Javascript functions As REST services
  • 35. ROME 11-12 april 2014 - Luigi Dell’Aquila But of course you can use it from
  • 36. ROME 11-12 april 2014 - Luigi Dell’Aquila 90’s are gone Today you need
  • 37. ROME 11-12 april 2014 - Luigi Dell’Aquila Scalability
  • 38. ROME 11-12 april 2014 - Luigi Dell’Aquila High availability
  • 39. ROME 11-12 april 2014 - Luigi Dell’Aquila Fault tolerance
  • 40. ROME 11-12 april 2014 - Luigi Dell’Aquila Today everybody (with a little luck) Can write a killer app And reach billions of users
  • 41. ROME 11-12 april 2014 - Luigi Dell’Aquila provides: Replication (Multi Master) and Sharding Also on cloud infrastructures
  • 42. ROME 11-12 april 2014 - Luigi Dell’Aquila HAZELCAST HAZELCAST HAZELCAST Multi Master
  • 43. ROME 11-12 april 2014 - Luigi Dell’Aquila Example
  • 44. ROME 11-12 april 2014 - Luigi Dell’Aquila HAZELCAST HAZELCAST HAZELCAST Amazon Elastic Load Balancing + Auto Scaling
  • 45. ROME 11-12 april 2014 - Luigi Dell’Aquila HOWTO 1/3 Key pair
  • 46. ROME 11-12 april 2014 - Luigi Dell’Aquila HOWTO 2/3 Security group
  • 47. ROME 11-12 april 2014 - Luigi Dell’Aquila HOWTO 3/3
  • 48. ROME 11-12 april 2014ROME 11-12 april 2014 http://www.orientechnologies.com http://www.orientechnologies.com/training https://github.com/orientechnologies/orientdb/ Job opportunities: jobs@assetdata.it References
  • 49. ROME 11-12 april 2014ROME 11-12 april 2014 http://www.orientechnologies.com/event/orientdb- planet-first-conference-orientdb-rome-italy/ OrientDB Planet