59
NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Version: Wir haben hier nur ein in Java implementierte Frontends vor einer hostbasierten Businesslogic, wir profitieren nicht von NoSQL in unserer Architektur.' - Falsch! Die Session demonstriert Szenarien in denen auch in klassischen transaktionalen(ACID) Architekturen Bedarf und Platz für Optimierung durch nichtrelationale Storages mit Support für ACID-Transaktionen besteht. Caching, parallele Ausführung oder die Unterstützung von MapReduce- Algorithmen werden als komplementäre Konzepte von NoSQL-Storages gezeigt, die auch im relational dominierten transaktionalen Umfeld Optimierungsoptionen bieten. 1.1

NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

NoSQL-Einsatzszenarien in der transaktionalen

Enterprise -IT

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]:

Wir haben hier nur ein in Java implementierte Frontends vor einer hostbasierten Businesslogic, wir profitieren nicht von NoSQL in unserer

Architektur.' - Falsch!Die Session demonstriert Szenarien in denen auch in klassischen

transaktionalen(ACID) Architekturen Bedarf und Platz für Optimierung durch nichtrelationale Storages mit Support für ACID-Transaktionen besteht.

Caching, parallele Ausführung oder die Unterstützung von MapReduce-Algorithmen werden als komplementäre Konzepte von NoSQL-Storages

gezeigt, die auch im relational dominierten transaktionalen Umfeld Optimierungsoptionen bieten.

1.1

Page 2: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Gliederung

• Transaktionale Storages, NoSQL und das CAP-Theorem

• Transaktionale NoSQL-Szenarien

• Fallstudien

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 2

Page 3: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

„Klassische“ Enterprise-Vertreter

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 3

Page 4: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

• 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 5: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

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

Big Data (Bewegungsdaten)

Performance

Skalierung

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 5

Mobile Frontend-Anbindung

Skalierung

Page 6: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Scale-in vs. Scale-out

!?!?

Zisch ...

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 6

Vertikal skalieren Horizontal skalieren

Page 7: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

These

Relationale Datenbanken skalieren in OO -Entwicklungsszenarien nicht mehr ausreichend.

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 7

ausreichend.

Warum?

Was tun ?

Page 8: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

NoSQL = kein SQL mehr?

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 8

Page 9: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Nicht nur SQL!

NoSQLNot only SQLNot only SQL

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 9

NoSQLNot only SQLNot only SQL

Page 10: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

NoSQL Datenbanken

• Dokumentenorientierte Datenbanken• Graphendatenbanken• Key-Value-Stores

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

• Eventually Consistent Stores• MultivalueDatenbanken• Objektdatenbanken• Spaltenorientierte Datenbank

10

Page 11: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

NoSQL – industrieerprobte Skalierbarkeit

Dynamo

BigTable

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 11

Page 12: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

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?)

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

– Spezifische Reporting-Möglichkeiten (Ad-hoc reporting?)

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

12

Page 13: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Probleme mit NoSQL

• unübersichtlich, große Auswahl

• sehr anwendungsfall-spezifisch

• viel Bewegung im Markt

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

• Schemalosigkeit

• (In-) Konsistenz von Daten

13

Page 14: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

CAP Theorem von Eric Brewer (2000)

C

Consistency(Konsistenz)

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 14

A P

Availability(Verfügbarkeit)

Partition Tolerance(Partitionstoleranz)

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

Page 15: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Verfügbarkeit

Client

1. write

Client

2.read

Client

3. read

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 15

Storage Storage Storage

1.1synchronize

Page 16: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Konsistenz

Client

1.write

Client

3. read

Client

2. write

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 16

Storage Storage Storage

1.1 synchronize 2.1 synchronize

Page 17: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Partitionstoleranz

Client

1.write

Client

3. read

Client

2. write

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 17

Storage Storage Storage

1.1 synchronize 2.1 synchronize

Page 18: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Konsistenz

C

A P

Alle Knoten sehen zur gleichen Zeit die gleichen Daten.

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 18

A P

Strikte Konsistenz, wenn sie sofort

sichergestellt ist (ACID).

Oder gewisses Zeitfenster der

Inkonsistenz (BASE).

Page 19: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

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)

Neue Nachricht wird um 13:12 geschrieben

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 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

Page 20: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Eventually Consistent – Konsequenzen ?

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

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

• = BASE vs. ACID ?

20

Page 21: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Gliederung

• Transaktionale Storages, NoSQL und das CAP-Theorem

• Transaktionale NoSQL-Szenarien

• Fallstudien

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 21

Page 22: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

These

Datenm

enge

NOSQLBASE- Storages

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 22

Datenm

enge

Durchsatz/Verfügbarkeit

NOSQLCA-StoragesScale in

klassischeCA-Storages

Page 23: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

These

Relationale Datenbanken skalieren in OO -Entwicklungsszenarien nicht mehr ausreichend.

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 23

ausreichend.

Warum?

Page 24: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Objektrelationale Unverträglichkeit (ImpedanceMismatch)

ObjektorientierteSicht

RelationaleSicht

JDBCEJB (<= 2.1)

ObjektrelationalesMapping (ORM)

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 24

JDO

EJB (<= 2.1)

HibernateJPA

Page 25: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Aufspalten des Aggregats auf Zeilen von Tabellen

orders

addresses

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 25

order lines

Page 26: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

These

Relationale Datenbanken skalieren in OO -Entwicklungsszenarien nicht mehr ausreichend.

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 26

ausreichend.

Warum?Impedanzmismatch => Joins, viele lesende Transaktionen

Page 27: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Große Clientanzahl/Verteilte Transaktionen

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 27

EIS EIS

Page 28: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Große Clientanzahl/Verteilte Transaktionen

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 28

EIS EIS

Page 29: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

These

Relationale Datenbanken skalieren in OO -Entwicklungsszenarien nicht mehr ausreichend.

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 29

ausreichend.

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

Page 30: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Applicationserver (not dead)

Applicationserver

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 30

Applicationserver

EIS EIS

Page 31: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

NoSQL Datenbanken

• Dokumentenorientierte Datenbanken• Graphendatenbanken• Key-Value-Stores

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

• Eventually Consistent Stores• MultivalueDatenbanken• Objektdatenbanken• Spaltenorientierte Datenbank

31

Page 32: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Key-Value Systeme - Vertreter

• Redis

• Amazon Dynamo und S3

• Voldemort

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

• Riak

• Berkeley DB

• MemcacheDB

32

Page 33: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Die beliebtesten Key-Value-Stores

38%5%

3%

3% 2%2% 1% 1%

5% Redis Memcached Riak Ehcache DynamoDB Berkeley DB

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

26%

8%

6%Berkeley DB SimpleDB Hazelcast Coherence Oracle NoSQL Infinispan Sonstige

33

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

Page 34: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Java EE 7 Services

Java EE

JTA/JTS/JCA

CDI/Beanvalidation

Java Mail ConcurrencyUtils

JAX-RS

JPA

JMS Websocket

JBatch

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 34

JNDI

JAXP JDBC

JAFJAX-WSSAAJ CommonAnnotations

JAXB

JAAS/JACC/JSR196

EnterpriseApplication

Page 35: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

Lösungskonzepts für High Availability– garantierte Antwortzeiten machbar– Ausfall von Knoten kompensierbar– (insbesondere gedacht für Web-Anwendungen)

• Skalierung der Datenmenge problematisch

35

Page 36: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

– Read Commited/Repeatable Read

• Standardisiertes API –JSR 107(347)

36

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

Page 37: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Gliederung

• Transaktionale Storages, NoSQL und das CAP-Theorem

• Transaktionale NoSQL-Szenarien

• Fallstudien

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 37

Page 38: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

JCACHE und Java EE Clustering

JEE

Application

Data Access

UI

0./4. Query

JEE

Application

Data Access

UI

0. Update

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 38

CacheCache

1. get5. get

CacheCache

1.x Store A1 2. Read A

• Secondary Store

Page 39: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Architektur by Peer to Peer

Vollst. Replikation

Distributed Hash Table

Ehcache x -

Hazelcast - x

Infinispan x x

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 39

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

Page 40: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Architektur by Client Server

Ehcache Hazelcast Infinispan

HardwareKonfiguration in Client-Server Mode

x - -

Elasticdeployment in

- x x

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

deployment in Client-Server Mode

40

Page 41: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Zusätzliche Features …

Ehcache Hazelcast Infinispan

Off-Heap Memory x x -

Persistent Caches x - -

Full-Text Search x - x

WAN Replication x x ???

GUI Tools x x -

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 41

GUI Tools x x -

JMX Management x x x

Messaging andProcessing

- x -

Page 42: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

OR/M Integration

Java Virtual Machine

Anwendung

Transient

Transient

PersistenceManager

1.Level Cache

ConnectionInstanzInstanz

Instanz

QueryFacility

Transaction

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 42

TransientTransient

TransientDB

2.Level Cache

Entity Cache

InstanzInstanz

InstanzInstanz

QueryFacility

QueryCache

TimestampCache

Page 43: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Query Cache

Query Cache

Applikation

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

from Person p where p.name = :name

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 43

TimestampID VORNAME NAME

1 Thorsten Maier

2 Ben Bartho

25 Tobias Maier

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

Page 44: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Query Cache

Query Cache

Applikation

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

from Person p where p.name = :name

Update Person

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 44

TimestampID VORNAME NAME

1 Thorsten Maier

2 Ben Bartho

25 Tobias Maier

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

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 45: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Functional Caching

JEE

Application

Data Access

UI

0./5. call

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 45

Function Modul

2. callCacheCache

1. get6. get

Page 46: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Functional Caching

JEE

Application

Data Access

UI

0./5. call

Function Modul

4.1 invalidate

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 46

Function Modul

2. callCacheCache

1. get6. get

SecondaryStorage

Function Modul

4. update

2.X query

Page 47: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Functional Caching

0.1 /5.1 call

JEE

Application

Data Access

UI

0./5. call

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 47

Modul B

CacheCache

1. get6. get

SecondaryStorage

2.X query/update

Modul A

2.call

Page 48: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Distributed Cache I

JEE

Application

Data Access

UI

0./4. Query

JEE JEE

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 48

CacheCache

2. get5. put

CacheCache

• Secondary Store

3./6. load/Store

CacheCache

Page 49: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Distributed Cache II

JVMApplication

Data Access

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

JVM

CacheCache

49

Load/Store

JVM

CacheCache

• Secondary Store

Page 50: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Distributed Cache – Data Grid

JVM

ApplicationApplication

Data Access

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 50

• Secondary Store

JVM

CacheCache

JVM

CacheCache

Data Access

JVM

CacheCache

JVM

CacheCache

Page 51: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

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.

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

– 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

51

Page 52: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Distributed Cache Execution Konzept

JVMApplication

Data Access

queryupdate

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 52

Load/Store

JVM

CacheCache

• Secondary Store

JVM

CacheCache

Page 53: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

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

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH

• resourcenoptimale Verarbeitung

– auf allen Knoten bzw. einem Subset• Massenverarbeitung

53

Page 54: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Execution on Key Owner example(Hazelcast)

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 54

Page 55: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Distributed Cache Execution als LB Strategy

Distributed Cache

Node1

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

autodetection DB

Weblayer

command

submitToKeyOwner(lock 1)

NoSQL in transaktionalen Enterprisesystemen© 2015 Orientation in Objects GmbH 55

Node 2

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

autodetection DB

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

Page 56: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Distributed Execution Webscaling – key = SessionID

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 56

• 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

Page 57: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Distributed Execution Layered Update – key = SessionID

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 57

• 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

Page 58: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

? ??Fragen ?

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

??Fragen ?

58

Page 59: NoSQL-Einsatzszenarien in der transaktionalen …...NoSQL-Einsatzszenarien in der transaktionalen Enterprise-IT Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version:

Vielen Dank für ihre

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

Vielen Dank für ihre Aufmerksamkeit !