SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
Scaling ArangoDB on
Mesosphere DCOS
Max Neunhöffer
Hamburg, 1 October 2015
www.arangodb.com
Features
is a multi-model database (document store & graph database),
Features
is a multi-model database (document store & graph database),
offers convenient queries (via HTTP/REST and AQL),
Features
is a multi-model database (document store & graph database),
offers convenient queries (via HTTP/REST and AQL),
including joins between different collections,
Features
is a multi-model database (document store & graph database),
offers convenient queries (via HTTP/REST and AQL),
including joins between different collections,
configurable consistency guarantees using transactions
Features
is a multi-model database (document store & graph database),
offers convenient queries (via HTTP/REST and AQL),
including joins between different collections,
configurable consistency guarantees using transactions
API extensible by JS code in the Foxx Microservice Framework.
Replication and Sharding — horizontal scalability
ArangoDB provides
easy setup of (asynchronous) replication,
sharding with automatic data distribution
MongoDB-style replication in the cluster,
full integration with Apache Mesos and Mesosphere.
Replication and Sharding — horizontal scalability
ArangoDB provides
easy setup of (asynchronous) replication,
sharding with automatic data distribution
MongoDB-style replication in the cluster,
full integration with Apache Mesos and Mesosphere.
Work in progress:
synchronous replication in cluster mode,
Replication and Sharding — horizontal scalability
ArangoDB provides
easy setup of (asynchronous) replication,
sharding with automatic data distribution
MongoDB-style replication in the cluster,
full integration with Apache Mesos and Mesosphere.
Work in progress:
synchronous replication in cluster mode,
fault tolerance by automatic failover and
Replication and Sharding — horizontal scalability
ArangoDB provides
easy setup of (asynchronous) replication,
sharding with automatic data distribution
MongoDB-style replication in the cluster,
full integration with Apache Mesos and Mesosphere.
Work in progress:
synchronous replication in cluster mode,
fault tolerance by automatic failover and
zero administration by a self-reparing and self-balancing cluster architecture,
Replication and Sharding — horizontal scalability
ArangoDB provides
easy setup of (asynchronous) replication,
sharding with automatic data distribution
MongoDB-style replication in the cluster,
full integration with Apache Mesos and Mesosphere.
Work in progress:
synchronous replication in cluster mode,
fault tolerance by automatic failover and
zero administration by a self-reparing and self-balancing cluster architecture,
all based on the Apache Mesos infrastructure.
Task Task
Task Task
Task Task
Task Task
TaskTask
Task Task
TaskTask
Task Task
TaskTask
Task
TaskTask
Task
Task Task
TaskTask
Task
Mesos Agent Mesos Agent
Mesos Agent Mesos Agent
Mesos Agent
Mesos Agent
Mesos Agent
Mesos Agent
Mesos Master Mesos Master Mesos Master
(leader)
(leader)
Zookeeper Zookeeper Zookeeper
Task Task
Task Task
Task Task
Task Task
TaskTask
Task Task
TaskTask
Task Task
TaskTask
Task
TaskTask
Task
Task Task
TaskTask
Task
Mesos Agent Mesos Agent
Mesos Agent Mesos Agent
Mesos Agent
Mesos Agent
Mesos Agent
Mesos Agent
Mesos Master
Zookeeper
Mesos Master
(leader)
(leader)
Zookeeper
Mesos Master
Zookeeper
Task Task
Task
Task Task
TaskTask
Task Task
TaskTask
Task Task
TaskTask
Task
TaskTask
Task
Task Task
TaskTask
Task
Task
Task Task
Task Task
Task
Mesos Agent
Mesos Agent Mesos Agent
Mesos Agent
Mesos Agent
Mesos Agent
Mesos Agent
Mesos Master Mesos Master Mesos Master
(leader)
(leader)
Zookeeper Zookeeper Zookeeper
Mesos Agent
dcos CLI Marathonschedules frameworks
starts (this is a lie)
Mesos Agent Mesos Master
Zookeeper
registers
stores state
Framework
Task
dcos CLI Marathonschedules frameworks
1. reports free resources
4. tells to execute
3. accepts or
resource offers
2. makes
declines them
starts (this is a big lie)
executes
(this is a small lie)
Mesos Agent Mesos Master
Zookeeper
Framework
Task
dcos CLI Marathonschedules frameworks
1. reports free resources
4. tells to execute
3. accepts or
resource offers
2. makes
declines them
executes
(this is a small lie)
actually, Marathon is a framework
starts (this is a big lie)
actually, it uses an "executor"
Mesos Agent Mesos Master
Zookeeper
Framework
Task
dcos CLI Marathonschedules frameworks
starts
Mesos Agent Mesos Master
Zookeeper
Framework
Task
notices
reports
reports
dcos CLI Marathonschedules frameworks
restarts
Mesos Agent Mesos Master
Zookeeper
Framework
Task
dcos CLI Marathonschedules frameworks
restarts
Mesos Agent Mesos Master
Zookeeper
Framework
Task
gets state
and reconciles
reconnects
Persistent primitives
offer received 20151001-105738-2905319616-5050-2640-O0 with
cpus(*):4; mem(*):10895; disk(*):119761; ports(*):[31000-32000]}
Persistent primitives
offer received 20151001-105738-2905319616-5050-2640-O0 with
cpus(*):4; mem(*):10895; disk(*):119761; ports(*):[31000-32000]}
trying to reserve 20151001-105738-2905319616-5050-2640-O0 with
cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512}
Persistent primitives
offer received 20151001-105738-2905319616-5050-2640-O0 with
cpus(*):4; mem(*):10895; disk(*):119761; ports(*):[31000-32000]}
trying to reserve 20151001-105738-2905319616-5050-2640-O0 with
cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512}
offer received 20151001-105738-2905319616-5050-2640-O1 with
cpus(*):3.8; mem(*):10383; disk(*):119249; ports(*):[31000-32000];
cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512}
Persistent primitives
offer received 20151001-105738-2905319616-5050-2640-O0 with
cpus(*):4; mem(*):10895; disk(*):119761; ports(*):[31000-32000]}
trying to reserve 20151001-105738-2905319616-5050-2640-O0 with
cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512}
offer received 20151001-105738-2905319616-5050-2640-O1 with
cpus(*):3.8; mem(*):10383; disk(*):119249; ports(*):[31000-32000];
cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512}
trying to make 20151001-105738-2905319616-5050-2640-O1 persistent for
disk(arangodb, pri)[AGENCY_c2bb93ce-46d3-4802-bed5-cf254c6f16df:dataxyz]:512
Persistent primitives
offer received 20151001-105738-2905319616-5050-2640-O0 with
cpus(*):4; mem(*):10895; disk(*):119761; ports(*):[31000-32000]}
trying to reserve 20151001-105738-2905319616-5050-2640-O0 with
cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512}
offer received 20151001-105738-2905319616-5050-2640-O1 with
cpus(*):3.8; mem(*):10383; disk(*):119249; ports(*):[31000-32000];
cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512}
trying to make 20151001-105738-2905319616-5050-2640-O1 persistent for
disk(arangodb, pri)[AGENCY_c2bb93ce-46d3-4802-bed5-cf254c6f16df:dataxyz]:512
offer received 20151001-105738-2905319616-5050-2640-O2 with
cpus(*):3.8; mem(*):10383; disk(*):119249; ports(*):[31000-32000];
cpus(arangodb, pri):0.2; mem(arangodb, pri):512;
disk(arangodb, pri)[AGENCY_c2bb93ce-46d3-4802-bed5-cf254c6f16df:dataxyz]:512
Deployment
Docker and github
Deployment
Docker and github
One container image arangodb/arangodb-mesos used to run
the ArangoDB framework (C++ executable)
all ArangoDB instances in the cluster
the Agency (etcd)
Deployment
Docker and github
One container image arangodb/arangodb-mesos used to run
the ArangoDB framework (C++ executable)
all ArangoDB instances in the cluster
the Agency (etcd)
The dcos CLI by Mesosphere is a Python program (virtualenv, pip).
Deployment
Docker and github
One container image arangodb/arangodb-mesos used to run
the ArangoDB framework (C++ executable)
all ArangoDB instances in the cluster
the Agency (etcd)
The dcos CLI by Mesosphere is a Python program (virtualenv, pip).
ArangoDB subcommand: a Python program, talks JSON/REST with the
framework, plugs into dcos, deployed from a github repository.
Deployment
Docker and github
One container image arangodb/arangodb-mesos used to run
the ArangoDB framework (C++ executable)
all ArangoDB instances in the cluster
the Agency (etcd)
The dcos CLI by Mesosphere is a Python program (virtualenv, pip).
ArangoDB subcommand: a Python program, talks JSON/REST with the
framework, plugs into dcos, deployed from a github repository.
github repository mesosphere/universe has all certified frameworks
Scaling ArangoDB
Ultimate aim with a distributed database: horizontal scalability.
Scaling ArangoDB
Ultimate aim with a distributed database: horizontal scalability.
Devise a test, . . .
to show linear scaling
use N = 8, 16, 24, 32, 40, 48, 56, 64, 72, 80 nodes with 8 vCPUs each.
run N/2 DBServers, N/2 asynchronous replicas and N/2 Coordinators.
Scaling ArangoDB
Ultimate aim with a distributed database: horizontal scalability.
Devise a test, . . .
to show linear scaling
use N = 8, 16, 24, 32, 40, 48, 56, 64, 72, 80 nodes with 8 vCPUs each.
run N/2 DBServers, N/2 asynchronous replicas and N/2 Coordinators.
use single document reads, writes and 50%/50%,
from N/2 load servers in the same Mesosphere cluster
Scaling ArangoDB
Ultimate aim with a distributed database: horizontal scalability.
Devise a test, . . .
to show linear scaling
use N = 8, 16, 24, 32, 40, 48, 56, 64, 72, 80 nodes with 8 vCPUs each.
run N/2 DBServers, N/2 asynchronous replicas and N/2 Coordinators.
use single document reads, writes and 50%/50%,
from N/2 load servers in the same Mesosphere cluster
up to 640 vCPUs, want to write as many k docs/(s * vCPU) as possible.
Deployment of load servers
Deployment of load servers
Docker and ArangoDB
Deployment of load servers
Docker and ArangoDB
Use a central ArangoDB instance to
collect results,
evaluate them,
and synchronise load servers.
Deployment of load servers
Docker and ArangoDB
Use a central ArangoDB instance to
collect results,
evaluate them,
and synchronise load servers.
Each load server runs the Waiter in a Docker container.
Deployment of load servers
Docker and ArangoDB
Use a central ArangoDB instance to
collect results,
evaluate them,
and synchronise load servers.
Each load server runs the Waiter in a Docker container.
The Waiter
Deployment of load servers
Docker and ArangoDB
Use a central ArangoDB instance to
collect results,
evaluate them,
and synchronise load servers.
Each load server runs the Waiter in a Docker container.
The Waiter waits,
Deployment of load servers
Docker and ArangoDB
Use a central ArangoDB instance to
collect results,
evaluate them,
and synchronise load servers.
Each load server runs the Waiter in a Docker container.
The Waiter waits, most of the time,
observes a collection and notices new "work"documents,
fires up load processes,
reports termination as a "done"document.
Deployment of load servers
Docker and ArangoDB
Use a central ArangoDB instance to
collect results,
evaluate them,
and synchronise load servers.
Each load server runs the Waiter in a Docker container.
The Waiter waits, most of the time,
observes a collection and notices new "work"documents,
fires up load processes,
reports termination as a "done"document.
A single JavaScript program directs the whole experiment.
Deployment of load servers
Docker and ArangoDB
Use a central ArangoDB instance to
collect results,
evaluate them,
and synchronise load servers.
Each load server runs the Waiter in a Docker container.
The Waiter waits, most of the time,
observes a collection and notices new "work"documents,
fires up load processes,
reports termination as a "done"document.
A single JavaScript program directs the whole experiment.
We deploy the Waiter using Marathon.
DEMO?
Links
https://www.arangodb.com
https://docs.arangodb.com/cookbook/index.html
https://github.com/ArangoDB/guesser
http://mesos.apache.org/
https://mesosphere.com/
https://mesosphere.github.io/marathon/

Contenu connexe

Tendances

Natural Language Query and Conversational Interface to Apache Spark
Natural Language Query and Conversational Interface to Apache SparkNatural Language Query and Conversational Interface to Apache Spark
Natural Language Query and Conversational Interface to Apache Spark
Databricks
 
Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014
Sadayuki Furuhashi
 
Rupy2012 ArangoDB Workshop Part2
Rupy2012 ArangoDB Workshop Part2Rupy2012 ArangoDB Workshop Part2
Rupy2012 ArangoDB Workshop Part2
ArangoDB Database
 
Presto in the cloud
Presto in the cloudPresto in the cloud
Presto in the cloud
Qubole
 

Tendances (20)

ArangoDB
ArangoDBArangoDB
ArangoDB
 
Couch db
Couch dbCouch db
Couch db
 
Prestogres internals
Prestogres internalsPrestogres internals
Prestogres internals
 
CouchDB
CouchDBCouchDB
CouchDB
 
Arango DB
Arango DBArango DB
Arango DB
 
Fluentd and Docker - running fluentd within a docker container
Fluentd and Docker - running fluentd within a docker containerFluentd and Docker - running fluentd within a docker container
Fluentd and Docker - running fluentd within a docker container
 
Apache CouchDB
Apache CouchDBApache CouchDB
Apache CouchDB
 
Presto+MySQLで分散SQL
Presto+MySQLで分散SQLPresto+MySQLで分散SQL
Presto+MySQLで分散SQL
 
CouchDB – A Database for the Web
CouchDB – A Database for the WebCouchDB – A Database for the Web
CouchDB – A Database for the Web
 
Facebook Presto presentation
Facebook Presto presentationFacebook Presto presentation
Facebook Presto presentation
 
Lokijs
LokijsLokijs
Lokijs
 
Natural Language Query and Conversational Interface to Apache Spark
Natural Language Query and Conversational Interface to Apache SparkNatural Language Query and Conversational Interface to Apache Spark
Natural Language Query and Conversational Interface to Apache Spark
 
Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014
 
Presto updates to 0.178
Presto updates to 0.178Presto updates to 0.178
Presto updates to 0.178
 
Rupy2012 ArangoDB Workshop Part2
Rupy2012 ArangoDB Workshop Part2Rupy2012 ArangoDB Workshop Part2
Rupy2012 ArangoDB Workshop Part2
 
Prestogres, ODBC & JDBC connectivity for Presto
Prestogres, ODBC & JDBC connectivity for PrestoPrestogres, ODBC & JDBC connectivity for Presto
Prestogres, ODBC & JDBC connectivity for Presto
 
Logging for Production Systems in The Container Era
Logging for Production Systems in The Container EraLogging for Production Systems in The Container Era
Logging for Production Systems in The Container Era
 
Presto in the cloud
Presto in the cloudPresto in the cloud
Presto in the cloud
 
Introducing CouchDB
Introducing CouchDBIntroducing CouchDB
Introducing CouchDB
 
Data Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageData Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby Usage
 

En vedette

Scaling mongo db dengan replicaset dan sharding
Scaling mongo db dengan replicaset dan shardingScaling mongo db dengan replicaset dan sharding
Scaling mongo db dengan replicaset dan sharding
k4ndar
 
Comunicação no setor público: desafios e estratégias em tempos de crise - Arm...
Comunicação no setor público: desafios e estratégias em tempos de crise - Arm...Comunicação no setor público: desafios e estratégias em tempos de crise - Arm...
Comunicação no setor público: desafios e estratégias em tempos de crise - Arm...
Zoom Comunicação
 
「福島 生きものの記録 シリーズ2~異変~」
「福島 生きものの記録 シリーズ2~異変~」「福島 生きものの記録 シリーズ2~異変~」
「福島 生きものの記録 シリーズ2~異変~」
Kazuhide Fukada
 
Tanmay Mudholkar Resume+(SAP)
Tanmay Mudholkar Resume+(SAP)Tanmay Mudholkar Resume+(SAP)
Tanmay Mudholkar Resume+(SAP)
Tanmay Mudholkar
 

En vedette (19)

Scaling mongo db dengan replicaset dan sharding
Scaling mongo db dengan replicaset dan shardingScaling mongo db dengan replicaset dan sharding
Scaling mongo db dengan replicaset dan sharding
 
Preporuke voditeljima seminara
Preporuke voditeljima seminaraPreporuke voditeljima seminara
Preporuke voditeljima seminara
 
PETA generacija CEPI PR obuke
PETA generacija CEPI PR obukePETA generacija CEPI PR obuke
PETA generacija CEPI PR obuke
 
130805イラレキャライラスト
130805イラレキャライラスト130805イラレキャライラスト
130805イラレキャライラスト
 
Nutrición jenni2
Nutrición jenni2Nutrición jenni2
Nutrición jenni2
 
Comunicação no setor público: desafios e estratégias em tempos de crise - Arm...
Comunicação no setor público: desafios e estratégias em tempos de crise - Arm...Comunicação no setor público: desafios e estratégias em tempos de crise - Arm...
Comunicação no setor público: desafios e estratégias em tempos de crise - Arm...
 
Developing for Business
Developing for BusinessDeveloping for Business
Developing for Business
 
Russian TUPOLEV TU - 154
Russian TUPOLEV TU - 154Russian TUPOLEV TU - 154
Russian TUPOLEV TU - 154
 
「福島 生きものの記録 シリーズ2~異変~」
「福島 生きものの記録 シリーズ2~異変~」「福島 生きものの記録 シリーズ2~異変~」
「福島 生きものの記録 シリーズ2~異変~」
 
Ruby Gotchas
Ruby GotchasRuby Gotchas
Ruby Gotchas
 
Tvi corporate presentation november 2016
Tvi corporate presentation november 2016Tvi corporate presentation november 2016
Tvi corporate presentation november 2016
 
Ponuda usluga PoslovnaZnanja.com
Ponuda usluga PoslovnaZnanja.com Ponuda usluga PoslovnaZnanja.com
Ponuda usluga PoslovnaZnanja.com
 
Trening -Timski rad - Kako unaprediti timski rad? Kako izgraditi tim? (deo pr...
Trening -Timski rad - Kako unaprediti timski rad? Kako izgraditi tim? (deo pr...Trening -Timski rad - Kako unaprediti timski rad? Kako izgraditi tim? (deo pr...
Trening -Timski rad - Kako unaprediti timski rad? Kako izgraditi tim? (deo pr...
 
FOXX - a Javascript application framework on top of ArangoDB
FOXX - a Javascript application framework on top of ArangoDBFOXX - a Javascript application framework on top of ArangoDB
FOXX - a Javascript application framework on top of ArangoDB
 
OOP: Princípios e Padroes
OOP: Princípios e PadroesOOP: Princípios e Padroes
OOP: Princípios e Padroes
 
Motori SUS
Motori SUSMotori SUS
Motori SUS
 
Processing large-scale graphs with Google Pregel
Processing large-scale graphs with Google PregelProcessing large-scale graphs with Google Pregel
Processing large-scale graphs with Google Pregel
 
Tanmay Mudholkar Resume+(SAP)
Tanmay Mudholkar Resume+(SAP)Tanmay Mudholkar Resume+(SAP)
Tanmay Mudholkar Resume+(SAP)
 
Inovação Digital 2010
Inovação Digital 2010Inovação Digital 2010
Inovação Digital 2010
 

Similaire à Scaling ArangoDB on Mesosphere DCOS

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Justin Smestad
 

Similaire à Scaling ArangoDB on Mesosphere DCOS (20)

Deep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDBDeep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDB
 
Using MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content RepositoryUsing MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content Repository
 
Containerized Data Persistence on Mesos
Containerized Data Persistence on MesosContainerized Data Persistence on Mesos
Containerized Data Persistence on Mesos
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Building Reliable Cloud Storage with Riak and CloudStack - Andy Gross, Chief ...
Building Reliable Cloud Storage with Riak and CloudStack - Andy Gross, Chief ...Building Reliable Cloud Storage with Riak and CloudStack - Andy Gross, Chief ...
Building Reliable Cloud Storage with Riak and CloudStack - Andy Gross, Chief ...
 
MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...
MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...
MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...
 
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
 
Realizing the Promise of Portable Data Processing with Apache Beam
Realizing the Promise of Portable Data Processing with Apache BeamRealizing the Promise of Portable Data Processing with Apache Beam
Realizing the Promise of Portable Data Processing with Apache Beam
 
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
 
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaKerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
 
Couchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionCouchbase - Yet Another Introduction
Couchbase - Yet Another Introduction
 
Data processing platforms with SMACK: Spark and Mesos internals
Data processing platforms with SMACK:  Spark and Mesos internalsData processing platforms with SMACK:  Spark and Mesos internals
Data processing platforms with SMACK: Spark and Mesos internals
 
Let's Compare: A Benchmark review of InfluxDB and Elasticsearch
Let's Compare: A Benchmark review of InfluxDB and ElasticsearchLet's Compare: A Benchmark review of InfluxDB and Elasticsearch
Let's Compare: A Benchmark review of InfluxDB and Elasticsearch
 
Hidden pearls for High-Performance-Persistence
Hidden pearls for High-Performance-PersistenceHidden pearls for High-Performance-Persistence
Hidden pearls for High-Performance-Persistence
 
Hadoop Vectored IO
Hadoop Vectored IOHadoop Vectored IO
Hadoop Vectored IO
 
Oslo bekk2014
Oslo bekk2014Oslo bekk2014
Oslo bekk2014
 
Scala+data
Scala+dataScala+data
Scala+data
 
Postgres Vienna DB Meetup 2014
Postgres Vienna DB Meetup 2014Postgres Vienna DB Meetup 2014
Postgres Vienna DB Meetup 2014
 
Making Distributed Data Persistent Services Elastic (Without Losing All Your ...
Making Distributed Data Persistent Services Elastic (Without Losing All Your ...Making Distributed Data Persistent Services Elastic (Without Losing All Your ...
Making Distributed Data Persistent Services Elastic (Without Losing All Your ...
 
Deep Dive on ArangoDB
Deep Dive on ArangoDBDeep Dive on ArangoDB
Deep Dive on ArangoDB
 

Plus de Max Neunhöffer

Plus de Max Neunhöffer (9)

Multi-model databases and node.js
Multi-model databases and node.jsMulti-model databases and node.js
Multi-model databases and node.js
 
Backbone using Extensible Database APIs over HTTP
Backbone using Extensible Database APIs over HTTPBackbone using Extensible Database APIs over HTTP
Backbone using Extensible Database APIs over HTTP
 
Complex queries in a distributed multi-model database
Complex queries in a distributed multi-model databaseComplex queries in a distributed multi-model database
Complex queries in a distributed multi-model database
 
Overhauling a database engine in 2 months
Overhauling a database engine in 2 monthsOverhauling a database engine in 2 months
Overhauling a database engine in 2 months
 
Experience with C++11 in ArangoDB
Experience with C++11 in ArangoDBExperience with C++11 in ArangoDB
Experience with C++11 in ArangoDB
 
guacamole: an Object Document Mapper for ArangoDB
guacamole: an Object Document Mapper for ArangoDBguacamole: an Object Document Mapper for ArangoDB
guacamole: an Object Document Mapper for ArangoDB
 
Extensible Database APIs and their role in Software Architecture
Extensible Database APIs and their role in Software ArchitectureExtensible Database APIs and their role in Software Architecture
Extensible Database APIs and their role in Software Architecture
 
Is multi-model the future of NoSQL?
Is multi-model the future of NoSQL?Is multi-model the future of NoSQL?
Is multi-model the future of NoSQL?
 
Oslo baksia2014
Oslo baksia2014Oslo baksia2014
Oslo baksia2014
 

Dernier

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Dernier (20)

%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%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
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
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
 
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
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
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-...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
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 Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
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
 

Scaling ArangoDB on Mesosphere DCOS

  • 1. Scaling ArangoDB on Mesosphere DCOS Max Neunhöffer Hamburg, 1 October 2015 www.arangodb.com
  • 2. Features is a multi-model database (document store & graph database),
  • 3. Features is a multi-model database (document store & graph database), offers convenient queries (via HTTP/REST and AQL),
  • 4. Features is a multi-model database (document store & graph database), offers convenient queries (via HTTP/REST and AQL), including joins between different collections,
  • 5. Features is a multi-model database (document store & graph database), offers convenient queries (via HTTP/REST and AQL), including joins between different collections, configurable consistency guarantees using transactions
  • 6. Features is a multi-model database (document store & graph database), offers convenient queries (via HTTP/REST and AQL), including joins between different collections, configurable consistency guarantees using transactions API extensible by JS code in the Foxx Microservice Framework.
  • 7. Replication and Sharding — horizontal scalability ArangoDB provides easy setup of (asynchronous) replication, sharding with automatic data distribution MongoDB-style replication in the cluster, full integration with Apache Mesos and Mesosphere.
  • 8. Replication and Sharding — horizontal scalability ArangoDB provides easy setup of (asynchronous) replication, sharding with automatic data distribution MongoDB-style replication in the cluster, full integration with Apache Mesos and Mesosphere. Work in progress: synchronous replication in cluster mode,
  • 9. Replication and Sharding — horizontal scalability ArangoDB provides easy setup of (asynchronous) replication, sharding with automatic data distribution MongoDB-style replication in the cluster, full integration with Apache Mesos and Mesosphere. Work in progress: synchronous replication in cluster mode, fault tolerance by automatic failover and
  • 10. Replication and Sharding — horizontal scalability ArangoDB provides easy setup of (asynchronous) replication, sharding with automatic data distribution MongoDB-style replication in the cluster, full integration with Apache Mesos and Mesosphere. Work in progress: synchronous replication in cluster mode, fault tolerance by automatic failover and zero administration by a self-reparing and self-balancing cluster architecture,
  • 11. Replication and Sharding — horizontal scalability ArangoDB provides easy setup of (asynchronous) replication, sharding with automatic data distribution MongoDB-style replication in the cluster, full integration with Apache Mesos and Mesosphere. Work in progress: synchronous replication in cluster mode, fault tolerance by automatic failover and zero administration by a self-reparing and self-balancing cluster architecture, all based on the Apache Mesos infrastructure.
  • 12. Task Task Task Task Task Task Task Task TaskTask Task Task TaskTask Task Task TaskTask Task TaskTask Task Task Task TaskTask Task Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Master Mesos Master Mesos Master (leader) (leader) Zookeeper Zookeeper Zookeeper
  • 13. Task Task Task Task Task Task Task Task TaskTask Task Task TaskTask Task Task TaskTask Task TaskTask Task Task Task TaskTask Task Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Master Zookeeper Mesos Master (leader) (leader) Zookeeper Mesos Master Zookeeper
  • 14. Task Task Task Task Task TaskTask Task Task TaskTask Task Task TaskTask Task TaskTask Task Task Task TaskTask Task Task Task Task Task Task Task Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Agent Mesos Master Mesos Master Mesos Master (leader) (leader) Zookeeper Zookeeper Zookeeper Mesos Agent
  • 15. dcos CLI Marathonschedules frameworks starts (this is a lie) Mesos Agent Mesos Master Zookeeper registers stores state Framework Task
  • 16. dcos CLI Marathonschedules frameworks 1. reports free resources 4. tells to execute 3. accepts or resource offers 2. makes declines them starts (this is a big lie) executes (this is a small lie) Mesos Agent Mesos Master Zookeeper Framework Task
  • 17. dcos CLI Marathonschedules frameworks 1. reports free resources 4. tells to execute 3. accepts or resource offers 2. makes declines them executes (this is a small lie) actually, Marathon is a framework starts (this is a big lie) actually, it uses an "executor" Mesos Agent Mesos Master Zookeeper Framework Task
  • 18. dcos CLI Marathonschedules frameworks starts Mesos Agent Mesos Master Zookeeper Framework Task notices reports reports
  • 19. dcos CLI Marathonschedules frameworks restarts Mesos Agent Mesos Master Zookeeper Framework Task
  • 20. dcos CLI Marathonschedules frameworks restarts Mesos Agent Mesos Master Zookeeper Framework Task gets state and reconciles reconnects
  • 21. Persistent primitives offer received 20151001-105738-2905319616-5050-2640-O0 with cpus(*):4; mem(*):10895; disk(*):119761; ports(*):[31000-32000]}
  • 22. Persistent primitives offer received 20151001-105738-2905319616-5050-2640-O0 with cpus(*):4; mem(*):10895; disk(*):119761; ports(*):[31000-32000]} trying to reserve 20151001-105738-2905319616-5050-2640-O0 with cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512}
  • 23. Persistent primitives offer received 20151001-105738-2905319616-5050-2640-O0 with cpus(*):4; mem(*):10895; disk(*):119761; ports(*):[31000-32000]} trying to reserve 20151001-105738-2905319616-5050-2640-O0 with cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512} offer received 20151001-105738-2905319616-5050-2640-O1 with cpus(*):3.8; mem(*):10383; disk(*):119249; ports(*):[31000-32000]; cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512}
  • 24. Persistent primitives offer received 20151001-105738-2905319616-5050-2640-O0 with cpus(*):4; mem(*):10895; disk(*):119761; ports(*):[31000-32000]} trying to reserve 20151001-105738-2905319616-5050-2640-O0 with cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512} offer received 20151001-105738-2905319616-5050-2640-O1 with cpus(*):3.8; mem(*):10383; disk(*):119249; ports(*):[31000-32000]; cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512} trying to make 20151001-105738-2905319616-5050-2640-O1 persistent for disk(arangodb, pri)[AGENCY_c2bb93ce-46d3-4802-bed5-cf254c6f16df:dataxyz]:512
  • 25. Persistent primitives offer received 20151001-105738-2905319616-5050-2640-O0 with cpus(*):4; mem(*):10895; disk(*):119761; ports(*):[31000-32000]} trying to reserve 20151001-105738-2905319616-5050-2640-O0 with cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512} offer received 20151001-105738-2905319616-5050-2640-O1 with cpus(*):3.8; mem(*):10383; disk(*):119249; ports(*):[31000-32000]; cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri):512} trying to make 20151001-105738-2905319616-5050-2640-O1 persistent for disk(arangodb, pri)[AGENCY_c2bb93ce-46d3-4802-bed5-cf254c6f16df:dataxyz]:512 offer received 20151001-105738-2905319616-5050-2640-O2 with cpus(*):3.8; mem(*):10383; disk(*):119249; ports(*):[31000-32000]; cpus(arangodb, pri):0.2; mem(arangodb, pri):512; disk(arangodb, pri)[AGENCY_c2bb93ce-46d3-4802-bed5-cf254c6f16df:dataxyz]:512
  • 27. Deployment Docker and github One container image arangodb/arangodb-mesos used to run the ArangoDB framework (C++ executable) all ArangoDB instances in the cluster the Agency (etcd)
  • 28. Deployment Docker and github One container image arangodb/arangodb-mesos used to run the ArangoDB framework (C++ executable) all ArangoDB instances in the cluster the Agency (etcd) The dcos CLI by Mesosphere is a Python program (virtualenv, pip).
  • 29. Deployment Docker and github One container image arangodb/arangodb-mesos used to run the ArangoDB framework (C++ executable) all ArangoDB instances in the cluster the Agency (etcd) The dcos CLI by Mesosphere is a Python program (virtualenv, pip). ArangoDB subcommand: a Python program, talks JSON/REST with the framework, plugs into dcos, deployed from a github repository.
  • 30. Deployment Docker and github One container image arangodb/arangodb-mesos used to run the ArangoDB framework (C++ executable) all ArangoDB instances in the cluster the Agency (etcd) The dcos CLI by Mesosphere is a Python program (virtualenv, pip). ArangoDB subcommand: a Python program, talks JSON/REST with the framework, plugs into dcos, deployed from a github repository. github repository mesosphere/universe has all certified frameworks
  • 31. Scaling ArangoDB Ultimate aim with a distributed database: horizontal scalability.
  • 32. Scaling ArangoDB Ultimate aim with a distributed database: horizontal scalability. Devise a test, . . . to show linear scaling use N = 8, 16, 24, 32, 40, 48, 56, 64, 72, 80 nodes with 8 vCPUs each. run N/2 DBServers, N/2 asynchronous replicas and N/2 Coordinators.
  • 33. Scaling ArangoDB Ultimate aim with a distributed database: horizontal scalability. Devise a test, . . . to show linear scaling use N = 8, 16, 24, 32, 40, 48, 56, 64, 72, 80 nodes with 8 vCPUs each. run N/2 DBServers, N/2 asynchronous replicas and N/2 Coordinators. use single document reads, writes and 50%/50%, from N/2 load servers in the same Mesosphere cluster
  • 34. Scaling ArangoDB Ultimate aim with a distributed database: horizontal scalability. Devise a test, . . . to show linear scaling use N = 8, 16, 24, 32, 40, 48, 56, 64, 72, 80 nodes with 8 vCPUs each. run N/2 DBServers, N/2 asynchronous replicas and N/2 Coordinators. use single document reads, writes and 50%/50%, from N/2 load servers in the same Mesosphere cluster up to 640 vCPUs, want to write as many k docs/(s * vCPU) as possible.
  • 36. Deployment of load servers Docker and ArangoDB
  • 37. Deployment of load servers Docker and ArangoDB Use a central ArangoDB instance to collect results, evaluate them, and synchronise load servers.
  • 38. Deployment of load servers Docker and ArangoDB Use a central ArangoDB instance to collect results, evaluate them, and synchronise load servers. Each load server runs the Waiter in a Docker container.
  • 39. Deployment of load servers Docker and ArangoDB Use a central ArangoDB instance to collect results, evaluate them, and synchronise load servers. Each load server runs the Waiter in a Docker container. The Waiter
  • 40. Deployment of load servers Docker and ArangoDB Use a central ArangoDB instance to collect results, evaluate them, and synchronise load servers. Each load server runs the Waiter in a Docker container. The Waiter waits,
  • 41. Deployment of load servers Docker and ArangoDB Use a central ArangoDB instance to collect results, evaluate them, and synchronise load servers. Each load server runs the Waiter in a Docker container. The Waiter waits, most of the time, observes a collection and notices new "work"documents, fires up load processes, reports termination as a "done"document.
  • 42. Deployment of load servers Docker and ArangoDB Use a central ArangoDB instance to collect results, evaluate them, and synchronise load servers. Each load server runs the Waiter in a Docker container. The Waiter waits, most of the time, observes a collection and notices new "work"documents, fires up load processes, reports termination as a "done"document. A single JavaScript program directs the whole experiment.
  • 43. Deployment of load servers Docker and ArangoDB Use a central ArangoDB instance to collect results, evaluate them, and synchronise load servers. Each load server runs the Waiter in a Docker container. The Waiter waits, most of the time, observes a collection and notices new "work"documents, fires up load processes, reports termination as a "done"document. A single JavaScript program directs the whole experiment. We deploy the Waiter using Marathon.
  • 44. DEMO?