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 Codemotion 2014

My app social business - Guarnacci e Delvecchio
My app social business - Guarnacci e DelvecchioMy app social business - Guarnacci e Delvecchio
My app social business - Guarnacci e DelvecchioCodemotion
 
Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Graph Databases for SQL Server Professionals - SQLSaturday #350 WinnipegGraph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Graph Databases for SQL Server Professionals - SQLSaturday #350 WinnipegStéphane Fréchette
 
DSD-INT 2014 - Delft-FEWS Users Meeting - Recent developments in FEWS, Gerben...
DSD-INT 2014 - Delft-FEWS Users Meeting - Recent developments in FEWS, Gerben...DSD-INT 2014 - Delft-FEWS Users Meeting - Recent developments in FEWS, Gerben...
DSD-INT 2014 - Delft-FEWS Users Meeting - Recent developments in FEWS, Gerben...Deltares
 
What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018Jeff Smith
 
EdTechJoker Spring 2020 - Lecture 7 Drupal intro
EdTechJoker Spring 2020 - Lecture 7 Drupal introEdTechJoker Spring 2020 - Lecture 7 Drupal intro
EdTechJoker Spring 2020 - Lecture 7 Drupal introBryan Ollendyke
 
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
 

Similaire à OrientDB Codemotion 2014 (20)

My app social business - Guarnacci e Delvecchio
My app social business - Guarnacci e DelvecchioMy app social business - Guarnacci e Delvecchio
My app social business - Guarnacci e Delvecchio
 
Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Graph Databases for SQL Server Professionals - SQLSaturday #350 WinnipegGraph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
 
Session 203 iouc summit database
Session 203 iouc summit databaseSession 203 iouc summit database
Session 203 iouc summit database
 
DSD-INT 2014 - Delft-FEWS Users Meeting - Recent developments in FEWS, Gerben...
DSD-INT 2014 - Delft-FEWS Users Meeting - Recent developments in FEWS, Gerben...DSD-INT 2014 - Delft-FEWS Users Meeting - Recent developments in FEWS, Gerben...
DSD-INT 2014 - Delft-FEWS Users Meeting - Recent developments in FEWS, Gerben...
 
What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018
 
EdTechJoker Spring 2020 - Lecture 7 Drupal intro
EdTechJoker Spring 2020 - Lecture 7 Drupal introEdTechJoker Spring 2020 - Lecture 7 Drupal intro
EdTechJoker Spring 2020 - Lecture 7 Drupal intro
 
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
 

Plus de Luigi Dell'Aquila

OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016Luigi Dell'Aquila
 
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016Luigi Dell'Aquila
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016Luigi Dell'Aquila
 
OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016Luigi Dell'Aquila
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015Luigi Dell'Aquila
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL
OrientDB - the 2nd generation  of  (Multi-Model) NoSQLOrientDB - the 2nd generation  of  (Multi-Model) NoSQL
OrientDB - the 2nd generation of (Multi-Model) NoSQLLuigi Dell'Aquila
 
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014OrientDB - Time Series and Event Sequences - Codemotion Milan 2014
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014Luigi Dell'Aquila
 
Orient DB on the cloud - Cloud Party 2013
Orient DB on the cloud - Cloud Party 2013Orient DB on the cloud - Cloud Party 2013
Orient DB on the cloud - Cloud Party 2013Luigi Dell'Aquila
 

Plus de Luigi Dell'Aquila (8)

OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
 
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
 
OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL
OrientDB - the 2nd generation  of  (Multi-Model) NoSQLOrientDB - the 2nd generation  of  (Multi-Model) NoSQL
OrientDB - the 2nd generation of (Multi-Model) NoSQL
 
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014OrientDB - Time Series and Event Sequences - Codemotion Milan 2014
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014
 
Orient DB on the cloud - Cloud Party 2013
Orient DB on the cloud - Cloud Party 2013Orient DB on the cloud - Cloud Party 2013
Orient DB on the cloud - Cloud Party 2013
 

Dernier

MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 

Dernier (20)

2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 

OrientDB Codemotion 2014

  • 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