SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
Scale Out Your Graph Across
Servers and Clouds
with OrientDB
#gdsf17
Luca Garulli, Founder and CEO @lgarulli
GraphDay - San Francisco - June 17, 2017
Copyright (c) - OrientDB LTD 2
We all want the same thing:
an open source GraphDB that is
Fast, Flexible, Scalable and
… Unbreakable!
Copyright (c) - OrientDB LTD 3
Complexity
Scalability
Single Thread
Multi Thread
Distributed
Systems/Complexity
Copyright (c) - OrientDB LTD 4
Master
Node
Auto-Discovery
I’m the
only one!
C
Copyright (c) - OrientDB LTD 5
Auto-Discovery
Master
Node
Master
Node
Connected!
C
Copyright (c) - OrientDB LTD 6
Master
Node
Master
Node
C
Updated distributed
configuration is broadcasted to
all the connected clients
Clients See the Distributed Configuration
Copyright (c) - OrientDB LTD 77
Master
Node
Master
Node
CC
Master
Node
Auto-reconnect in Case of Failure
In case of failure, the
clients auto-reconnect to
the available nodes
Copyright (c) - OrientDB LTD 88
Master
Node
Master
Node
C
DBs are
automatically deployed
to the newly joined
nodes
DB DB
Database Auto-deploy
C
C
C
Copyright (c) - OrientDB LTD 9
Replication: Under the Hood
Client commits a transaction
99999
Master
Node
Master
Node
Master
Node
HA
Queue
HA
Queue
HA
Queue
C
Transaction
Requests
Copyright (c) - OrientDB LTD 10101010101010
Master
Node
Master
Node
Master
Node
HA
Queue
HA
Queue
HA
Queue
C
HA
Queue
HA
Queue
HA
Queue
Replication: Under the Hood
Response Handling
WriteQuorum
= 2
Sends OK
OK
Requests
Responses
Copyright (c) - OrientDB LTD 11
Replication: Under the Hood
Fix the unaligned node
11111111111111
Master
Node
Master
Node
Master
Node
HA
Queue
HA
Queue
HA
Queue
HA
Queue
HA
Queue
HA
Queue
Requests
Responses
Fix
Commit
Copyright (c) - OrientDB LTD 12
Replication: Under the Hood
2pc messages
12121212121212
Fix (response != quorum)
Commit (response == quorum)
Rollback (quorum not reached)
Copyright (c) - OrientDB LTD 13
Master
Node A
Optimistic MVCC Distributed Transaction
(2) tx task
(4) return result
(7) asynch* commit, rollback or fix
(1) Lock all
records in order
+ Execute TX
locally
Master
Node B
(3) Lock all
records in order
+ Execute TX
locally
(5) Check
results
+ unlock all
records
(8)
Execute the
message and
Unlock all
records
C Node
A becomes the
transaction
coordinator
(6) send response back to the client
Copyright (c) - OrientDB LTD 14
Consistency
- Distributed Locks don’t block reads
- During the transaction the old version of the
record is retrieved
- 2pc message is asynchronous, so a record could
not be updated yet on server X
- If you need higher consistency, don’t use load
balancer policy ROUND_ROBIN_REQUEST
Copyright (c) - OrientDB LTD 15
{
"autoDeploy": true,
"writeQuorum": “majority”,
"newNodeStrategy": “static”,
"clusters": {
"*": {
"servers": ["<NEW_NODE>"]
}
}
}
Default Configuration (json)
deploys the database
automatically on new
nodes
Copyright (c) - OrientDB LTD 16
Default Configuration (json)
writeQuorum=2
means at least 2
nodes must agree on
writes. Set it to the
majority to ensure
consistency
{
"autoDeploy": true,
"writeQuorum": “majority”,
"newNodeStrategy": “static”,
"clusters": {
"*": {
"servers": ["<NEW_NODE>"]
}
}
}
Copyright (c) - OrientDB LTD 17
Default Configuration (json)
newNodeStrategy:
static (default) or
dynamic. Static = once
nodes join, they are
part of
configuration
{
"autoDeploy": true,
"writeQuorum": “majority”,
"newNodeStrategy": “static”,
"clusters": {
"*": {
"servers": ["<NEW_NODE>"]
}
}
}
Copyright (c) - OrientDB LTD 18
Default Configuration (json)
clusters contain the
distributed
configuration per
cluster
{
"autoDeploy": true,
"writeQuorum": “majority”,
"newNodeStrategy": “static”,
"clusters": {
"*": {
"servers": ["<NEW_NODE>"]
}
}
}
Copyright (c) - OrientDB LTD 19
Default Configuration (json)
cluster
“*” represents the
default cluster
configuration. Any new
node will join,
containing all the
clusters
{
"autoDeploy": true,
"writeQuorum": “majority”,
"newNodeStrategy": “static”,
"clusters": {
"*": {
"servers": ["<NEW_NODE>"]
}
}
}
Copyright (c) - OrientDB LTD 20
Custom Setting per Cluster
cluster “customer”
extends the default
configuration with a
custom writeQuorum
{
"autoDeploy": true,
"writeQuorum": “majority”,
"newNodeStrategy": “static”,
"clusters": {
"*": {
"servers": ["<NEW_NODE>"]
}, "customer": {
"writeQuorum": 3,
"servers": ["<NEW_NODE>"]
}
}
}
Copyright (c) - OrientDB LTD
What about scalability?
21
Copyright (c) - OrientDB LTD 22
Performance with Reads
2222222222
Master
Node
Master
Node
Master
Node
C
10,000
req/sec
C
C
10,000
req/sec
10,000
req/sec
Copyright (c) - OrientDB LTD
Full replication provides
linear scalability on reads,
but what about scalability on
writes?
23
Copyright (c) - OrientDB LTD 24
Performance with Writes
2424242424
Master
Node
C
12,000
req/sec
C
C
Copyright (c) - OrientDB LTD 25
Performance with Writes
2525252525
Master
Node
Master
Node
C
7000
req/sec
C
C
7000
req/sec
Copyright (c) - OrientDB LTD 26
Performance with Writes
2626262626
Master
Node
Master
Node
Master
Node
C
5000
req/sec
C
C
5000
req/sec
5000
req/sec
The more
replicas you
configure, the more
the propagation cost
will impact
performance, based
on writeQuorum
Copyright (c) - OrientDB LTD
In order to scale up writes,
you need
sharing + replication
We used a solution similar
to RAID for Hard Drives
27
Copyright (c) - OrientDB LTD
Sharding in OrientDB v2.2
28
Copyright (c) - OrientDB LTD 29
Assign 1 Cluster per Node
2929
customer_usa customer_europe customer_china
Master
Node
usa
Master
Node
europe
Master
Node
china
Customer
Copyright (c) - OrientDB LTD
Master
Node
usa
Master
Node
china
Master
Node
europe
30
RAID for Databases
303030
customer_usa customer_europe customer_china
Customer
customer_europecustomer_usacustomer_china
Replica
factor = 2
Copyright (c) - OrientDB LTD
Master
Node
usa
Master
Node
china
Master
Node
europe
31
Traversal with Spark (Pregel)
313131
C
https://spark.apache.org/docs/latest/graphx-programming-guide.html#pregel-api
Copyright (c) - OrientDB LTD 32
Sharding Configuration
LEGEND: X = Owner, o = Copy
+---------------+-----------+----------+-------+-------+-------+
| | | |MASTER |MASTER |MASTER |
| | | |ONLINE |ONLINE |ONLINE |
+---------------+-----------+----------+-------+-------+-------+
|CLUSTER |writeQuorum|readQuorum| usa |europe |china |
+---------------+-----------+----------+-------+-------+-------+
|* | 2 | 1 | X | | |
|customer_usa | 2 | 1 | X | | o |
|customer_europe| 2 | 1 | o | X | |
|customer_china | 2 | 1 | | o | X |
+---------------+-----------+----------+-------+-------+-------+
Copyright (c) - OrientDB LTD 33
Sharding Configuration
first node in list
is the “owner” for that
cluster
{
"clusters": {
“customer_usa": { "servers": [“usa”, “china”] },
“customer_europe": { "servers": [“europe”, “usa”] },
“customer_china": { "servers": [“china”, “europe”] }
}
}
Copyright (c) - OrientDB LTD 34
Static Owner
The owner can
be static. If the
owner is not online,
new records can’t be
inserted in the
cluster
{
"clusters": {
"client_usa": {
"owner": "usa",
"servers" : [ "usa", "europe", "asia" ]
}
}
} This assures
the owner is not
assigned
dynamically
Copyright (c) - OrientDB LTD 353535353535
Master
Node
C
5000
req/sec
C
C
Performance with Sharding
Copyright (c) - OrientDB LTD 363636363636
Master
Node
Master
Node
C
5000
req/sec
C
C
5000
req/sec
Performance with Sharding
Copyright (c) - OrientDB LTD 373737373737
Master
Node
Master
Node
C
5000
req/sec
C
C
5000
req/sec
Performance with Sharding
Master
Node
5000
req/sec
Master
Node
5000
req/sec
Master
Node
5000
req/sec
Each write is
replicated on
only 2 nodes
Copyright (c) - OrientDB LTD 38
Master
Node
Master
Node
C
C
C
C
C
C Master
Node
C
C
C
Master
Node
C
C
C
Master
Node
C
C
C
Master
Node
C
C
C
Master
Node
C
C
Linear and Elastic Scalability
on both Read & Writes!
Copyright (c) - OrientDB LTD 39
Replica only Nodes
3939
Replica
NodeMaster
Node
usa
Master
Node
usa
Master
Node
usa
Replica
Node
Replica
Node
Replica
Node
Replica
Node
Replica
Node
Replica
Node
Replica
Node
Replica
Node
Replica
Node
Replica
Node
Replica
Node
Replica servers
don’t concur in
writeQuorum
Copyright (c) - OrientDB LTD 40
Server Role Configuration
“*” by default each
node is a master.
Following nodes are
replica only
{
"servers": {
"*": “master”,
“usa_r1": “replica",
“usa_r2": “replica",
“usa_r3": “replica",
“europe_r1": “replica",
“china1_r1": "replica"
}
}
Copyright (c) - OrientDB LTD 41
Master
Node
Master
Node
C
Load-Balancing on Client Side
Master
Node
Copyright (c) - OrientDB LTD 42
Load-Balancing Configuration
final OrientGraphFactory factory = new OrientGraphFactory(“remote:localhost/demo");

factory.setConnectionStrategy(
OStorageRemote.CONNECTION_STRATEGY.ROUND_ROBIN_CONNECT);

OrientGraph graph = factory.getTx();
Available strategies:
- STICKY,
- ROUND_ROBIN_CONNECT,
- ROUND_ROBIN_REQUEST
Copyright (c) - OrientDB LTD 43
What if some records
are not aligned
for **ANY** reason?
Copyright (c) - OrientDB LTD 44
OrientDB Auto-Repairer
- Executed in chain
- It works in batch of 50 records per time (configurable)
- Strategies:
- Quorum: checks if it meets the configured write quorum
- Content: checks the content
- Majority: checks if at least there is a majority
- Version: gets the higher version
- DC (EE only). Example: dc{winner:asia}
Copyright (c) - OrientDB LTD 45
Master
Node
A
Master
Node
B
Auto-Repair Flow
(1) tx read [#10:33,#43:90,#12:23]
(3) return [{#10:33 v1},{#43:90 v5},{#12:23 v9}]
(2) lock
[#10:33,#
43:90,#12:
23]
(4) fix [{#43:90 v6}]
Copyright (c) - OrientDB LTD 46
Dynamic Timeouts (from v2.2.18)
orientdb> HA STATUS -latency -output=text
REPLICATION LATENCY AVERAGE (in milliseconds)
+-------+-----+------+-----+
|Servers|node1|node2*|node3|
+-------+-----+------+-----+
|node1 | | 0.60| 0.43|
|node2* | 0.39| | 0.38|
|node3 | 0.35| 0.53| |
+-------+-----+------+-----+
Copyright (c) - OrientDB LTD 47
Cross Datacenter & Cloud
Dublin
Austin
Cross Data
Centre and Cloud
replication. Data
Centers don’t need to
have the same number
of servers
Copyright (c) - OrientDB LTD 48
Data-Center (Enterprise only)
"dataCenters": {
"rome": {
"writeQuorum": "all",
"servers": [ "europe-0", "europe-1", "europe-2" ]
},
"austin": {
"writeQuorum": "all",
"servers": [ "usa-0", "usa-1", "usa-2" ]
}
}
Copyright (c) - OrientDB LTD 49
Performance
Copyright (c) - OrientDB LTD 50
Yahoo Benchmark 3 Nodes
OrientDB is
2x-3x faster than
Cassandra on the
same HW/SW
configuration,
same workload
Ops/sec
Copyright (c) - OrientDB LTD 51
OrientDB v3.1 (Q1 2018)
- DHT-like algorithm = Distributed
Sharded index
- Native support for batch-traversal
(Pregel-like) without Spark
- Background refactoring of the Graph
based on usage statistics
Copyright (c) - OrientDB LTD 52
Thank you!
@lgarulli
orientdb.com

Contenu connexe

Tendances

Updates from Cassandra Summit 2016 & SASI Indexes
Updates from Cassandra Summit 2016 & SASI IndexesUpdates from Cassandra Summit 2016 & SASI Indexes
Updates from Cassandra Summit 2016 & SASI IndexesJim Hatcher
 
20210928_pgunconf_hll_count
20210928_pgunconf_hll_count20210928_pgunconf_hll_count
20210928_pgunconf_hll_countKohei KaiGai
 
Demystifying DataFrame and Dataset
Demystifying DataFrame and DatasetDemystifying DataFrame and Dataset
Demystifying DataFrame and DatasetKazuaki Ishizaki
 
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareClickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareAltinity Ltd
 
Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013Samir Bessalah
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_IndexKohei KaiGai
 
Wayfair Use Case: The four R's of Metrics Delivery
Wayfair Use Case: The four R's of Metrics DeliveryWayfair Use Case: The four R's of Metrics Delivery
Wayfair Use Case: The four R's of Metrics DeliveryInfluxData
 
Real-Time Data Loading from MySQL to Hadoop
Real-Time Data Loading from MySQL to HadoopReal-Time Data Loading from MySQL to Hadoop
Real-Time Data Loading from MySQL to HadoopContinuent
 
Design your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBDesign your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBLuca Garulli
 
Best Practices for Building and Deploying Data Pipelines in Apache Spark
Best Practices for Building and Deploying Data Pipelines in Apache SparkBest Practices for Building and Deploying Data Pipelines in Apache Spark
Best Practices for Building and Deploying Data Pipelines in Apache SparkDatabricks
 
Mapreduce Algorithms
Mapreduce AlgorithmsMapreduce Algorithms
Mapreduce AlgorithmsAmund Tveit
 
scalable machine learning
scalable machine learningscalable machine learning
scalable machine learningSamir Bessalah
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINEDB
 
Concurrent and Distributed Applications with Akka, Java and Scala
Concurrent and Distributed Applications with Akka, Java and ScalaConcurrent and Distributed Applications with Akka, Java and Scala
Concurrent and Distributed Applications with Akka, Java and ScalaFernando Rodriguez
 
20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQL20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQLKohei KaiGai
 
Unified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco SystemsUnified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco SystemsAltinity Ltd
 
Behm Shah Pagerank
Behm Shah PagerankBehm Shah Pagerank
Behm Shah Pagerankgothicane
 

Tendances (20)

Updates from Cassandra Summit 2016 & SASI Indexes
Updates from Cassandra Summit 2016 & SASI IndexesUpdates from Cassandra Summit 2016 & SASI Indexes
Updates from Cassandra Summit 2016 & SASI Indexes
 
20210928_pgunconf_hll_count
20210928_pgunconf_hll_count20210928_pgunconf_hll_count
20210928_pgunconf_hll_count
 
Demystifying DataFrame and Dataset
Demystifying DataFrame and DatasetDemystifying DataFrame and Dataset
Demystifying DataFrame and Dataset
 
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareClickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
 
Spark vstez
Spark vstezSpark vstez
Spark vstez
 
Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
 
Wayfair Use Case: The four R's of Metrics Delivery
Wayfair Use Case: The four R's of Metrics DeliveryWayfair Use Case: The four R's of Metrics Delivery
Wayfair Use Case: The four R's of Metrics Delivery
 
Real-Time Data Loading from MySQL to Hadoop
Real-Time Data Loading from MySQL to HadoopReal-Time Data Loading from MySQL to Hadoop
Real-Time Data Loading from MySQL to Hadoop
 
Indexed Hive
Indexed HiveIndexed Hive
Indexed Hive
 
Design your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBDesign your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDB
 
Best Practices for Building and Deploying Data Pipelines in Apache Spark
Best Practices for Building and Deploying Data Pipelines in Apache SparkBest Practices for Building and Deploying Data Pipelines in Apache Spark
Best Practices for Building and Deploying Data Pipelines in Apache Spark
 
Mapreduce Algorithms
Mapreduce AlgorithmsMapreduce Algorithms
Mapreduce Algorithms
 
scalable machine learning
scalable machine learningscalable machine learning
scalable machine learning
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAIN
 
Concurrent and Distributed Applications with Akka, Java and Scala
Concurrent and Distributed Applications with Akka, Java and ScalaConcurrent and Distributed Applications with Akka, Java and Scala
Concurrent and Distributed Applications with Akka, Java and Scala
 
20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQL20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQL
 
Unified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco SystemsUnified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco Systems
 
hadoop
hadoophadoop
hadoop
 
Behm Shah Pagerank
Behm Shah PagerankBehm Shah Pagerank
Behm Shah Pagerank
 

Similaire à Scale Out Your Graph Across Servers and Clouds with OrientDB

OrientDB & Hazelcast: In-Memory Distributed Graph Database
 OrientDB & Hazelcast: In-Memory Distributed Graph Database OrientDB & Hazelcast: In-Memory Distributed Graph Database
OrientDB & Hazelcast: In-Memory Distributed Graph DatabaseHazelcast
 
OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0Orient Technologies
 
Scylla Summit 2022: ScyllaDB Rust Driver: One Driver to Rule Them All
Scylla Summit 2022: ScyllaDB Rust Driver: One Driver to Rule Them AllScylla Summit 2022: ScyllaDB Rust Driver: One Driver to Rule Them All
Scylla Summit 2022: ScyllaDB Rust Driver: One Driver to Rule Them AllScyllaDB
 
GumGum: Multi-Region Cassandra in AWS
GumGum: Multi-Region Cassandra in AWSGumGum: Multi-Region Cassandra in AWS
GumGum: Multi-Region Cassandra in AWSDataStax Academy
 
Testing Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with SherlockTesting Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with SherlockScyllaDB
 
10 things i wish i'd known before using spark in production
10 things i wish i'd known before using spark in production10 things i wish i'd known before using spark in production
10 things i wish i'd known before using spark in productionParis Data Engineers !
 
Save Money by Uncovering Kafka’s Hidden Cloud Costs
Save Money by Uncovering Kafka’s Hidden Cloud CostsSave Money by Uncovering Kafka’s Hidden Cloud Costs
Save Money by Uncovering Kafka’s Hidden Cloud CostsHostedbyConfluent
 
Best practices for optimizing Red Hat platforms for large scale datacenter de...
Best practices for optimizing Red Hat platforms for large scale datacenter de...Best practices for optimizing Red Hat platforms for large scale datacenter de...
Best practices for optimizing Red Hat platforms for large scale datacenter de...Jeremy Eder
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsKohei KaiGai
 
Experiences with Power 9 at A*STAR CRC
Experiences with Power 9 at A*STAR CRCExperiences with Power 9 at A*STAR CRC
Experiences with Power 9 at A*STAR CRCGanesan Narayanasamy
 
DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaŁukasz Piątkowski
 
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...HostedbyConfluent
 
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to StreamingBravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to StreamingYaroslav Tkachenko
 
Haskell Symposium 2010: An LLVM backend for GHC
Haskell Symposium 2010: An LLVM backend for GHCHaskell Symposium 2010: An LLVM backend for GHC
Haskell Symposium 2010: An LLVM backend for GHCdterei
 
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + KubernetesMongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + KubernetesMongoDB
 
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release WebinarA Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release WebinarArangoDB Database
 
Building CloudScale Networks - AWS Summit Sydney 2018
Building CloudScale Networks - AWS Summit Sydney 2018Building CloudScale Networks - AWS Summit Sydney 2018
Building CloudScale Networks - AWS Summit Sydney 2018Amazon Web Services
 
ApacheCon 20190722 - CassKop : The Cassandra operator for Kubernetes
ApacheCon 20190722 - CassKop : The Cassandra operator for KubernetesApacheCon 20190722 - CassKop : The Cassandra operator for Kubernetes
ApacheCon 20190722 - CassKop : The Cassandra operator for KubernetesJean-Armel Luce
 

Similaire à Scale Out Your Graph Across Servers and Clouds with OrientDB (20)

OrientDB & Hazelcast: In-Memory Distributed Graph Database
 OrientDB & Hazelcast: In-Memory Distributed Graph Database OrientDB & Hazelcast: In-Memory Distributed Graph Database
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 
OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0
 
Scylla Summit 2022: ScyllaDB Rust Driver: One Driver to Rule Them All
Scylla Summit 2022: ScyllaDB Rust Driver: One Driver to Rule Them AllScylla Summit 2022: ScyllaDB Rust Driver: One Driver to Rule Them All
Scylla Summit 2022: ScyllaDB Rust Driver: One Driver to Rule Them All
 
GumGum: Multi-Region Cassandra in AWS
GumGum: Multi-Region Cassandra in AWSGumGum: Multi-Region Cassandra in AWS
GumGum: Multi-Region Cassandra in AWS
 
Testing Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with SherlockTesting Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with Sherlock
 
10 things i wish i'd known before using spark in production
10 things i wish i'd known before using spark in production10 things i wish i'd known before using spark in production
10 things i wish i'd known before using spark in production
 
Save Money by Uncovering Kafka’s Hidden Cloud Costs
Save Money by Uncovering Kafka’s Hidden Cloud CostsSave Money by Uncovering Kafka’s Hidden Cloud Costs
Save Money by Uncovering Kafka’s Hidden Cloud Costs
 
Best practices for optimizing Red Hat platforms for large scale datacenter de...
Best practices for optimizing Red Hat platforms for large scale datacenter de...Best practices for optimizing Red Hat platforms for large scale datacenter de...
Best practices for optimizing Red Hat platforms for large scale datacenter de...
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
Experiences with Power 9 at A*STAR CRC
Experiences with Power 9 at A*STAR CRCExperiences with Power 9 at A*STAR CRC
Experiences with Power 9 at A*STAR CRC
 
DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing Aurea
 
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...
 
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to StreamingBravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
 
Haskell Symposium 2010: An LLVM backend for GHC
Haskell Symposium 2010: An LLVM backend for GHCHaskell Symposium 2010: An LLVM backend for GHC
Haskell Symposium 2010: An LLVM backend for GHC
 
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + KubernetesMongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
 
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release WebinarA Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
 
Building CloudScale Networks - AWS Summit Sydney 2018
Building CloudScale Networks - AWS Summit Sydney 2018Building CloudScale Networks - AWS Summit Sydney 2018
Building CloudScale Networks - AWS Summit Sydney 2018
 
ApacheCon 20190722 - CassKop : The Cassandra operator for Kubernetes
ApacheCon 20190722 - CassKop : The Cassandra operator for KubernetesApacheCon 20190722 - CassKop : The Cassandra operator for Kubernetes
ApacheCon 20190722 - CassKop : The Cassandra operator for Kubernetes
 
2020 icldla-updated
2020 icldla-updated2020 icldla-updated
2020 icldla-updated
 
AMD It's Time to ROC
AMD It's Time to ROCAMD It's Time to ROC
AMD It's Time to ROC
 

Plus de Luca Garulli

Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesLuca Garulli
 
How Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolutionHow Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolutionLuca Garulli
 
Why relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in RomeWhy relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in RomeLuca Garulli
 
Why relationships are cool but "join" sucks
Why relationships are cool but "join" sucksWhy relationships are cool but "join" sucks
Why relationships are cool but "join" sucksLuca Garulli
 
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...Luca Garulli
 
Switching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.itSwitching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.itLuca Garulli
 
Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3Luca Garulli
 
Switching from relational to the graph model
Switching from relational to the graph modelSwitching from relational to the graph model
Switching from relational to the graph modelLuca Garulli
 
Internet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScriptInternet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScriptLuca Garulli
 
Switching from the Relational to the Graph model
Switching from the Relational to the Graph modelSwitching from the Relational to the Graph model
Switching from the Relational to the Graph modelLuca Garulli
 
OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)Luca Garulli
 
No sql matters_2012_keynote
No sql matters_2012_keynoteNo sql matters_2012_keynote
No sql matters_2012_keynoteLuca Garulli
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App developmentLuca Garulli
 
OrientDB the database for the web 1.1
OrientDB the database for the web 1.1OrientDB the database for the web 1.1
OrientDB the database for the web 1.1Luca Garulli
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and conceptsLuca Garulli
 
OrientDB introduction - NoSQL
OrientDB introduction - NoSQLOrientDB introduction - NoSQL
OrientDB introduction - NoSQLLuca Garulli
 
RomaFramework Tutorial Basics
RomaFramework Tutorial BasicsRomaFramework Tutorial Basics
RomaFramework Tutorial BasicsLuca Garulli
 
Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Luca Garulli
 

Plus de Luca Garulli (18)

Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model Databases
 
How Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolutionHow Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolution
 
Why relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in RomeWhy relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in Rome
 
Why relationships are cool but "join" sucks
Why relationships are cool but "join" sucksWhy relationships are cool but "join" sucks
Why relationships are cool but "join" sucks
 
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
 
Switching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.itSwitching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.it
 
Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3
 
Switching from relational to the graph model
Switching from relational to the graph modelSwitching from relational to the graph model
Switching from relational to the graph model
 
Internet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScriptInternet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScript
 
Switching from the Relational to the Graph model
Switching from the Relational to the Graph modelSwitching from the Relational to the Graph model
Switching from the Relational to the Graph model
 
OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)
 
No sql matters_2012_keynote
No sql matters_2012_keynoteNo sql matters_2012_keynote
No sql matters_2012_keynote
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App development
 
OrientDB the database for the web 1.1
OrientDB the database for the web 1.1OrientDB the database for the web 1.1
OrientDB the database for the web 1.1
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and concepts
 
OrientDB introduction - NoSQL
OrientDB introduction - NoSQLOrientDB introduction - NoSQL
OrientDB introduction - NoSQL
 
RomaFramework Tutorial Basics
RomaFramework Tutorial BasicsRomaFramework Tutorial Basics
RomaFramework Tutorial Basics
 
Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007
 

Dernier

The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxalwaysnagaraju26
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 

Dernier (20)

The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

Scale Out Your Graph Across Servers and Clouds with OrientDB

  • 1. Scale Out Your Graph Across Servers and Clouds with OrientDB #gdsf17 Luca Garulli, Founder and CEO @lgarulli GraphDay - San Francisco - June 17, 2017
  • 2. Copyright (c) - OrientDB LTD 2 We all want the same thing: an open source GraphDB that is Fast, Flexible, Scalable and … Unbreakable!
  • 3. Copyright (c) - OrientDB LTD 3 Complexity Scalability Single Thread Multi Thread Distributed Systems/Complexity
  • 4. Copyright (c) - OrientDB LTD 4 Master Node Auto-Discovery I’m the only one! C
  • 5. Copyright (c) - OrientDB LTD 5 Auto-Discovery Master Node Master Node Connected! C
  • 6. Copyright (c) - OrientDB LTD 6 Master Node Master Node C Updated distributed configuration is broadcasted to all the connected clients Clients See the Distributed Configuration
  • 7. Copyright (c) - OrientDB LTD 77 Master Node Master Node CC Master Node Auto-reconnect in Case of Failure In case of failure, the clients auto-reconnect to the available nodes
  • 8. Copyright (c) - OrientDB LTD 88 Master Node Master Node C DBs are automatically deployed to the newly joined nodes DB DB Database Auto-deploy C C C
  • 9. Copyright (c) - OrientDB LTD 9 Replication: Under the Hood Client commits a transaction 99999 Master Node Master Node Master Node HA Queue HA Queue HA Queue C Transaction Requests
  • 10. Copyright (c) - OrientDB LTD 10101010101010 Master Node Master Node Master Node HA Queue HA Queue HA Queue C HA Queue HA Queue HA Queue Replication: Under the Hood Response Handling WriteQuorum = 2 Sends OK OK Requests Responses
  • 11. Copyright (c) - OrientDB LTD 11 Replication: Under the Hood Fix the unaligned node 11111111111111 Master Node Master Node Master Node HA Queue HA Queue HA Queue HA Queue HA Queue HA Queue Requests Responses Fix Commit
  • 12. Copyright (c) - OrientDB LTD 12 Replication: Under the Hood 2pc messages 12121212121212 Fix (response != quorum) Commit (response == quorum) Rollback (quorum not reached)
  • 13. Copyright (c) - OrientDB LTD 13 Master Node A Optimistic MVCC Distributed Transaction (2) tx task (4) return result (7) asynch* commit, rollback or fix (1) Lock all records in order + Execute TX locally Master Node B (3) Lock all records in order + Execute TX locally (5) Check results + unlock all records (8) Execute the message and Unlock all records C Node A becomes the transaction coordinator (6) send response back to the client
  • 14. Copyright (c) - OrientDB LTD 14 Consistency - Distributed Locks don’t block reads - During the transaction the old version of the record is retrieved - 2pc message is asynchronous, so a record could not be updated yet on server X - If you need higher consistency, don’t use load balancer policy ROUND_ROBIN_REQUEST
  • 15. Copyright (c) - OrientDB LTD 15 { "autoDeploy": true, "writeQuorum": “majority”, "newNodeStrategy": “static”, "clusters": { "*": { "servers": ["<NEW_NODE>"] } } } Default Configuration (json) deploys the database automatically on new nodes
  • 16. Copyright (c) - OrientDB LTD 16 Default Configuration (json) writeQuorum=2 means at least 2 nodes must agree on writes. Set it to the majority to ensure consistency { "autoDeploy": true, "writeQuorum": “majority”, "newNodeStrategy": “static”, "clusters": { "*": { "servers": ["<NEW_NODE>"] } } }
  • 17. Copyright (c) - OrientDB LTD 17 Default Configuration (json) newNodeStrategy: static (default) or dynamic. Static = once nodes join, they are part of configuration { "autoDeploy": true, "writeQuorum": “majority”, "newNodeStrategy": “static”, "clusters": { "*": { "servers": ["<NEW_NODE>"] } } }
  • 18. Copyright (c) - OrientDB LTD 18 Default Configuration (json) clusters contain the distributed configuration per cluster { "autoDeploy": true, "writeQuorum": “majority”, "newNodeStrategy": “static”, "clusters": { "*": { "servers": ["<NEW_NODE>"] } } }
  • 19. Copyright (c) - OrientDB LTD 19 Default Configuration (json) cluster “*” represents the default cluster configuration. Any new node will join, containing all the clusters { "autoDeploy": true, "writeQuorum": “majority”, "newNodeStrategy": “static”, "clusters": { "*": { "servers": ["<NEW_NODE>"] } } }
  • 20. Copyright (c) - OrientDB LTD 20 Custom Setting per Cluster cluster “customer” extends the default configuration with a custom writeQuorum { "autoDeploy": true, "writeQuorum": “majority”, "newNodeStrategy": “static”, "clusters": { "*": { "servers": ["<NEW_NODE>"] }, "customer": { "writeQuorum": 3, "servers": ["<NEW_NODE>"] } } }
  • 21. Copyright (c) - OrientDB LTD What about scalability? 21
  • 22. Copyright (c) - OrientDB LTD 22 Performance with Reads 2222222222 Master Node Master Node Master Node C 10,000 req/sec C C 10,000 req/sec 10,000 req/sec
  • 23. Copyright (c) - OrientDB LTD Full replication provides linear scalability on reads, but what about scalability on writes? 23
  • 24. Copyright (c) - OrientDB LTD 24 Performance with Writes 2424242424 Master Node C 12,000 req/sec C C
  • 25. Copyright (c) - OrientDB LTD 25 Performance with Writes 2525252525 Master Node Master Node C 7000 req/sec C C 7000 req/sec
  • 26. Copyright (c) - OrientDB LTD 26 Performance with Writes 2626262626 Master Node Master Node Master Node C 5000 req/sec C C 5000 req/sec 5000 req/sec The more replicas you configure, the more the propagation cost will impact performance, based on writeQuorum
  • 27. Copyright (c) - OrientDB LTD In order to scale up writes, you need sharing + replication We used a solution similar to RAID for Hard Drives 27
  • 28. Copyright (c) - OrientDB LTD Sharding in OrientDB v2.2 28
  • 29. Copyright (c) - OrientDB LTD 29 Assign 1 Cluster per Node 2929 customer_usa customer_europe customer_china Master Node usa Master Node europe Master Node china Customer
  • 30. Copyright (c) - OrientDB LTD Master Node usa Master Node china Master Node europe 30 RAID for Databases 303030 customer_usa customer_europe customer_china Customer customer_europecustomer_usacustomer_china Replica factor = 2
  • 31. Copyright (c) - OrientDB LTD Master Node usa Master Node china Master Node europe 31 Traversal with Spark (Pregel) 313131 C https://spark.apache.org/docs/latest/graphx-programming-guide.html#pregel-api
  • 32. Copyright (c) - OrientDB LTD 32 Sharding Configuration LEGEND: X = Owner, o = Copy +---------------+-----------+----------+-------+-------+-------+ | | | |MASTER |MASTER |MASTER | | | | |ONLINE |ONLINE |ONLINE | +---------------+-----------+----------+-------+-------+-------+ |CLUSTER |writeQuorum|readQuorum| usa |europe |china | +---------------+-----------+----------+-------+-------+-------+ |* | 2 | 1 | X | | | |customer_usa | 2 | 1 | X | | o | |customer_europe| 2 | 1 | o | X | | |customer_china | 2 | 1 | | o | X | +---------------+-----------+----------+-------+-------+-------+
  • 33. Copyright (c) - OrientDB LTD 33 Sharding Configuration first node in list is the “owner” for that cluster { "clusters": { “customer_usa": { "servers": [“usa”, “china”] }, “customer_europe": { "servers": [“europe”, “usa”] }, “customer_china": { "servers": [“china”, “europe”] } } }
  • 34. Copyright (c) - OrientDB LTD 34 Static Owner The owner can be static. If the owner is not online, new records can’t be inserted in the cluster { "clusters": { "client_usa": { "owner": "usa", "servers" : [ "usa", "europe", "asia" ] } } } This assures the owner is not assigned dynamically
  • 35. Copyright (c) - OrientDB LTD 353535353535 Master Node C 5000 req/sec C C Performance with Sharding
  • 36. Copyright (c) - OrientDB LTD 363636363636 Master Node Master Node C 5000 req/sec C C 5000 req/sec Performance with Sharding
  • 37. Copyright (c) - OrientDB LTD 373737373737 Master Node Master Node C 5000 req/sec C C 5000 req/sec Performance with Sharding Master Node 5000 req/sec Master Node 5000 req/sec Master Node 5000 req/sec Each write is replicated on only 2 nodes
  • 38. Copyright (c) - OrientDB LTD 38 Master Node Master Node C C C C C C Master Node C C C Master Node C C C Master Node C C C Master Node C C C Master Node C C Linear and Elastic Scalability on both Read & Writes!
  • 39. Copyright (c) - OrientDB LTD 39 Replica only Nodes 3939 Replica NodeMaster Node usa Master Node usa Master Node usa Replica Node Replica Node Replica Node Replica Node Replica Node Replica Node Replica Node Replica Node Replica Node Replica Node Replica Node Replica servers don’t concur in writeQuorum
  • 40. Copyright (c) - OrientDB LTD 40 Server Role Configuration “*” by default each node is a master. Following nodes are replica only { "servers": { "*": “master”, “usa_r1": “replica", “usa_r2": “replica", “usa_r3": “replica", “europe_r1": “replica", “china1_r1": "replica" } }
  • 41. Copyright (c) - OrientDB LTD 41 Master Node Master Node C Load-Balancing on Client Side Master Node
  • 42. Copyright (c) - OrientDB LTD 42 Load-Balancing Configuration final OrientGraphFactory factory = new OrientGraphFactory(“remote:localhost/demo");
 factory.setConnectionStrategy( OStorageRemote.CONNECTION_STRATEGY.ROUND_ROBIN_CONNECT);
 OrientGraph graph = factory.getTx(); Available strategies: - STICKY, - ROUND_ROBIN_CONNECT, - ROUND_ROBIN_REQUEST
  • 43. Copyright (c) - OrientDB LTD 43 What if some records are not aligned for **ANY** reason?
  • 44. Copyright (c) - OrientDB LTD 44 OrientDB Auto-Repairer - Executed in chain - It works in batch of 50 records per time (configurable) - Strategies: - Quorum: checks if it meets the configured write quorum - Content: checks the content - Majority: checks if at least there is a majority - Version: gets the higher version - DC (EE only). Example: dc{winner:asia}
  • 45. Copyright (c) - OrientDB LTD 45 Master Node A Master Node B Auto-Repair Flow (1) tx read [#10:33,#43:90,#12:23] (3) return [{#10:33 v1},{#43:90 v5},{#12:23 v9}] (2) lock [#10:33,# 43:90,#12: 23] (4) fix [{#43:90 v6}]
  • 46. Copyright (c) - OrientDB LTD 46 Dynamic Timeouts (from v2.2.18) orientdb> HA STATUS -latency -output=text REPLICATION LATENCY AVERAGE (in milliseconds) +-------+-----+------+-----+ |Servers|node1|node2*|node3| +-------+-----+------+-----+ |node1 | | 0.60| 0.43| |node2* | 0.39| | 0.38| |node3 | 0.35| 0.53| | +-------+-----+------+-----+
  • 47. Copyright (c) - OrientDB LTD 47 Cross Datacenter & Cloud Dublin Austin Cross Data Centre and Cloud replication. Data Centers don’t need to have the same number of servers
  • 48. Copyright (c) - OrientDB LTD 48 Data-Center (Enterprise only) "dataCenters": { "rome": { "writeQuorum": "all", "servers": [ "europe-0", "europe-1", "europe-2" ] }, "austin": { "writeQuorum": "all", "servers": [ "usa-0", "usa-1", "usa-2" ] } }
  • 49. Copyright (c) - OrientDB LTD 49 Performance
  • 50. Copyright (c) - OrientDB LTD 50 Yahoo Benchmark 3 Nodes OrientDB is 2x-3x faster than Cassandra on the same HW/SW configuration, same workload Ops/sec
  • 51. Copyright (c) - OrientDB LTD 51 OrientDB v3.1 (Q1 2018) - DHT-like algorithm = Distributed Sharded index - Native support for batch-traversal (Pregel-like) without Spark - Background refactoring of the Graph based on usage statistics
  • 52. Copyright (c) - OrientDB LTD 52 Thank you! @lgarulli orientdb.com