2. Agenda
2
Einführung
ƒ Was ist Hazelcast?
ƒ Wie funktioniert Hazelcast?
Features
ƒ Distributed Data Structures
ƒ Distributed Query
ƒ Distributed Computing
Einsatz bei Infohub-PT
Einsatz bei CIS Infra
Demo
3. Einführung: Was ist Hazelcast?
3
∧ Firma
▪ Von der Türkei nach Palo Alto
∧ Produkt
▪ Open Source
▪ In-Memory Data Grid (IMGD)
▪ Verteilte Datenstrukturen und Berechnungen
▪ Implementiert in Java
4. Einführung: Was ist Hazelcast?
4
∧ Embedded oder als Client/Server
∧ Kommuniziert Peer-to-Peer.
www.hazelcast.com
5. Einführung: Wie funktioniert Hazelcast?
5
∧ Partitionierung
▪ Alle Partitionen sind möglichst gleichverteilt über den Cluster
▪ Backups / Redundanz
▪ partitionKey = hash(key data) % partition count
www.hazelcast.com
6. Einführung: Wie funktioniert Hazelcast?
6
▪ Partitionstabelle
▪ Jeweils der älteste Knoten verwaltet die Tabelle
▪ 271 Partitionen / Cluster
www.hazelcast.com
7. Einführung: Wie funktioniert Hazelcast?
7
∧ Breispiel Map: Als Objekt oder Binärdaten
∧ Serialisierung immer notwendig
▪ Beispiel: Portable Serialization
public class Foo implements Portable {
final static int ID = 5;
private String foo;
…
@Override public int getFactoryId() { return 1; }
@Override public int getClassId() { return ID; }
@Override
public void writePortable(PortableWriter writer) throws IOException {
writer.writeUTF( "foo", foo );
}
}
8. Einführung: Wie funktioniert Hazelcast?
8
∧ DataAffinity
public class OrderKey implements Serializable, PartitionAware {
private final long orderId;
private final long customerId;
…
public Object getPartitionKey() { return customerId; }
}
12. Features: Distributed Computing
12
Ziele
ƒ Parallele Verarbeitung der Tasks
ƒ Ausführung der Tasks lokal bei den Daten (Code → Data)
Implementierung von ExecutorService (java.util.concurrent)
für verteilte Umgebungen (Callable, Runnables)
Entry Processors um Daten lokal und atomar zu modifizieren.
13. Features: Was sonst
13
Event Listeners (Member, Client, Entry..)
Clients (Java, C++, .NET, REST)
JCache (JSR-107) Implementierung
Integration: Hibernate (2nd Level Cache), Web Session Replication,
Spring
Enterprisy’ness:
ƒ Transactions (XA, JEE Integration über JCA)
ƒ WAN Replication
ƒ Security
ƒ …
21. PoC: Hazelcast on/with SBB WebSphere
21
Ziel: Zeigen, dass Hazelcast auf der SBB WebSphere-Plattform (HighEnd)
betrieben werden kann.
Scope
Embedded in WebSphere
Dediziert (out-of-process) mit Client auf WebSphere
25KB XML (~10KB Java) über zwei Queues, bis zu 120/sec
Ergebnisse
Durchsatz
Betreibbarkeit auf WebSphere
Indexes Hazelcast ϑ
https://confluence.sbb.ch/display/CISINFRAE/PoC+-+Hazelcast+on+Websphere