ArangoDB Siegen, 31 August 2017 Max Neunhffer www.arangodb.com - - PowerPoint PPT Presentation

arangodb
SMART_READER_LITE
LIVE PREVIEW

ArangoDB Siegen, 31 August 2017 Max Neunhffer www.arangodb.com - - PowerPoint PPT Presentation

ArangoDB Siegen, 31 August 2017 Max Neunhffer www.arangodb.com Documents (JSON) In this talk, when I say document, I mean JSON document: JSON example { "name": "Neunhffer", "firstName":


slide-1
SLIDE 1

ArangoDB

Max Neunhöffer Siegen, 31 August 2017

www.arangodb.com

slide-2
SLIDE 2

Documents (JSON)

In this talk, when I say “document“, I mean JSON document:

JSON example

{ "name": "Neunhöffer", "firstName": "Max", "address": { "street": "Im Bendchen", "number": "35a", "town": "Kerpen", zip: 50169 }, "height": 1.80, "blabla": null, "isHere": true, "isAway": false, "children": ["Savina", "Phil"] }

slide-3
SLIDE 3

The Multi-Model Approach

Multi-model database

A multi-model database combines a document store with a graph database and is at the same time a key/value store,

slide-4
SLIDE 4

The Multi-Model Approach

Multi-model database

A multi-model database combines a document store with a graph database and is at the same time a key/value store, with a common query language for all three data models.

slide-5
SLIDE 5

The Multi-Model Approach

Multi-model database

A multi-model database combines a document store with a graph database and is at the same time a key/value store, with a common query language for all three data models. Important: is able to compete with specialised products on their turf

slide-6
SLIDE 6

The Multi-Model Approach

Multi-model database

A multi-model database combines a document store with a graph database and is at the same time a key/value store, with a common query language for all three data models. Important: is able to compete with specialised products on their turf allows for polyglot persistence using a single database technology

slide-7
SLIDE 7

The Multi-Model Approach

Multi-model database

A multi-model database combines a document store with a graph database and is at the same time a key/value store, with a common query language for all three data models. Important: is able to compete with specialised products on their turf allows for polyglot persistence using a single database technology In a microservice architecture, there will be several different deployments.

slide-8
SLIDE 8

Relational database vs. document store

Comparison

Relational database Document store table collection row JSON document schema of columns schema-free SQL query

  • ther, JSON-centric languages

standardized wide variety data normalization choice between embedding and normalization joins many stores do not offer joins (ArangoDB does!)

slide-9
SLIDE 9

Use case: Aircraft fleet management

slide-10
SLIDE 10

Use case: Aircraft fleet management

One of our customers uses ArangoDB to store each part, component, unit or aircraft as a document model containment as a graph thus can easily find all parts of some component keep track of maintenance intervals perform queries orthogonal to the graph structure thereby getting good efficiency for all needed queries http://radar.oreilly.com/2015/07/ data-modeling-with-multi-model-databases.html

slide-11
SLIDE 11

Why is multi-model possible at all?

Document stores and key/value stores

Document stores: have primary key, are key/value stores.

slide-12
SLIDE 12

Why is multi-model possible at all?

Document stores and key/value stores

Document stores: have primary key, are key/value stores. Without using secondary indexes, performance is nearly as good as with

  • paque data instead of JSON.
slide-13
SLIDE 13

Why is multi-model possible at all?

Document stores and key/value stores

Document stores: have primary key, are key/value stores. Without using secondary indexes, performance is nearly as good as with

  • paque data instead of JSON.

Good horizontal scalability can be achieved for key lookups. https://www.arangodb.com/2015/10/benchmark-postgresql-mongodb-arangodb/

slide-14
SLIDE 14

Why is multi-model possible at all?

Document stores and graph databases

Graph database: would like to associate arbitrary data with vertices and edges, so JSON documents are a good choice.

slide-15
SLIDE 15

Why is multi-model possible at all?

Document stores and graph databases

Graph database: would like to associate arbitrary data with vertices and edges, so JSON documents are a good choice. A good edge index, giving fast access to neighbours. This can be a secondary index.

slide-16
SLIDE 16

Why is multi-model possible at all?

Document stores and graph databases

Graph database: would like to associate arbitrary data with vertices and edges, so JSON documents are a good choice. A good edge index, giving fast access to neighbours. This can be a secondary index. Graph support in the query language.

slide-17
SLIDE 17

Why is multi-model possible at all?

Document stores and graph databases

Graph database: would like to associate arbitrary data with vertices and edges, so JSON documents are a good choice. A good edge index, giving fast access to neighbours. This can be a secondary index. Graph support in the query language. Implementations of graph algorithms in the DB engine. https://www.arangodb.com/2015/10/benchmark-postgresql-mongodb-arangodb/

slide-18
SLIDE 18

AQL: Powerful query language

AQL

The built in Arango Query Language allows complex, powerful and convenient queries,

slide-19
SLIDE 19

AQL: Powerful query language

AQL

The built in Arango Query Language allows complex, powerful and convenient queries, to mix all three data models in a query,

slide-20
SLIDE 20

AQL: Powerful query language

AQL

The built in Arango Query Language allows complex, powerful and convenient queries, to mix all three data models in a query, with transactional semantics,

slide-21
SLIDE 21

AQL: Powerful query language

AQL

The built in Arango Query Language allows complex, powerful and convenient queries, to mix all three data models in a query, with transactional semantics, to do joins (like in the relational model),

slide-22
SLIDE 22

AQL: Powerful query language

AQL

The built in Arango Query Language allows complex, powerful and convenient queries, to mix all three data models in a query, with transactional semantics, to do joins (like in the relational model), AQL is independent of the driver used and

slide-23
SLIDE 23

AQL: Powerful query language

AQL

The built in Arango Query Language allows complex, powerful and convenient queries, to mix all three data models in a query, with transactional semantics, to do joins (like in the relational model), AQL is independent of the driver used and

  • ffers protection against injections by design.
slide-24
SLIDE 24

AQL: Powerful query language

FOR user IN users RETURN user

slide-25
SLIDE 25

AQL: Powerful query language

FOR user IN users FILTER user.name == ’alice’ RETURN user

slide-26
SLIDE 26

AQL: Powerful query language

FOR user IN users FILTER user.name == ’alice’ FOR product IN OUTBOUND user has_bought RETURN product

slide-27
SLIDE 27

AQL: Powerful query language

FOR user IN users FILTER user.name == ’alice’ FOR recommendation, action, path IN 3 ANY user has_bought FILTER path.vertices[2].age <= user.age + 5 AND path.vertices[2].age >= user.age - 5 FILTER recommendation.price < 25 LIMIT 10 RETURN recommendation

slide-28
SLIDE 28

Extensible through JavaScript

The Foxx Microservice Framework

Allows you to extend the HTTP/REST API by your own routes, which you implement in JavaScript running on the database server, with direct access to the C++ DB engine.

slide-29
SLIDE 29

Extensible through JavaScript

The Foxx Microservice Framework

Allows you to extend the HTTP/REST API by your own routes, which you implement in JavaScript running on the database server, with direct access to the C++ DB engine. Unprecedented possibilities for data centric services: complex queries or authorizations, schema-validation, push feeds, etc.

slide-30
SLIDE 30

Extensible through JavaScript

The Foxx Microservice Framework

Allows you to extend the HTTP/REST API by your own routes, which you implement in JavaScript running on the database server, with direct access to the C++ DB engine. Unprecedented possibilities for data centric services: complex queries or authorizations, schema-validation, push feeds, etc. easy deployment via web interface or REST API,

slide-31
SLIDE 31

Extensible through JavaScript

The Foxx Microservice Framework

Allows you to extend the HTTP/REST API by your own routes, which you implement in JavaScript running on the database server, with direct access to the C++ DB engine. Unprecedented possibilities for data centric services: complex queries or authorizations, schema-validation, push feeds, etc. easy deployment via web interface or REST API, automatic API description through Swagger = ⇒ discoverability of services.

slide-32
SLIDE 32

: A distributed, fault-tolerant system

ArangoDB provides (Version 3.2, August 2017)

Sharding with automatic data distribution, easy setup of replication (synchronous and asynchronous), fault tolerance by automatic failover, self-repairing and self-balancing cluster architecture, full integration with Apache Mesos and Mesosphere DCOS, easy deployment and scaling on various cloud orchestration tools.

slide-33
SLIDE 33

: A distributed, fault-tolerant system

ArangoDB provides (Version 3.2, August 2017)

Sharding with automatic data distribution, easy setup of replication (synchronous and asynchronous), fault tolerance by automatic failover, self-repairing and self-balancing cluster architecture, full integration with Apache Mesos and Mesosphere DCOS, easy deployment and scaling on various cloud orchestration tools. Work in progress (Version 3.3, October 2017): asynchronous data center to data center replication,

slide-34
SLIDE 34

: A distributed, fault-tolerant system

ArangoDB provides (Version 3.2, August 2017)

Sharding with automatic data distribution, easy setup of replication (synchronous and asynchronous), fault tolerance by automatic failover, self-repairing and self-balancing cluster architecture, full integration with Apache Mesos and Mesosphere DCOS, easy deployment and scaling on various cloud orchestration tools. Work in progress (Version 3.3, October 2017): asynchronous data center to data center replication, Distributed transactions.

slide-35
SLIDE 35

horizontal scalability

Experiment: Single document writes (1kB / doc) on cluster of sizes 8 to 80 machi- nes (64 to 640 vCPUs), another 4 to 40 load servers, running on AWS. https://mesosphere.com/blog/2015/11/30/arangodb-benchmark-dcos/

slide-36
SLIDE 36

Easy deployment

Binary packages for various Linux variants, Windows and MacOS Docker images There is a tool for easy cluster deployment “ArangoDB starter“ For Apache Mesos and DC/OS there is a framework scheduler Cloud orchestration tools like Kubernetes and Docker Swarm are possible

slide-37
SLIDE 37

Links

https://www.arangodb.com https://docs.arangodb.com http://mesos.apache.org/ https://mesosphere.com/ https://mesosphere.github.io/marathon/