58
Prof. Dr. Stefan Edlich NoSQL in der Cloud

Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Embed Size (px)

Citation preview

Page 1: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Prof. Dr. Stefan Edlich

NoSQL in der Cloud

Page 2: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

nosqlberlin.de nosqlfrankfurt.de nosql powerdays

Page 3: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

http://nosql-database.org

Page 4: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud
Page 5: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud
Page 6: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

NoSQL is specialization!

• Big Data

• Massive Write Performance

• Fast KV Access

• Write Availability

• Flexible Schema (Migration) + Flexible Datatypes

• Easier maintainability, administration and operations

• No single point of failure

• Programmer ease of use

Page 7: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Theorie?!Map/Reduce Map/Reduce Nachfolger!

ACID / BASE & CAP P liegt in der Regel nie vor!

Consistent Hashing Basis skalierbarer K/V Stores

MVCC non blocking Vorteile

Vector Clocks [122:1][147:2|122:1]

[97:3|147:2|122:1]

Page 8: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Persistenz

Disk Full Memory Hybrid Pluggable

DatenmodellColumn Family DocumentDB Key / Value Graph

SchnittstellenREST Language

APIThrift/Avro

Map/Reduce Get/Put

Page 9: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Google Protocol Buffers

=>

Page 10: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

• JSON

• Binary data transfer

• automatic RPC generation

• no code generation

• Client + Server tauschen Schema bei Änderung

unbedingt evaluieren!

Apache Avro!

Page 11: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Datenmodelle

Page 12: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Voldemort, Chordless, Scalaris, Dynamo / Dynomite

db4o, Versant, Objectivity, Gemstone, Progress, Mark Logic, EMC Momentum, Tamino, GigaSpaces, Hazelcast, Terracotta, …

Column Family

DocumentDBs

Key/ValueDBs

GraphDBs

andere

Page 13: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

HBase Cassandra

SimpleDB

Page 14: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

+ Skalierung = new node+ Community+ API- Replikation- Aufsetzen, Optimierung, Wartung

+ Skalierung = new node+ Replikation+ Konfiguration (r, w)- Dokumentation- Abfragen

+ stressfreie SaaS Lösung+ transparent scaling- UTF-8 String- Daten liegen bei Amazon+- kein tuning / config

Page 15: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Document Databases

Page 16: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

any JS-Client

no Middleware!

DB+WebServer+evolving App

Page 17: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

2.Runde+= 6,5 Mio $

Page 18: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

- nicht normalisiert (Duplicates, Delete Orphans, ...)

- (konfigurierbare Zeit Crash anfällig) (Journaling)

- Eventually Consistent

- echte Skalierung nur über Sharding

- (noch nicht kill -9 fest)

Page 19: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

EC2 Node 66 GB EC2 Node 66 GB

67 GBIndex Data

11 hours + 1 day off

Page 20: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

+ nicht normalisiert+ Schema Agilität+ Doku exzellent+ Speed (MemMapped Files)+ Installation+save =28 sek!+ beliebige Indizes+ MapReduce+ Rich Query Language+ GridFS (statt HDFS)+ einfache Replizierung (Master-Slave / Replica Sets)

Page 21: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

db.system.indexes.find();db.friends.getIndexes();db.friends.ensureIndex({friend: 1});db.friends.ensureIndex({friend: 1, zip: 1}); //compounddb.friends.find({friend: „Mario“, zip: „13755“}).explain();

Queries: age: {$gt: 10} food:{$all: [„pizza“, „noodles“]}$gt, $lt, $lte, $ne, $in, $nin, $mod, $all, $size, $exists, $type, , $or, $elem, $elemMatch, regexp, ...

NoSQL Query LockIn?!

Page 22: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Migrations Architektur-Pattern:

A) Blacklist

Sich veränderndes Schema

rename

try { ...} catch (FirstException | SecondException ex) { // newName = BlackList.checkName(OldName)}

Page 23: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

B) „Rails“ Migration

new name

new name

new name

new name

old namenew name

(nicht wenn zu oft repliziert)

old namenew name

old namenew name

old namenew name

Page 24: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Duplikate = SpaceAktualität der Daten

„Pre-Joined“ Daten!„pre-computeD“

wachsende Daten raus oder Pre-SPACED

Page 25: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

In die Cloud…

Page 26: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Clients

Config Serversmongos

ROUTER

Replica Set

Shard A Shard B Shard C

RAM+DISK+

POSSIBLE ARBITER

micro64 bit [extra | double | quadrupel] Large

Page 27: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Erfahrungen…

• RAID Konfigurationen (00,01,10,03,05, …)

• Journaling-Dateisysteme (ext4, xfs, …)• (Security) Ports, F-Deskriptoren,

Snapshots,…

www.mongodb.org/display/DOCS/Amazon+EC2

Page 28: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

K/V-Stores+ sehr schnell > 100.000 /sek

+ konfigurierbarer Disc sync

+ API für eigene Anbindung

+ einfache Replikation

+ hash, list, set, sorted set,

messages

+ Installation

UNIX: 38 sek

Windows: 18 sek

- cloud-cluster erst in Version

3.*

Datenstrukturen abbilden ->

Page 29: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Sorted Set

Page 30: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

memcached

API

Page 31: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

• simply dynamic scaling (up & down)• scales linear• bullet proof by Zynga.com• limited membase protocol• Membase Tap (Protocol Interception)• Code-Node:

Page 32: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Membase in der Cloud

• Fertige RightScale & AMI templates

• Diverse Ports öffnen

• DNS Eintrag und keine verändernden IPs

• Master Node angeben• legt Quota für die Erben fest

• Backups für EBS

Page 33: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

GraphDBs

Property Graph

Page 34: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

player

Page 35: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Graph DBs in der Cloud• > N Milliarden Knoten? Sharding!

• aber meistens kein „predictable lookup“

• möglich nur bei Domain Specific Knowledge

• ausbalancierte DBs ohne sweet spots kaum möglich

• Access Patterns + Heuristiken (Insert Sharding / Runtime Sharding) => partitionierungs Algorithmen

• (HA) Neo4j Cache Sharding! • Multi-Master Cluster for Consistent

Routing

Page 36: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

> 220 DBs

durchausfrustrierendes Consulting…

Page 37: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Data

Transactions

Performance

Queries

Architecture

other Non-Functional Requirements

Page 38: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Analyse your DataDomain-Data, Log-Data, Event-Data, Message-Data, critical Data, Business-Data, Meta-Data, temp Data, Session-Data, Geo Data, etc.

Data- / Storage-Model:relational, column-o, doc-alike, graphs, objects, etc.What Types / Type-System?Data-Navigation, Data Amount, Data Komplexity (Deep XML?)

ACID vs. BASE vs. Mixture?CAP decisions

Performance Dimension AnalysisLatency, Request behaviour, Throughput

Scale-Up vs Scale-Out

Distribution Architecturelocal, parallel, distributed / grid, service, cloud, mobile, p2p, …

Data Access Patternsread / write distribution, random / sequential, Access Design Patterns

Query RequirementsTypical queries, Tools, Ad-Hoc Queries, SQL / LINQ needed, Map/Reduce? …

Non Functional Requirements:Replication, Refactoring Frequency, DB-Support, Qualification / simplicity, Company restrictions, DB diversity (allowed?), Security, Safety / Backup & Restore, Crash Resistance, Licence…

Page 39: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

NoSQL

FAZIT

Page 40: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Unbedingt RAM & SDD annehmen!

Gustavo

AlonsoLot‘s of >1 PT RAM DBs

in California!

Service, RAM, Cloud, Mobile

RethinkDB

SAP-Strategie?

Page 41: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

DaaS Zeitalter

Alleine für MongoDB weit über 100 „Database-as-a-Service“ Provider!Amazon: SimpleDB, Hadoop, etc.

Page 42: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Viele clevere hybrid Lösungen!

CouchBase, Hadoop+MySQL

Page 43: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Database-aaS => best Mix!

OLAP

Availability

Ad Hoc Query

Page 44: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

kritische

Daten

unkritische

Daten

(View, Domain, Stamm, Meta, Log, …)by Couch, MongoDB, Redis, Membase,

Management

Analytics

Zahlungsdaten, persönliche Daten, …by classic RDBMS, Vertica, VoltDB,

Database.com, GenieDB, … Hadoop* BI

OLAP BI

Dwight Merriman (10gen)

Page 45: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Links

• nosql-database.org

• nosqltapes.com

• mynosql.com

.com

Page 46: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Diskussion!

Thanks for listening!

http://edlich.de

Page 47: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Schutzpatent

funktionale

(graph)

Dekomposition?

Oder…

Group By

Use Case:Aggregate

pi -> 1015 -> 1000 cluster

Page 48: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Programmierung top! Programmierung nervt!

Nur `large data indexing`

Starke Konkurrenz: Stratosphere (TUB), ePic, SwissBox, etc.

„A giant step back!

Imcompatible, missing features,

not new, …“ Stonebraker

herrlich

paralellisierbar

Page 49: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Map

Reduce

Cross

Match

CoGroup

Paralellization Contracts

u.v.m… =>

Graph Ops

compile, analyze, optimize

auf einer atmenden Cloud!

Page 50: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

ACID

BASE• Amazon Dynamo• MySQL Replikation

Eventually Consistent

WATER

Page 51: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Consistency Models

© Wilfried Springer NoSQL Rollercoaster

Page 52: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

Availability

Partition ToleranceConsistency

CAP Theoreme

ACID / Isolation

Clients see equal data

System is always ‘ on‘

Clients find replicas

Pick 2!

NoSQLKlassiker

Page 53: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

„Don‘t throw C away so easy! It‘s complex.“

What you really have is: 1. Application errors2. Repetable DBMS errors3. Unrepeatable DBMS errors4. Operating System errors5. Hardware failure in cluster6. Network partition in local cluster7. A disaster8. WAN failure

Page 54: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

• 6 = Network Partition is rare

• 3,4,5,6 is mostly a Single Node

• Algorithms can help!

„give up P rather than sacrificing C. Use VoltDB or NimbusDB”

Page 55: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

M:[0,5)

N:[5,10)

O:[10,15)

P:[15,20)

Q:[20,25)

R:[25,30)

HASH KNOTEN REPLIKAT

2 M N,O

8 N O,P

10 O P,Q

17 P Q,R

22 Q R,M

26 R M,N

W = 2*WR = 1*R

Consistent Hashing

• ausfallsicher • leicht erweiterbar • gut verteilt / vnodes

Page 56: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

pessimistisches Locking?

MVCCMulti Version Concurrency

Control

Page 57: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud
Page 58: Prof. Dr. Stefan Edlich NoSQL in der Cloud Prof. Dr. Stefan Edlich NoSQL in der Cloud

laufen

L:1

surfen

P:1L:1

surfen

L:2P:1

laufen

A:1L:1

laufen

A:1L:1P:0

surfen

L:2P:1A:0

surfen

P:2A:1L:2

=>

Anna

Paul

Laura

Vector Clocks