35
02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Version: NoSQL in transaktionalen Enterprisesystemen „Wir haben hier nur ein paar Java Clients vor einem Host, wir profitieren nicht von NoSQL in unserer Architektur.“. Falsch! Der Vortrag zeigt, dass es auch in klassischen transaktionalen(ACID) Architekturszenarien Bedarf und Platz für Optimierung durch nichtrelationale Storages mit Support für ACID- Transaktionen gibt. Konzepte wie Caching, parallele Ausführung oder die Unterstützung von MapReduce-Algorithmen können komplementäre Ansätze von NoSQL-Storages sein, die auch im relational dominierten transaktionalen Umfeld Vorteile erbringen. 1.1 NoSQL in transaktionalen Enterprisesystemen © 2015 Orientation in Objects GmbH Gliederung Transaktionale Storages, NoSQL und das CAP-Theorem Transaktionale NoSQL-Szenarien Fallstudien 2

NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: [email protected] NoSQL in transaktionalen Enterprisesystemen

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

1

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]:

NoSQL in transaktionalen

Enterprisesystemen

„Wir haben hier nur ein paar Java Clients vor einem Host, wir profitieren nicht von NoSQL in unserer Architektur.“. Falsch! Der Vortrag zeigt, dass es auch in klassischen transaktionalen(ACID) Architekturszenarien Bedarf und Platz für

Optimierung durch nichtrelationale Storages mit Support für ACID-Transaktionen gibt. Konzepte wie Caching, parallele Ausführung oder die

Unterstützung von MapReduce-Algorithmen können komplementäre Ansätze von NoSQL-Storages sein, die auch im relational dominierten transaktionalen

Umfeld Vorteile erbringen.

1.1

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Gliederung

• Transaktionale Storages, NoSQL und das CAP-Theorem

• Transaktionale NoSQL-Szenarien

• Fallstudien

2

Page 2: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

2

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

„Klassische“ Enterprise-Vertreter

3

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Relationale Datenbanken (RDBMS)

• Organisation von Daten in zweidimensionalen Tabellen (Arrays)– zeilenweise Speichern der Daten– eindeutiger Primärschlüssel je Zeile– einheitliche Datentypen in Zellen einer Spalte, jede Spalte hat

eindeutigen Namen (Schema)

• Kontrollieren von parallelen Zugriffen über Transak tionen

• Standardisiert: Im Kern sind alle relationalen DBs sehr ähnlich– SQL, ...– einer der Erfolgsgaranten

• Fremdschlüsselbeziehungen, referentielle Integrität, Joins, Indexierung, Trigger, Views, ...

4

Page 3: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

3

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Was sind mögliche Probleme von klassischen Enterprise-Storages?

5

Big Data (Bewegungsdaten)

Mobile Frontend-Anbindung

Performance

Skalierung

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Scale-in vs. Scale-out

6

!?!?

Zisch ...

Vertikal skalieren Horizontal skalieren

Page 4: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

4

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

These

7

Relationale Datenbanken skalieren in OO-Entwicklungsszenarien nicht mehr ausreichend.

Warum?

Was tun ?

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

SQL

NoSQL = kein SQL mehr?

8

Page 5: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

5

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Nicht nur SQL!

9

NoSQLNot only SQLNot only SQL

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Einfache Formel

NoSQL

= Relationale Datenbank

- Transaktionen - Normalisierung - Joins - Konsistenz - hartes Schema

(+) Skalierung(+) Performance

10

Page 6: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

6

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

NoSQL Datenbanken

• Dokumentenorientierte Datenbanken

• Graphendatenbanken

• Key-Value-Stores– Diskbasiert– RAM-Cache– Sortierte Key-Value-Stores

• Eventually Consistent Stores

• MultivalueDatenbanken

• Objektdatenbanken

• Spaltenorientierte Datenbank

11

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

NoSQL – industrieerprobte Skalierbarkeit

12

Dynamo

BigTable

Page 7: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

7

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Nachteile

• Vielfalt, kein gemeinsamer „Standard“ wie SQL– Fehlendes Know-How– Schwaches/spezifisches Tooling

• Im Gegensatz zu SQL– Eingeschränkte Querying-Möglichkeiten (Ad-hoc fixing?)– Spezifische Reporting-Möglichkeiten (Ad-hoc reporting?)

• Datenmigration kann schwieriger sein– Unterschiedliche Technologien– Unterschiedliche Konzepte– Export-Funktionen unterschiedlich stark

13

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Probleme mit NoSQL

• unübersichtlich, große Auswahl

• sehr anwendungsfall-spezifisch

• viel Bewegung im Markt

• Schemalosigkeit

• (In-) Konsistenz von Daten

14

Page 8: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

8

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

CAP Theorem von Eric Brewer (2000)

15

C

A P

Consistency(Konsistenz)

Availability(Verfügbarkeit)

Partition Tolerance(Partitionstoleranz)

Nur zwei der Eigenschaften können gleichzeitig erfü llt sein, nicht alle drei!

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Verfügbarkeit

16

Client

Storage

1. write

Client

Storage

2.read

Client

Storage

3. read

1.1synchronize

Page 9: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

9

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Konsistenz

17

Client

Storage

1.write

Client

Storage

3. read

Client

Storage

2. write

1.1 synchronize 2.1 synchronize

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Partitionstoleranz

18

Client

Storage

1.write

Client

Storage

3. read

Client

Storage

2. write

1.1 synchronize 2.1 synchronize

Page 10: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

10

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Konsistenz

19

C

A P

Strikte Konsistenz, wenn sie sofort

sichergestellt ist (ACID).

Oder gewisses Zeitfenster der

Inkonsistenz (BASE).

Alle Knoten sehen zur gleichen Zeit die gleichen Daten.

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Eventually Consistence

• Daten sind irgendwann konsistent geschrieben

• Bis dahin liefern Lesezugriffe nur eventuell konsistente Daten

• Verwendung in NoSQL Datenbanken

• Absichtlicher Verstoss gegen ACID (Atomarität, Konsistenz, Isoliertheit und Dauerhaftigkeit)

20

Message,12:07Message,13:12

Message,12:07Message,13:12

Message,12:07

Neue Nachricht wird um 13:12 geschrieben

Lesezugriff Client 1 Client 2 Client 3

Knoten 1-3

Page 11: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

11

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Eventually Consistent – Konsequenzen ?

• Strong consistency: ACID (Atomicity, Consistency, Isolation, Durability)

• Weak consistency: BASE (Basically Available, Soft-state, Eventual consistency) – Availability first

• = BASE vs. ACID ?

21

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Gliederung

• Transaktionale Storages, NoSQL und das CAP-Theorem

• Transaktionale NoSQL-Szenarien

• Fallstudien

22

Page 12: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

12

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

These

23

Datenm

enge

Durchsatz/Verfügbarkeit

NOSQLBASE- Storages

NOSQLCA-StoragesScale in

klassischeCA-Storages

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

These

24

Relationale Datenbanken skalieren in OO-Entwicklungsszenarien nicht mehr ausreichend.

Warum?

Page 13: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

13

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Objektrelationale Unverträglichkeit (ImpedanceMismatch)

25

ObjektorientierteSicht

RelationaleSicht

JDBC

JDO

EJB (<= 2.1)

HibernateJPA

ObjektrelationalesMapping (ORM)

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Aufspalten des Aggregats auf Zeilen von Tabellen

26

orders

addresses

order lines

Page 14: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

14

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

These

27

Relationale Datenbanken skalieren in OO-Entwicklungsszenarien nicht mehr ausreichend.

Warum?Impedanzmismatch => Joins, viele lesende Transaktionen

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Große Clientanzahl/Verteilte Transaktionen

28

EIS EIS

Page 15: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

15

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Große Clientanzahl/Verteilte Transaktionen

29

EIS EIS

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

These

30

Relationale Datenbanken skalieren in OO-Entwicklungsszenarien nicht mehr ausreichend.

Warum?Impedanzmismatch => Joins, viele lesende TransaktionenGroße Anzahl von ClientsLange (verteilte) Transaktionen

Page 16: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

16

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Applicationserver (not dead)

31

Applicationserver

EIS EIS

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Gliederung

• Transaktionale Storages, NoSQL und das CAP-Theorem

• Transaktionale NoSQL-Szenarien

• Fallstudien

32

Page 17: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

17

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

NoSQL CA-Datenbanken

• Dokumentenorientierte Datenbanken

• Graphendatenbanken• Key-Value-Stores

– Diskbasiert– RAM-Cache– Sortierte Key-Value-Stores

• Eventually Consistent Stores

• MultivalueDatenbanken

• Objektdatenbanken

• Spaltenorientierte Datenbank

33

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Node

Graph-DB Konzept

34

ID 12

username jdoe

birthday 1975 011975-08-01

Node

ID 47

username smith

Node

ID 123

Page 18: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

18

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Kernelemente

• Fokussiert auf Beziehungen

• verschiedene Abfragemöglichkeiten

• verwendet ACID

• Skalierung begrenzt

35

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Die beliebtesten Graph-Datenbanken

77%

9%

7%

7%

Neo4j OrientDB Titan Sonstige

36

Quelle: http://db-engines.com, Stand: Januar 2014

Page 19: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

19

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Graphen bestehen aus

• Knoten

• Beziehungen

• Eigenschaften

• Labels

37

DieterDevelop

BerndBoss

OIO

hat angestellt

arbeitet bei

gehört Firma

Person

Person

alter:48geschlecht: M

gehalt: 1000steuer: IV

gegründet: 1998Sitz: Mannheim

am: 01.01.99

seit: 01.01.99

geführt

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Suchen von Mustern

38

Page 20: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

20

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Key-Value Systeme - Vertreter

• Redis

• Amazon Dynamo und S3

• Voldemort

• Riak

• Berkeley DB

• MemcacheDB

39

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Die beliebtesten Key-Value-Stores

38%

26%

8%

6%

5%

3%

3% 2%2% 1% 1%

5% Redis Memcached Riak Ehcache DynamoDB Berkeley DB SimpleDB Hazelcast Coherence Oracle NoSQL Infinispan Sonstige

40

Quelle: http://db-engines.com, Stand: Januar 2014

Page 21: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

21

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Java EE 7 Services

41

Java EE

JTA/JTS/JCA

CDI/Beanvalidation

Java Mail ConcurrencyUtils

JAX-RS

JPA

JMS

JNDI

JAXP

Websocket

JBatch

JDBC

JAFJAX-WSSAAJ CommonAnnotations

JAXB

JAAS/JACC/JSR196

EnterpriseApplication

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Java EE Middleware

• strenge Spezifikation einer Softwarearchitektur

• transaktionsbasierte Ausführung von Java-Komponenten

• auf transkaktionsbasiertem Konzept beruhende Teilstandards – JTA/JCA/JPA/JMS/JDBC

• Horizontale Skalierbarkeit der Anfragen innerhalb d es Lösungskonzepts für High Availability– garantierte Antwortzeiten machbar– Ausfall von Knoten kompensierbar– (insbesondere gedacht für Web-Anwendungen)

• Skalierung der Datenmenge problematisch

42

Page 22: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

22

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Elastic Data Grid für Java EE

• Niedrige Latenzzeit – RAM 100fach schneller als Disk

• Horizontal skalierbar

• Elastisch– Knoten können kontrolliert ein/ausgeschaltet werden

• optionaler ACID Support– Read Commited/Repeatable Read

• Standardisiertes API –JSR 107(347)

43

Servlet

Node 1

JSF

Node 3

EJB

Node 2

AppserverAppserverJSR 107

Node 1

JSR 107

Node 3

JSR 107

Node 2

Data GridData Grid

RDBMS

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

JCACHE und Java EE Clustering

44

JEE

Application

CacheCache

Data Access

UI

1. get5. get

0./4. Query

JEE

Application

CacheCache

Data Access

UI

1.x Store A1 2. Read A

0. Update

• Secondary Store

Page 23: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

23

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Architektur by Peer to Peer

45

• Netzwerkprotokolle– Jgroups: Infinispan, Ehcache– UDP Multicast: bestandteil von Jgroups, standalone in Hazelcast– RMI: Ehcache– JMS: Ehcahe, Infinispan Near cache Invalidation

Vollst. Replikation

Distibuted Hash Table

Ehcache x -

Hazelcast - x

Infinispan x x

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Architektur by Client Server

Ehcache Hazelcast Infinispan

HardwareKonfiguration in Client-Server Mode

x - -

Elasticdeployment in Client-Server Mode

- x x

46

Page 24: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

24

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Zusätzliche Features …

47

Ehcache Hazelcast Infinispan

Off-Heap Memory x x -

Persistent Caches x - -

Full-Text Search x - x

WAN Replication x x ???

Gui Tools x x -

JMX Management x x x

Messaging andProcessing

- x -

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

OR/M Integration

48

Java Virtual Machine

Anwendung

Transient

Transient

TransientTransient

Transient

PersistenceManager

1.Level Cache

Connection

DB

InstanzInstanz

Instanz

2.Level Cache

Entity Cache

InstanzInstanz

InstanzInstanz

QueryFacility

Transaction

QueryCache

TimestampCache

Page 25: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

25

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Caching – Second Level Cache

49

Cache Concurrency Strategie Query cache

Cache Provider

Class Cache Region

Collection Cache Region

„ „ UpdateTimestamp

Query Cache Region

Physical Cache

Second-Level Cache

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Caching – Second Level Cache

50

EntityManager

EntityManager

1Lvl Cache

1Lvl Cache

• Applikationsweiter Cache

• Provider spezifische Implementierung

• clusterfähig

• Evt. Dateiauslagerung

2nd Level Cache

Datenbank

Filesystem

Page 26: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

26

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Query Cache

51

Query Cache

TimestampID VORNAME NAME

1 Thorsten Maier

2 Ben Bartho

25 Tobias Maier

Applikation

Key:select * from Person where NAME= ‚MAIER‘

Value: 1, 25 - 18:12.2014 15:14:45:01

from Person p where p.name = :name

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Query Cache

52

Query Cache

TimestampID VORNAME NAME

1 Thorsten Maier

2 Ben Bartho

25 Tobias Maier

Applikation

Key:select * from Person where NAME= ‚MAIER‘

Value: 1, 25 - 18:12.2014 15:14:45:01

from Person p where p.name = :name

18:12:2014 15:45:54:13 - Person

Update Person

Check for updates

ID VORNAME NAME

1 Thorsten Maier

2 Ben Bartho

25 Tobias KieningerUpdate

Page 27: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

27

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Functional Caching

53

Function Modul

2. call

JEE

Application

CacheCache

Data Access

UI

1. get6. get

0./5. call

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Functional Caching

54

Function Modul

2. call

JEE

Application

CacheCache

Data Access

UI

1. get6. get

0./5. call

SecondaryStorage

Function Modul

4. update

2.X query

4.1 invalidate

Page 28: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

28

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Functional Caching

55

Modul B

0.1 /5.1 call

JEE

Application

CacheCache

Data Access

UI

1. get6. get

0./5. call

SecondaryStorage

2.X query/update

Modul A

2.call

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Cache I

56

JEE

Application

CacheCache

Data Access

UI

2. get5. put

0./4. Query

JEE

CacheCache

• Secondary Store

3./6. load/Store

JEE

CacheCache

Page 29: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

29

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

JVM

CacheCache

Distributed Cache II

57

Load/Store

JVM

CacheCache

• Secondary Store

JVMApplication

Data Access

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Cache – Data Grid

58

• Secondary Store

JVM

CacheCache

JVM

CacheCache

JVM

ApplicationApplication

Data Access

JVM

CacheCache

JVM

CacheCache

Page 30: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

30

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Hashing Algorithmus

• z.B. basierend auf „consistent hashing“/Amazon Dynamo Paper

• Key Space in mehreren Segmenten(Anzahl Segmente ist konfigurierbar)

• Jedes Hash Segment ist gemapped auf eine Menge von Knoten(owners)– Reihenfolge ist wichtig.– Primary owner hat spezielle Aufgaben bei vielen Operationen(z.B: Locking) – Andere Knoten heißen backup owners

• Ausgleich der Anzahl Segmente auf den Knoten

• Minimierung der Anzahl der Segmente, die sich bewegen müssen falls:– Neuer Knoten zum Cluster hinzukommt– Bestehender Knoten Cluster verlässt

59

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Hashing Algorithmus

60

Page 31: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

31

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Cache Execution Konzept

61

Load/Store

JVM

CacheCache

• Secondary Store

JVM

CacheCache

JVMApplication

Data Access

queryupdate

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Cache Execution Konzept

• Execution Code (Callable)….– auf einem a spezifischen explizit gewählten cluster knoten

• Anwendungsspezifische Algorithmik

– auf dem cluster knoten dem der Key zugeordnet ist (with lockid)• datenlokale Verarbeitung

– auf einem vom cache gewählten cluster knoten (without lockid)• resourcenoptimale Verarbeitung

– auf allen Knoten bzw. einem Subset• Massenverarbeitung

62

Page 32: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

32

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Execution on Key Owner example(Hazelcast)

63

Callable<String> task = new Command(input);

HazelcastInstance hz = Hazelcast.newHazelcastInstance();

IExecutorService executorService = hz.getExecutorService("default");

Future<String> future = executorService.submitToKeyOwner(task, key);

String commandResult = future.get();

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Cache Execution als LB Strategy

64

Distributed Cache

Node1

Node 2

lock 1 | lock 1 | lock 2 | lock 2 |

lock 3 | lock 3 | lock 4 | lock 4 | lock 5 | lock 5 |

autodetection DB

Weblayer

command

submitToKeyOwner(lock 1)

Die Ausführung erfolgt auf den Knoten welcher den Key hält

Page 33: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

33

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Execution Webscaling – key = SessionID

65

• Secondary Store

JVM

CacheCache

JVM

CacheCache

JVM

CacheCache

JVM

CacheCache

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Execution Layered Update – key = SessionID

66

• Secondary Store

JVM

CacheCache

JVM

CacheCache

JVM

CacheCache

JVM

CacheCache

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEE

Application

Data Access

JEEJEE

ApplicationApplication

Data AccessData Access

JEEJEE

ApplicationApplication

Data AccessData Access

JEEJEE

ApplicationApplication

Data AccessData Access

JEEJEE

ApplicationApplication

Data AccessData Access

JEEJEE

ApplicationApplication

Data AccessData Access

JEEJEE

ApplicationApplication

Data AccessData Access

JEE

Application V2

Data Access

JEE

Application V2

Data Access

JEE

Application V2

Data Access

JEE

Application V2

Data Access

JEE

Application V2

Data Access

JEE

Application V2

Data Access

Page 34: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

34

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Mehr von OIO zum Thema…

• Schulung: NoSQL mit Java im Überblick – http://www.oio.de/seminar/entscheider/training-nosql-schulung-

datenbank-seminar-einfuehrung-kurs.htm

• Schulung: Java Persistence Performance Tuning (Datenbank Performance)– http://www.oio.de/seminar/java/training-datenbank-kurs-performance-

schulung.htm

67

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

??

? ?

????

Fragen ?

68

Page 35: NoSQL in transaktionalen Enterprisesystemen · 02.02.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL in transaktionalen Enterprisesystemen

02.02.2015

35

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

Vielen Dank für ihre Aufmerksamkeit !