SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
Hazelcast bei der SBB
24.Mai 2016 - jug.ch
Korhan Gülseven
kgu@sbb.ch
Hazelcast ist
∧ Ein Produkt
▪ In-Memory Data Grid in Java
▪ Open Source (Apache License 2.0) https://github.com/hazelcast
▪ 6 MB Jar ohne Dependencies
▪ Kommerzielle Versionen & Subscription Plans: Enterprise & HD
∧ Eine Firma
▪ Gründung 2008
▪ Von Istanbul nach Palo Alto (HQ)
▪ Ca. 80 Angestellte
▪ Büros in Istanbul, Ankara, London, New York, Indien
Hazelcast ist
Mission Statement:
«Our main goal is to simplify development of
scalable and highly available systems»
∧ Features
▪ Distributed Data-Grid
▪ Distributed Computing
▪ Messaging
∧ Aus Entwicklersicht
▪ Einfach, vielseitig, schnell
▪ API vom Feinsten
Topologie: Embedded
Topologie: Embedded
Topologie: Client/Server
Partitionierung
∧ Hazelcast speichert die Daten in Partitionen
∧ Die Daten werden in Partitionen gleichmässig verteilt
∧ Bestimmung Partition: hash(key-data) % partition-count
∧ Replicas dienen der Ausfallsicherheit
Partitionierung
Partitionierung
Partitionierung
Partitionierung
Partitionierung
Partition Migration
ƒ Automatisch durch Hazelcast
ƒ Dynamisch, ohne Unterbruch der
laufenden Operationen
ƒ Horizontale Skalierung ohne
Unterbruch
Serialisierung
∧ Serialisierung ist wichtig
∧ In-Memory Format
▪ Binary
▪ Object
∧ Default: Serializable (jdk), Externalizable (jdk), DataSerializable
IdentifiedDataSerializable, Portable
∧ Custom: StreamSerializer, ByteArraySerializer (pluggable z.B. Kyro)
Serialisierung
Data Affinity
Distributed Data Structures
∧ Standard
▪ Map, Multimap, Replicated Map
▪ Set, List, Queue, Ringbuffer
∧ Messaging (pub/sub)
▪ Topic
∧ Concurrency Utilities
▪ Lock, Semaphore, IdGenerator, AtomicLong, CountDownLatch
∧ Persistence APIs für Maps und Queues
▪ Optional
▪ read-through, write-through (sync), write-behind (async)
Distributed Map
Distributed Query
∧ Criteria API
∧ Distributed SQL
∧ Indizes
∧ MapReduce & Aggregators (avg, sum, min, max, eigene..)
Distributed Computing: Motivation
Distributed Computing: Motivation
Latenz, Bandbreite
(De)Serialisierung
(De)Serialisierung
CPU, Speicher
Distributed Computing: Motivation
Distributed Computing
∧ Implementierung von ExecutorService (java.util.concurrent) für verteilte
Umgebungen (Callable, Runnable)
∧ Entry Processor, um Daten lokal und atomar zu modifizieren.
Distributed Computing: EntryProcessor
Distributed Computing: ExecutorService
Distributed Computing: ExecutorService
Messaging
∧ publish/subscribe à la JMS, aber kein JMS-Provider
∧ Topics können dynamisch angelegt werden
∧ Leichtgewichtig, da keine dedizierte Messaging-Middleware
Messaging
Features / Editions
http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html
Features: Was sonst
∧ Event Listeners (Member, Client, Entry..)
∧ Clients (Java, C++, .NET, REST)
∧ JCache (JSR-107) Implementierung
∧ Integration: Hibernate (2nd Level Cache), Web Session Replication, Spring
Framework
∧ Enterpriseyness:
▪ Transactions (XA, JEE Integration über JCA)
▪ WAN Replication
▪ Security
▪ ..
Management Center
Cargo Information System – CIS Infra
«Ein System zum Planen, Verwalten und Durchführen des Güterverkehrs. Liefert
aktuelle, lückenlose Informationen vor, während und nach dem Transport, nicht
nur innerhalb der SBB, sondern auch gegenüber Kunden und anderen Bahnen
können mit diesem Informatik-System Informationen gegeben werden.»
∧ Laufende Migrationsprojekte Mainframe ∧ Java
∧ Viele Umsysteme, viele Schnittstellen
∧ Performance-hungrig
InterCity 839
Zürich HB
00:01
Bern
23:02
Soll-Zeiten (Rail Control System)
Zürich HB
00:01
Bern
23:02
-12h
Prognose-Zeiten (RCS)
-2h
Zürich HB
00:01
Bern
23:02
Ist-Zeiten (RCS)
+0.4h
Zürich HB
00:01
Bern
23:02
~ 35K Zugfahrten
~ 1M Punkte
2GB Heap
Laufend 350x5
(Views) Updates
http://lazysundaymag.com/?p=322

Weitere ähnliche Inhalte

Andere mochten auch

청주대출//BU797。СΟΜ//근로자재해보험 중국비자금액
청주대출//BU797。СΟΜ//근로자재해보험 중국비자금액청주대출//BU797。СΟΜ//근로자재해보험 중국비자금액
청주대출//BU797。СΟΜ//근로자재해보험 중국비자금액bwetdf
 
How Movies Use Myth, Character, and Film Techniques to tell a Great Story
How Movies Use Myth, Character, and Film Techniques to tell a Great StoryHow Movies Use Myth, Character, and Film Techniques to tell a Great Story
How Movies Use Myth, Character, and Film Techniques to tell a Great StorySean Connolly
 
Nueva Redepyme
Nueva RedepymeNueva Redepyme
Nueva Redepymesngular
 
지리산콘도//BU797。СΟΜ//세미나팬션
지리산콘도//BU797。СΟΜ//세미나팬션지리산콘도//BU797。СΟΜ//세미나팬션
지리산콘도//BU797。СΟΜ//세미나팬션bwetdf
 
Instagram Marketing for eCommerce Webinar
Instagram Marketing for eCommerce WebinarInstagram Marketing for eCommerce Webinar
Instagram Marketing for eCommerce WebinarRichard Protheroe
 

Andere mochten auch (6)

Eh bildu aretxabaleta Bilketa sistema hautatzeko galdeketa
Eh bildu aretxabaleta Bilketa sistema hautatzeko galdeketaEh bildu aretxabaleta Bilketa sistema hautatzeko galdeketa
Eh bildu aretxabaleta Bilketa sistema hautatzeko galdeketa
 
청주대출//BU797。СΟΜ//근로자재해보험 중국비자금액
청주대출//BU797。СΟΜ//근로자재해보험 중국비자금액청주대출//BU797。СΟΜ//근로자재해보험 중국비자금액
청주대출//BU797。СΟΜ//근로자재해보험 중국비자금액
 
How Movies Use Myth, Character, and Film Techniques to tell a Great Story
How Movies Use Myth, Character, and Film Techniques to tell a Great StoryHow Movies Use Myth, Character, and Film Techniques to tell a Great Story
How Movies Use Myth, Character, and Film Techniques to tell a Great Story
 
Nueva Redepyme
Nueva RedepymeNueva Redepyme
Nueva Redepyme
 
지리산콘도//BU797。СΟΜ//세미나팬션
지리산콘도//BU797。СΟΜ//세미나팬션지리산콘도//BU797。СΟΜ//세미나팬션
지리산콘도//BU797。СΟΜ//세미나팬션
 
Instagram Marketing for eCommerce Webinar
Instagram Marketing for eCommerce WebinarInstagram Marketing for eCommerce Webinar
Instagram Marketing for eCommerce Webinar
 

Ähnlich wie Hazelcast bei der SBB (jug.ch)

Java und Go im Vergleich
Java und Go im VergleichJava und Go im Vergleich
Java und Go im VergleichQAware GmbH
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickKarin Patenge
 
SAP Datashpere - von Bits und Bites zu Widgets und Charts
SAP Datashpere - von Bits und Bites zu Widgets und ChartsSAP Datashpere - von Bits und Bites zu Widgets und Charts
SAP Datashpere - von Bits und Bites zu Widgets und ChartsIBsolution GmbH
 
Best Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationBest Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationSamuel Zürcher
 
Oracle Database 12c Release 2
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2 oraclebudb
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Ulrike Schwinn
 
Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Josef Adersberger
 
Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?QAware GmbH
 
Scala - OSGi Bundles from Outer (Java) Space
Scala - OSGi Bundles from Outer (Java) SpaceScala - OSGi Bundles from Outer (Java) Space
Scala - OSGi Bundles from Outer (Java) SpaceOliver Braun
 
The Hadoop Connection
The Hadoop ConnectionThe Hadoop Connection
The Hadoop Connectioninovex GmbH
 
MapRecude: The Hadoop Connection
MapRecude: The Hadoop ConnectionMapRecude: The Hadoop Connection
MapRecude: The Hadoop Connectionvesparun
 
Private Cloud mit Open Source
Private Cloud mit Open SourcePrivate Cloud mit Open Source
Private Cloud mit Open SourceDaniel Schneller
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrants0enke
 
DWX 2016 -Build and Release Management
DWX 2016 -Build and Release ManagementDWX 2016 -Build and Release Management
DWX 2016 -Build and Release ManagementMarc Müller
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenLenz Grimmer
 
JBoss AS / EAP Clustering
JBoss AS / EAP  ClusteringJBoss AS / EAP  Clustering
JBoss AS / EAP Clusteringhwilming
 
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAsKarin Patenge
 
Webanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickelnWebanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickelnRoman Roelofsen
 

Ähnlich wie Hazelcast bei der SBB (jug.ch) (20)

Java und Go im Vergleich
Java und Go im VergleichJava und Go im Vergleich
Java und Go im Vergleich
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
 
SAP Datashpere - von Bits und Bites zu Widgets und Charts
SAP Datashpere - von Bits und Bites zu Widgets und ChartsSAP Datashpere - von Bits und Bites zu Widgets und Charts
SAP Datashpere - von Bits und Bites zu Widgets und Charts
 
Best Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationBest Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL Installation
 
Oracle Database 12c Release 2
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2
 
Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?
 
Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?
 
Scala - OSGi Bundles from Outer (Java) Space
Scala - OSGi Bundles from Outer (Java) SpaceScala - OSGi Bundles from Outer (Java) Space
Scala - OSGi Bundles from Outer (Java) Space
 
The Hadoop Connection
The Hadoop ConnectionThe Hadoop Connection
The Hadoop Connection
 
MapRecude: The Hadoop Connection
MapRecude: The Hadoop ConnectionMapRecude: The Hadoop Connection
MapRecude: The Hadoop Connection
 
Private Cloud mit Open Source
Private Cloud mit Open SourcePrivate Cloud mit Open Source
Private Cloud mit Open Source
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
 
DWX 2016 -Build and Release Management
DWX 2016 -Build and Release ManagementDWX 2016 -Build and Release Management
DWX 2016 -Build and Release Management
 
GWT
GWTGWT
GWT
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL Hochverfügbarkeitslösungen
 
JBoss AS / EAP Clustering
JBoss AS / EAP  ClusteringJBoss AS / EAP  Clustering
JBoss AS / EAP Clustering
 
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
 
Webanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickelnWebanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickeln
 
Boston webcast hyperconverged_2016-06
Boston webcast hyperconverged_2016-06Boston webcast hyperconverged_2016-06
Boston webcast hyperconverged_2016-06
 

Hazelcast bei der SBB (jug.ch)