NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8....

31
11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Version: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen „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 nicht relationale 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

Transcript of NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8....

Page 1: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

1

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]:

NoSQL-Einsatzszenarien in transaktionalen

Enterprise-Systemen

„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 nicht relationale 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-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.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-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.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-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.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-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.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

NoSQL Datenbanken

• Dokumentenorientierte Datenbanken

• Graphendatenbanken

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

• Eventually Consistent Stores

• MultivalueDatenbanken

• Objektdatenbanken

• Spaltenorientierte Datenbank

10

Page 6: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

6

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

NoSQL – industrieerprobte Skalierbarkeit

11

Dynamo

BigTable

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

12

Page 7: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

7

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

13

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

CAP Theorem von Eric Brewer (2000)

14

C

A P

Consistency(Konsistenz)

Availability(Verfügbarkeit)

Partition Tolerance(Partitionstoleranz)

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

Page 8: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

8

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Verfügbarkeit

15

Client

Storage

1. write

Client

Storage

2.read

Client

Storage

3. read

1.1synchronize

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Konsistenz

16

Client

Storage

1.write

Client

Storage

3. read

Client

Storage

2. write

1.1 synchronize 2.1 synchronize

Page 9: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

9

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Partitionstoleranz

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

Konsistenz

18

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.

Page 10: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

10

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)

19

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

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 ?

20

Page 11: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

11

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Gliederung

• Transaktionale Storages, NoSQL und das CAP-Theorem

• Transaktionale NoSQL-Szenarien

• Fallstudien

21

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

These

22

Datenm

enge

Durchsatz/Verfügbarkeit

NOSQLBASE- Storages

NOSQLCA-StoragesScale in

klassischeCA-Storages

Page 12: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

12

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

These

23

Relationale Datenbanken skalieren in OO-Entwicklungsszenarien nicht mehr ausreichend.

Warum?

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Objektrelationale Unverträglichkeit (ImpedanceMismatch)

24

ObjektorientierteSicht

RelationaleSicht

JDBC

JDO

EJB (<= 2.1)

HibernateJPA

ObjektrelationalesMapping (ORM)

Page 13: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

13

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Aufspalten des Aggregats auf Zeilen von Tabellen

25

orders

addresses

order lines

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

These

26

Relationale Datenbanken skalieren in OO-Entwicklungsszenarien nicht mehr ausreichend.

Warum?Impedanzmismatch => Joins, viele lesende Transaktionen

Page 14: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

14

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Große Clientanzahl/Verteilte Transaktionen

27

EIS EIS

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Große Clientanzahl/Verteilte Transaktionen

28

EIS EIS

Page 15: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

15

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

These

29

Relationale Datenbanken skalieren in OO-Entwicklungsszenarien nicht mehr ausreichend.

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Applicationserver (not dead)

30

Applicationserver

EIS EIS

Page 16: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

16

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Key-Value Systeme - Vertreter

• Redis

• Amazon Dynamo und S3

• Voldemort

• Riak

• Berkeley DB

• MemcacheDB

31

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

32

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

Page 17: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

17

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Java EE 7 Services

33

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

34

Page 18: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

18

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)

35

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

Gliederung

• Transaktionale Storages, NoSQL und das CAP-Theorem

• Transaktionale NoSQL-Szenarien

• Fallstudien

36

Page 19: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

19

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

JCACHE und Java EE Clustering

37

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Architektur by Peer to Peer

38

• 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

Page 20: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

20

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

39

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Zusätzliche Features …

40

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 -

Page 21: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

21

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

OR/M Integration

41

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Caching – Second Level Cache

42

Cache Concurrency Strategie Query cache

Cache Provider

Class Cache Region

Collection Cache Region

„ „ UpdateTimestamp

Query Cache Region

Physical Cache

Second-Level Cache

Page 22: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

22

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Caching – Second Level Cache

43

EntityManager

EntityManager

1Lvl Cache

1Lvl Cache

• Applikationsweiter Cache

• Provider spezifische Implementierung

• clusterfähig

• Evt. Dateiauslagerung

2nd Level Cache

Datenbank

Filesystem

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Query Cache

44

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

Page 23: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

23

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Query Cache

45

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Functional Caching

46

Function Modul

2. call

JEE

Application

CacheCache

Data Access

UI

1. get6. get

0./5. call

Page 24: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

24

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Functional Caching

47

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Functional Caching

48

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

Page 25: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

25

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Cache I

49

JEE

Application

CacheCache

Data Access

UI

2. get5. put

0./4. Query

JEE

CacheCache

• Secondary Store

3./6. load/Store

JEE

CacheCache

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

JVM

CacheCache

Distributed Cache II

50

Load/Store

JVM

CacheCache

• Secondary Store

JVMApplication

Data Access

Page 26: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

26

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Cache – Data Grid

51

• Secondary Store

JVM

CacheCache

JVM

CacheCache

JVM

ApplicationApplication

Data Access

JVM

CacheCache

JVM

CacheCache

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

52

Page 27: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

27

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Hashing Algorithmus

53

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Cache Execution Konzept

54

Load/Store

JVM

CacheCache

• Secondary Store

JVM

CacheCache

JVMApplication

Data Access

queryupdate

Page 28: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

28

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

55

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Execution on Key Owner example(Hazelcast)

56

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();

Page 29: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

29

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Cache Execution als LB Strategy

57

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Execution Webscaling – key = SessionID

58

• 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

Page 30: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

30

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Distributed Execution Layered Update – key = SessionID

59

• 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

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

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

schulung.htm

• Schulung: Java im Web für Architekten• http://www.oio.de/seminar/entscheider/training-architekten-schulung-

java-seminar-web-kurs.htm

60

Page 31: NoSQL-Einsatzszenarien in transaktionalen Enterprise-Systemen - OIO-Die Java … · 2020. 8. 24. · 11.05.2015 1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

11.05.2015

31

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

??

? ?

????

Fragen ?

61

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

Vielen Dank für ihre Aufmerksamkeit !