multi-model databases - aurelijus banelisaurelijus.banelis.lt/.../multimodel-databases.pdf ·...

18
Multi-Model databases Aurelijus Banelis

Upload: others

Post on 05-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

Multi-Model databases

Aurelijus Banelis

Page 3: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

Multi-Model databasesWHY

WHATHOW

Alternatives, problems

Definition, basic usage

Internals, pros & cons, tips

Page 4: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

Do we need another DB?There are already a lot of relational, graph, column, RDF, key-value, distributed, SQL, noSQL, newSQL databases (and variation of those)

WH

YH

OW

WH

AT

Page 5: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

Trends in DBMSOwn

Red-Black, binary tree

R-tree

Custom structures

Speed

Reinventingthe wheel

SQLTables Joins

Indexes

ShardingReplication

ACIDTransactions

NoSQLCollections

NestingIndexes

Relations

ScalingAsync

CQRSEvent,

Command,Projection

Technology zoo, tools

SpeedReports

Multi-Model

RelationsNestingIndexes

Not silver bullet

Choice for structures and ACID

WH

YH

OW

WH

AT

Page 6: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

Events vs MultimodelW

HY

HO

WW

HA

T

CQRS versus multimodel database

State

EventsProjection

as database

WALAccessible

data

☑ History☑ Referer ☑ Simple

E.g. on mobile, offline JSSolving conflicts later

Page 7: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

CQRS with MultimodelW

HY

HO

WW

HA

T

Implementation of snapshots in Event database. Made my choice

State

Event has inner structureSnapshots are

graph edges

Page 8: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

Polyglot PersistenceW

HY

HO

WW

HA

T

AnalyticsColumn

User activity logColumn

Financial DataRDBMS

RecommendationsGraph

Product CatalogDocument

User SessionKeyValue

Shopping CartKeyValue

ReportingRDBMS

AnalyticsCassandra

User activity logCassandra

Financial DataArangoDB

RecommendationsArangoDB

Product CatalogArangoDB

User SessionArangoDB

Shopping CartArangoDB

ReportingPostgreSQL

CQRS is very powerful only if data can be split correctly

Page 9: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

I chose MMD becauseW

HY

HO

WW

HA

T

1. Multiple data structures and operations used in application (especially graph based)

2. Needed common data pattern for desktop, web, offline frontend and mobile: common implementation of basic functionality, easy to synchronize

3. Needed a way to track changes/history (CQRS)4. Stable and reliable5. Possibilities for scaling/distributing6. Split data by user: autonomous database

MMD - MultiModel database

Page 10: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

WH

YW

HA

T

DefinitionH

OW

... designed to support

multiple data models against a single,

integrated backend

Page 11: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

WH

YW

HA

T

Single backendH

OW

We want to prevent a deadlock where the team is forced to switch the technology in the middle of the project because it doesn’t meet the requirements any longer

”- Martin Schönert and Frank Celler (ArangoDB)

Fulltext - Search field could be optimisedGraph - Services and Projects have bidirectional relationKey-value - SEO urls need high performanceTable - Category has predefined structure, multiple fieldsNested - Structure of projects differs (Facebook link, services, client, multiple paragraphs)

Page 12: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

WH

YW

HA

T

ORM vs MultiModelH

OW

Software datastructures

Software datastructures

DB DBCom

plex

chan

ge

Sim

ple

ch

ange

Software structure for easy use, database structure for fast read. ORM work on DB side

Page 13: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

HO

WW

HA

TW

HY Multiple models

Graph

Relations in HDD

Gremlin wrappers

Fast jumping between records

ObjectSchema for

each document

ShapesSchema-

hybrid

Faster development or migration

EventsAppend-

only,GC later

MVCC

Faster write on SSD

TablesQuery

language for JOINS

SQL, JSONiq like syntax

Server-side optimised

scan

Key-value

Id/hash calculation per cluster

Mapreduce per clusters

Async writes

Page 14: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

Limitation for Multi-ModelACID

Transaction must fit in memory

MVCCMultiversionConcurrency

Control

Distributed

Low stabilityDepending on

other tools

HazelcastEtcd

Full text

Depending on other

tokenizers

LibCULuceneH

OW

WH

AT

WH

Y

Page 16: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

Conclusion

Single-model

Multi-Model

Many (CQRS)

Solving common problemData structures are stable

Exploring new marketsRelations intensive data

High load or big dataDedicated SysOps / Cloud

Page 17: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

WHYWHATHOW

Alternatives, problems

Definition, basic usage

Internals, pros & cons, tips

Questions?

Multi-Model Databases [email protected] Banelis

Feedback is always welcome:https://docs.google.com/forms/d/1qLHPlA4GlZSI5MuBEyFhBMQiTMn4_RtlJ89oMbyDrBg/viewform

Page 18: Multi-Model databases - Aurelijus Banelisaurelijus.banelis.lt/.../Multimodel-databases.pdf · Multi-Model databases WHY WHAT HOW Alternatives, problems Definition, basic usage Internals,

References and useful links● https://en.wikipedia.org/wiki/Multi-model_database ● http://orientdb.com/orientdb/ ● https://www.arangodb.com/ ●● http://www.odbms.org/blog/2013/10/on-multi-model-databases-interview-with-martin-schonert-

and-frank-celler/ ● https://www.arangodb.com/key-features/ ● https://lostechies.com/jimmybogard/2013/06/06/acid-2-0-in-action/ ● http://www.slideshare.net/arangodb/multi-modeldatabases-41917934 ● http://www.slideshare.net/LuigiDellAquila/orientdb-time-representation ● https://youtu.be/JHGkaShoyNs?t=57m7s● https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model ● http://www.infoworld.com/article/2861579/database/the-rise-of-the-multimodel-database.html ● http://www.jamesserra.com/archive/2015/07/what-is-polyglot-persistence/ ● http://de.slideshare.net/MichaelHackstein/multi-modeldatabases ● http://aws.amazon.com/about-aws/whats-new/2015/08/amazon-dynamodb-titan-graph-

database-integration/ ● https://mesosphere.com/blog/2015/11/30/arangodb-benchmark-dcos/