SlideShare a Scribd company logo
1 of 39
Download to read offline
HAZELCAST 3
IN-MEMORY DATAGRID

www.hazelcast.com
WHO AM I
Christoph Engelbert (@noctarius2k)
8+ years of professional Java development
5+ years of backend development
Specialized to performance, GC, traffic topics
Was working for int. companies as Ubisoft and HRS
Since November 2013 official Hazelcast Hacker
Apache DirectMemory / Lightning Committer and PMC
Developer CastMapR - MapReduce on Hazelcast 3

www.hazelcast.com
HAZELCAST IN KEYWORDS
In-Memory DataGrid
Distributed Cache
Distributed Execution Framework
NoSQL
Clustering
Scalability
Partitioning
Cloud Ready
OpenSource - Apache License 2.0

www.hazelcast.com
WHO USES HAZELCAST?

and many more ...

www.hazelcast.com
USECASES
Scale your application
Distribute and share data
Partition your data
Distribute messages
Process in parallel on multiple machines
Load balancing

www.hazelcast.com
ALTERNATIVES?
Oracle Coherence
IBM eXtreme Scale
VMware Gemfire
Gigaspaces
Redhat Infinispan
Gridgain
Terracotta

www.hazelcast.com
DIFFERENCES?
Easy to use
License / Cost
Lightweight
Features

www.hazelcast.com
FEATURES
Java Collection API
Map, Queue, Set, List
MultiMap
Topic (PubSub)
Java Concurrency API
Lock, Semaphore, CountDownLatch, ExecutorService
Transactions
Custom Serialization
Off-Heap support
Native client: C#, C++, Java, REST, memcached

www.hazelcast.com
EASY API
/ Cetn anwHzlatnd
/ raig
e aecs oe
Hzlatntneh =HzlatnwaecsIsac(;
aecsIsac z
aecs.eHzlatntne)
/ GtigaMp Ls,Tpc ..
/ etn
a, it oi, .
Mpmp=h.eMp"aNm";
a a
zgta(Mpae)
Ls ls =h.eLs(LsNm";
it it
zgtit"itae)
Ioi tpc=h.eTpc"oiNm";
Tpc oi
zgtoi(Tpcae)
/ Sutn dw tend
/ htig on h oe
h.hton)
zsudw(;

www.hazelcast.com
HOW DOES IT WORK?

www.hazelcast.com
DATA PARTITIONING (1/2)
Multiple partitions per node
Consistent Hashing: hash(key) % partitioncount
Option to control partitioning: "key@partitionkey"
Possibility to find key owner for every key
Support for Near-Caching and executions on key owner
Automatic Fault-Tolerance
Synchronous and Asynchronous backups
Define sync / async backup counts

www.hazelcast.com
DATA PARTITIONING (2/2)
With 4 cluster nodes every server holds
1/4 real data and 1/4 of backups

www.hazelcast.com
A HAZELCAST NETWORK

www.hazelcast.com
HAZELCAST IN NUMBERS
Default partition amount 271
Any partition amount possible
Biggest cluster 100+ members
Handles 100k+/sec messages using a topic
Max datasize depends on RAM
Off-Heap for low GC overhead

www.hazelcast.com
COMMUNITY VS. ENTERPRISE
Feature
Java Collection API
Java Concurrency API
SSL Socket
Elastic Memory (Off-Heap)
JAAS Security / Authentication
Management Center

Community
X
X
X

Enterprise
X
X
X
X
X
X

www.hazelcast.com
CODE SAMPLES

www.hazelcast.com
EASY TO UNITTEST
pbi casSmTsCs {
ulc ls oeetae
piaeHzlatntne]isacs
rvt aecsIsac[ ntne;
@eoe
Bfr
pbi vi bfr( trw Ecpin{
ulc od eoe) hos xeto
/ Mlil isacso tesm JM
/ utpe ntne n h ae V
isacs=nwHzlatntne2;
ntne
e aecsIsac[]
isacs0 =HzlatnwaecsIsac(;
ntne[]
aecs.eHzlatntne)
isacs1 =HzlatnwaecsIsac(;
ntne[]
aecs.eHzlatntne)
}
@fe
Atr
pbi vi atr)trw Ecpin{
ulc od fe( hos xeto
HzlatsudwAl)
aecs.htonl(;
}
}

www.hazelcast.com
SERIALIZATION
/ jv.oSraial
/ aai.eilzbe
pbi casUe ipeet Sraial {
ulc ls sr mlmns eilzbe }
/ o jv.oEtraial
/ r aai.xenlzbe
pbi casUe ipeet Etraial {
ulc ls sr mlmns xenlzbe }
/ o (o.aecs.i.eilzto)DtSraial
/ r cmhzlatnosraiain.aaeilzbe
pbi casUe ipeet DtSraial {
ulc ls sr mlmns aaeilzbe }
/ o nwi Hzlat3(ut vrinspot Pral
/ r e n aecs
mli eso upr) otbe
pbi casUe ipeet Pral {
ulc ls sr mlmns otbe }

www.hazelcast.com
MAP
itraecmhzlatcr.MpK V
nefc o.aecs.oeIa<, >
etnsjv.tlMp jv.tlCnurnMp
xed aaui.a, aaui.ocreta
Hzlatntneh =gtaecsIsac(;
aecsIsac z
eHzlatntne)
Ia<tig Ue>hMp=h.eMp"sr";
MpSrn, sr za
zgta(ues)
hMppt"ee" nwUe(Ptr,"enjr);
za.u(Ptr, e sr"ee" Vete")
MpSrn,Ue>mp=h.eMp"sr";
a<tig sr a
zgta(ues)
mppt"ee" nwUe(Ptr,"enjr);
a.u(Ptr, e sr"ee" Vete")
CnurnMpSrn,Ue>cnurnMp=h.eMp"sr";
ocreta<tig sr ocreta
zgta(ues)
cnurnMpptfbet"ee" nwUe(Ptr,"enjr);
ocreta.uIAsn(Ptr, e sr"ee" Vete")
Ue ptr=mpgt"ee";
sr ee
a.e(Ptr)

www.hazelcast.com
LIST
itraecmhzlatcr.Ls<>
nefc o.aecs.oeIitE
etnsjv.tlLs
xed aaui.it
Hzlatntneh =gtaecsIsac(;
aecsIsac z
eHzlatntne)
Ls<sr ls =h.eLs(ues)
i
​tUe> ​t
i
zgtit"sr";
ls.d(e Ue(Ptr,"enjr);
i
​tadnw sr"ee" Vete")
Ue ptr=ls.e()
sr ee
itgt0;

www.hazelcast.com
QUEUE
itraecmhzlatcr.Ls<>
nefc o.aecs.oeIitE
etnsjv.tlLs
xed aaui.it
Hzlatntneh =gtaecsIsac(;
aecsIsac z
eHzlatntne)
BoknQeeTs>qee=h.eQee"ak";
lciguu<ak uu
zgtuu(tss)
qeeofrnwak);
uu.fe(eTs()
qeeofrnwak) 50 TmUi.ILSCNS;
uu.fe(eTs(, 0, ientMLIEOD)
Ts ts =qeepl(;
ak ak
uu.ol)
Ts ts =qeepl(0,TmUi.ILSCNS;
ak ak
uu.ol10 ientMLIEOD)
Ts ts =qeetk(;
ak ak
uu.ae)

www.hazelcast.com
LOCK (1/3)
itraecmhzlatcr.Lc
nefc o.aecs.oeIok
etnsjv.tlcnurn.ok.ok
xed aaui.ocretlcsLc

www.hazelcast.com
LOCK (2/3)
Hzlatntneh =gtaecsIsac(;
aecsIsac z
eHzlatntne)
/ DsrbtdRetat
/ itiue enrn
Lc lc =h.eLc(mLc";
o
​k ​k
o
zgtok"yok)
lc.ok)
o
​klc(;
ty{
r
/ D smtig
/ o oehn
}fnly{
ial
lc.nok)
o
​kulc(;
}

www.hazelcast.com
LOCK (3/3)
Hzlatntneh =gtaecsIsac(;
aecsIsac z
eHzlatntne)
/ Mp(o-lcs
/ a Rw)ok
Ia<tig Ue>mp=h.eMp"sr";
MpSrn, sr a
zgta(ues)
mplc(Ptr)
a.ok"ee";
ty{
r
/ D smtigwt Ptr
/ o oehn ih ee
}fnly{
ial
mpulc(Ptr)
a.nok"ee";
}

www.hazelcast.com
TOPIC / PUBSUB
pbi casEapeipeet MsaeitnrSrn>{
ulc ls xml mlmns esgLsee<tig
pbi vi snMsae{
ulc od edesg
Hzlatntneh =gtaecsIsac(;
aecsIsac z
eHzlatntne)
Ioi<tig tpc=h.eTpc"oi";
TpcSrn> oi
zgtoi(tpc)
tpcadesgLsee(hs;
oi.dMsaeitnrti)
tpcpbih"el Wrd)
oi.uls(Hlo ol";
}
@vrie
Oerd
pbi vi oMsaeMsaeSrn>msae {
ulc od nesg(esg<tig esg)
Sse.u.rnl(Gtmsae "+msaegtesgOjc()
ytmotpitn"o esg:
esg.eMsaebet);
}
}

www.hazelcast.com
EXECUTORSERVICE
pbi itraecmhzlatcr.EeuoSrie
ulc nefc o.aecs.oeIxctrevc
etnsjv.tlcnurn.xctrevc
xed aaui.ocretEeuoSrie
Hzlatntneh =gtaecsIsac(;
aecsIsac z
eHzlatntne)
Ixctrevc e =h.eEeuoSrie"ae)
EeuoSrie s
zgtxctrevc(nm";
e.xctOAlebr(ulRnal()
seeuenlMmesbidunbe);
e.xctOKywe(ulRnal(,"ee";
seeueneOnrbidunbe) Ptr)
e.xct(ulRnal()
seeuebidunbe);
Mp.>ftrs=e.umtolMmesbidalbe);
a<. uue
ssbiTAlebr(ulClal()
Ftr<. ftr =e.umtoeOnrbidalbe) "ee";
uue.> uue
ssbiTKywe(ulClal(, Ptr)
e.umtolMmesbidalbe) bidalak);
ssbiTAlebr(ulClal(, ulClbc()
e.umtoeOnrbidalbe) "ee" bidalak);
ssbiTKywe(ulClal(, Ptr, ulClbc()

www.hazelcast.com
ADVANCED TECHNIQUES

www.hazelcast.com
ADVANCED TECHNIQUES
Indexing keys, values and value properties
Distributed SQL-like query
Write-Behind / Write-Through persistence
Read-Through (if key not loaded use MapLoader)
Transactions
EntryListeners / EntryProcessors
Automatic eviction
Control partitioning (Version 3.1)
and many more ...

www.hazelcast.com
CODE SAMPLES

www.hazelcast.com
INDEXING
Ia<tig Ue>mp=Hzlatgta(ues)
MpSrn, sr a
aecs.eMp"sr";
mpadne(ae,tu)
a.dIdx"g" re;
/ odrd
/ ree
mpadne(atv" fle;/ ntodrd
a.dIdx"cie, as) / o ree
<a nm=epoes>
mp ae"mlye"
..
.
<nee>
idxs
<ne odrd"re>g<idx
idx ree=tu"ae/ne>
<ne odrd"as"nm<idx
idx ree=fle>ae/ne>
<idxs
/nee>
<mp
/a>

www.hazelcast.com
DISTRIBUTED SQL-LIKE QUERIES
Ia<tig Ue>mp=Hzlatgta(ues)
MpSrn, sr a
aecs.eMp"sr";
Peiaepeiae=nwSlrdct(atv ADae< 3";
rdct rdct
e qPeiae"cie N g = 0)
StUe>ues=mpvle(rdct)
e<sr sr
a.auspeiae;
StEtySrn,Ue> etis=mpetye(rdct)
e<nr<tig sr> nre
a.nrStpeiae;

www.hazelcast.com
MAPLOADER / MAPSTORE
pbi casMptrg
ulc ls aSoae
ipeet Mptr<tig Ue> MpodrSrn,Ue>{
mlmns aSoeSrn, sr, aLae<tig sr
/ Sm mtosmsig..
/ oe ehd isn .
@vriepbi Ue la(tigky {rtr laVleBky;}
Oerd ulc sr odSrn e)
eun odauD(e)
@vriepbi StSrn>laAles){rtr laKyD(;}
Oerd ulc e<tig odlKy(
eun odesB)
@vriepbi vi dlt(tigky {dltD(e) }
Oerd ulc od eeeSrn e)
eeeBky;
@vriepbi vi soeSrn ky Ue vle {
Oerd ulc od tr(tig e, sr au)
soeoaaaeky vle;
trTDtbs(e, au)
}
}
<a nm=ues>
mp ae"sr"
<a-tr eald"re>
mpsoe nbe=tu"
<ls-aecmhzlateapeMptrg<casnm>
casnm>o.aecs.xml.aSoae/ls-ae
<rt-ea-eod><wiedlyscns
wiedlyscns0/rt-ea-eod>
<mpsoe
/a-tr>
<mp
/a>

www.hazelcast.com
TRANSACTION (1/2)
Hzlatntneh =gtaecsIsac(;
aecsIsac z
eHzlatntne)
fnlMpmp=h.eMp"eal";
ia a a
zgta(dfut)
fnlQeeqee=h.eQee"eal";
ia uu uu
zgtuu(dfut)
h.xctTascinnwTascinlakVi>){
zeeuernato(e rnatoaTs<od(
@vrie
Oerd
pbi Vi eeueTascinlakotx cnet {
ulc od xct(rnatoaTsCnet otx)
Tettet=(we)qeepl(;
we we
Tet uu.ol)
poeswe(we)
rcsTettet;
mpptbide(we) tet;
a.u(ulKytet, we)
rtr nl;
eun ul
}
};
)

www.hazelcast.com
TRANSACTION (2/2)
Hzlatntneh =gtaecsIsac(;
aecsIsac z
eHzlatntne)
Tascinotx cnet=h.eTascinotx(;
rnatoCnet otx
znwrnatoCnet)
cnetbgnrnato(;
otx.eiTascin)
Tascinla mp=cnetgta(dfut)
rnatoaMp a
otx.eMp"eal";
Tascinluu qee=cnetgtuu(dfut)
rnatoaQee uu
otx.eQee"eal";
ty{
r
Tettet=(we)qeepl(;
we we
Tet uu.ol)
poeswe(we)
rcsTettet;
mpptbide(we) tet;
a.u(ulKytet, we)
cnetcmiTascin)
otx.omtrnato(;
}cth(xeto e {
ac Ecpin )
cnetrlbcTascin)
otx.olakrnato(;
}

www.hazelcast.com
CONTROL PARTITIONING
Force location of corresponding data in the same partition
by providing a special partition key
Hzlatntneh =gtaecsIsac(;
aecsIsac z
eHzlatntne)
Mpues=h.eMp"sr";
a sr
zgta(ues)
uespt"ee@ee" nwUe(Ptr,"enjr);
sr.u(PtrPtr, e sr"ee" Vete")
Mpfins=h.eMp"red";
a red
zgta(fins)
finspt"ee-hi@ee" nwUe(Crsoh,"nebr")
red.u(PtrCrsPtr, e sr"hitp" Eglet);
finspt"ee-udPtr,nwUe(Fa" "aio")
red.u(PtrFa@ee" e sr"ud, Mlkv);

www.hazelcast.com
WHAT ELSE?

www.hazelcast.com
SPI (NEW IN HAZELCAST 3)
Possibility to build own distributed datastructures
Hook into datastructure events
Implement your own services (like RemoteInvocation,
MapReduce)
React on membership events
Manipulate migrations on your purpose
Handle splitbrain events
and many more ...

www.hazelcast.com
EXTERNAL ADDONS
hazelgrails - Hazelcast integration for Grails
hazelmr / castmapr - MapReduce for Hazelcast 2.x / 3.x
hazelblast - Remote Invocation
hazelcast-actors - Actor framework
maybe your's next?

www.hazelcast.com
THANK YOU!
ANY QUESTIONS?
@noctarius2k
@hazelcast
hazelcast@googlegroups.com
http://www.hazelcast.com
http://github.com/hazelcast/hazelcast
Images: www.clipartist.info, Gnome Nebula Theme, KDE theme

www.hazelcast.com

More Related Content

What's hot

Rapid Infrastructure Provisioning
Rapid Infrastructure ProvisioningRapid Infrastructure Provisioning
Rapid Infrastructure ProvisioningUchit Vyas ☁
 
Terraform 0.9 + good practices
Terraform 0.9 + good practicesTerraform 0.9 + good practices
Terraform 0.9 + good practicesRadek Simko
 
Hazelcast Essentials
Hazelcast EssentialsHazelcast Essentials
Hazelcast EssentialsRahul Gupta
 
Terraform and cloud.ca
Terraform and cloud.caTerraform and cloud.ca
Terraform and cloud.caCloudOps2005
 
ClickHouse 2018. How to stop waiting for your queries to complete and start ...
ClickHouse 2018.  How to stop waiting for your queries to complete and start ...ClickHouse 2018.  How to stop waiting for your queries to complete and start ...
ClickHouse 2018. How to stop waiting for your queries to complete and start ...Altinity Ltd
 
Spark / Mesos Cluster Optimization
Spark / Mesos Cluster OptimizationSpark / Mesos Cluster Optimization
Spark / Mesos Cluster Optimizationebiznext
 
Understanding Spark Tuning: Strata New York
Understanding Spark Tuning: Strata New YorkUnderstanding Spark Tuning: Strata New York
Understanding Spark Tuning: Strata New YorkRachel Warren
 
Spark autotuning talk final
Spark autotuning talk finalSpark autotuning talk final
Spark autotuning talk finalRachel Warren
 
Multi-Master Replication with Slony
Multi-Master Replication with SlonyMulti-Master Replication with Slony
Multi-Master Replication with SlonyJim Mlodgenski
 
MongoDB San Francisco DrupalCon 2010
MongoDB San Francisco DrupalCon 2010MongoDB San Francisco DrupalCon 2010
MongoDB San Francisco DrupalCon 2010Karoly Negyesi
 
Presto in Treasure Data (presented at db tech showcase Sapporo 2015)
Presto in Treasure Data (presented at db tech showcase Sapporo 2015)Presto in Treasure Data (presented at db tech showcase Sapporo 2015)
Presto in Treasure Data (presented at db tech showcase Sapporo 2015)Mitsunori Komatsu
 
Infrastructure as Code: Introduction to Terraform
Infrastructure as Code: Introduction to TerraformInfrastructure as Code: Introduction to Terraform
Infrastructure as Code: Introduction to TerraformAlexander Popov
 
Migrating and living on rds aurora
Migrating and living on rds auroraMigrating and living on rds aurora
Migrating and living on rds auroraBalazs Pocze
 
Scaling PostgreSQL With GridSQL
Scaling PostgreSQL With GridSQLScaling PostgreSQL With GridSQL
Scaling PostgreSQL With GridSQLJim Mlodgenski
 
Meetup cassandra sfo_jdbc
Meetup cassandra sfo_jdbcMeetup cassandra sfo_jdbc
Meetup cassandra sfo_jdbczznate
 
Hadoop and Spark for the SAS Developer
Hadoop and Spark for the SAS DeveloperHadoop and Spark for the SAS Developer
Hadoop and Spark for the SAS DeveloperDataWorks Summit
 
How to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'rollHow to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'rollPGConf APAC
 
Terraforming the Kubernetes Land
Terraforming the Kubernetes LandTerraforming the Kubernetes Land
Terraforming the Kubernetes LandRadek Simko
 

What's hot (20)

Rapid Infrastructure Provisioning
Rapid Infrastructure ProvisioningRapid Infrastructure Provisioning
Rapid Infrastructure Provisioning
 
Terraform 0.9 + good practices
Terraform 0.9 + good practicesTerraform 0.9 + good practices
Terraform 0.9 + good practices
 
Hazelcast Essentials
Hazelcast EssentialsHazelcast Essentials
Hazelcast Essentials
 
Terraform and cloud.ca
Terraform and cloud.caTerraform and cloud.ca
Terraform and cloud.ca
 
ClickHouse 2018. How to stop waiting for your queries to complete and start ...
ClickHouse 2018.  How to stop waiting for your queries to complete and start ...ClickHouse 2018.  How to stop waiting for your queries to complete and start ...
ClickHouse 2018. How to stop waiting for your queries to complete and start ...
 
Spark / Mesos Cluster Optimization
Spark / Mesos Cluster OptimizationSpark / Mesos Cluster Optimization
Spark / Mesos Cluster Optimization
 
Understanding Spark Tuning: Strata New York
Understanding Spark Tuning: Strata New YorkUnderstanding Spark Tuning: Strata New York
Understanding Spark Tuning: Strata New York
 
Spark autotuning talk final
Spark autotuning talk finalSpark autotuning talk final
Spark autotuning talk final
 
Multi-Master Replication with Slony
Multi-Master Replication with SlonyMulti-Master Replication with Slony
Multi-Master Replication with Slony
 
PostgreSQL Terminology
PostgreSQL TerminologyPostgreSQL Terminology
PostgreSQL Terminology
 
MongoDB San Francisco DrupalCon 2010
MongoDB San Francisco DrupalCon 2010MongoDB San Francisco DrupalCon 2010
MongoDB San Francisco DrupalCon 2010
 
Presto in Treasure Data (presented at db tech showcase Sapporo 2015)
Presto in Treasure Data (presented at db tech showcase Sapporo 2015)Presto in Treasure Data (presented at db tech showcase Sapporo 2015)
Presto in Treasure Data (presented at db tech showcase Sapporo 2015)
 
Infrastructure as Code: Introduction to Terraform
Infrastructure as Code: Introduction to TerraformInfrastructure as Code: Introduction to Terraform
Infrastructure as Code: Introduction to Terraform
 
Migrating and living on rds aurora
Migrating and living on rds auroraMigrating and living on rds aurora
Migrating and living on rds aurora
 
Scaling PostgreSQL With GridSQL
Scaling PostgreSQL With GridSQLScaling PostgreSQL With GridSQL
Scaling PostgreSQL With GridSQL
 
Meetup cassandra sfo_jdbc
Meetup cassandra sfo_jdbcMeetup cassandra sfo_jdbc
Meetup cassandra sfo_jdbc
 
Hadoop and Spark for the SAS Developer
Hadoop and Spark for the SAS DeveloperHadoop and Spark for the SAS Developer
Hadoop and Spark for the SAS Developer
 
Terraforming RDS
Terraforming RDSTerraforming RDS
Terraforming RDS
 
How to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'rollHow to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'roll
 
Terraforming the Kubernetes Land
Terraforming the Kubernetes LandTerraforming the Kubernetes Land
Terraforming the Kubernetes Land
 

Viewers also liked

The Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service StoryboardThe Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service StoryboardChristoph Engelbert
 
Think Distributed: The Hazelcast Way
Think Distributed: The Hazelcast WayThink Distributed: The Hazelcast Way
Think Distributed: The Hazelcast WayRahul Gupta
 
Introduction to hazelcast
Introduction to hazelcastIntroduction to hazelcast
Introduction to hazelcastEmin Demirci
 
Distributed applications using Hazelcast
Distributed applications using HazelcastDistributed applications using Hazelcast
Distributed applications using HazelcastTaras Matyashovsky
 
[OracleCode SF] In memory analytics with apache spark and hazelcast
[OracleCode SF] In memory analytics with apache spark and hazelcast[OracleCode SF] In memory analytics with apache spark and hazelcast
[OracleCode SF] In memory analytics with apache spark and hazelcastViktor Gamov
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
 
In-Memory Computing - Distributed Systems - Devoxx UK 2015
In-Memory Computing - Distributed Systems - Devoxx UK 2015In-Memory Computing - Distributed Systems - Devoxx UK 2015
In-Memory Computing - Distributed Systems - Devoxx UK 2015Christoph Engelbert
 
Steam Learn: An introduction to Redis
Steam Learn: An introduction to RedisSteam Learn: An introduction to Redis
Steam Learn: An introduction to Redisinovia
 
Squeezing Performance out of Hazelcast
Squeezing Performance out of HazelcastSqueezing Performance out of Hazelcast
Squeezing Performance out of HazelcastHazelcast
 
In-Memory Distributed Computing - Porto Tech Hub
In-Memory Distributed Computing - Porto Tech HubIn-Memory Distributed Computing - Porto Tech Hub
In-Memory Distributed Computing - Porto Tech HubChristoph Engelbert
 
Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast Hazelcast
 
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersViktor Gamov
 
Functional UI testing of Adobe Flex RIA
Functional UI testing of Adobe Flex RIAFunctional UI testing of Adobe Flex RIA
Functional UI testing of Adobe Flex RIAViktor Gamov
 
Creating your own private Download Center with Bintray
Creating your own private Download Center with Bintray Creating your own private Download Center with Bintray
Creating your own private Download Center with Bintray Baruch Sadogursky
 
JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»
JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»
JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»Viktor Gamov
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...Baruch Sadogursky
 
Java 8 Puzzlers [as presented at OSCON 2016]
Java 8 Puzzlers [as presented at  OSCON 2016]Java 8 Puzzlers [as presented at  OSCON 2016]
Java 8 Puzzlers [as presented at OSCON 2016]Baruch Sadogursky
 
Spring Data: New approach to persistence
Spring Data: New approach to persistenceSpring Data: New approach to persistence
Spring Data: New approach to persistenceOleksiy Rezchykov
 

Viewers also liked (20)

The Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service StoryboardThe Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service Storyboard
 
Think Distributed: The Hazelcast Way
Think Distributed: The Hazelcast WayThink Distributed: The Hazelcast Way
Think Distributed: The Hazelcast Way
 
Introduction to hazelcast
Introduction to hazelcastIntroduction to hazelcast
Introduction to hazelcast
 
Hazelcast
HazelcastHazelcast
Hazelcast
 
Distributed applications using Hazelcast
Distributed applications using HazelcastDistributed applications using Hazelcast
Distributed applications using Hazelcast
 
[OracleCode SF] In memory analytics with apache spark and hazelcast
[OracleCode SF] In memory analytics with apache spark and hazelcast[OracleCode SF] In memory analytics with apache spark and hazelcast
[OracleCode SF] In memory analytics with apache spark and hazelcast
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
 
In-Memory Computing - Distributed Systems - Devoxx UK 2015
In-Memory Computing - Distributed Systems - Devoxx UK 2015In-Memory Computing - Distributed Systems - Devoxx UK 2015
In-Memory Computing - Distributed Systems - Devoxx UK 2015
 
Steam Learn: An introduction to Redis
Steam Learn: An introduction to RedisSteam Learn: An introduction to Redis
Steam Learn: An introduction to Redis
 
Squeezing Performance out of Hazelcast
Squeezing Performance out of HazelcastSqueezing Performance out of Hazelcast
Squeezing Performance out of Hazelcast
 
In-Memory Distributed Computing - Porto Tech Hub
In-Memory Distributed Computing - Porto Tech HubIn-Memory Distributed Computing - Porto Tech Hub
In-Memory Distributed Computing - Porto Tech Hub
 
Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast
 
Hazelcast
HazelcastHazelcast
Hazelcast
 
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
 
Functional UI testing of Adobe Flex RIA
Functional UI testing of Adobe Flex RIAFunctional UI testing of Adobe Flex RIA
Functional UI testing of Adobe Flex RIA
 
Creating your own private Download Center with Bintray
Creating your own private Download Center with Bintray Creating your own private Download Center with Bintray
Creating your own private Download Center with Bintray
 
JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»
JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»
JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...
 
Java 8 Puzzlers [as presented at OSCON 2016]
Java 8 Puzzlers [as presented at  OSCON 2016]Java 8 Puzzlers [as presented at  OSCON 2016]
Java 8 Puzzlers [as presented at OSCON 2016]
 
Spring Data: New approach to persistence
Spring Data: New approach to persistenceSpring Data: New approach to persistence
Spring Data: New approach to persistence
 

Similar to Hazelcast - In-Memory DataGrid

Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaAlexander Gyoshev
 
Arquillian - extensions which you have to take with you to a deserted island
Arquillian - extensions which you have to take with you to a deserted islandArquillian - extensions which you have to take with you to a deserted island
Arquillian - extensions which you have to take with you to a deserted islandSoftwareMill
 
Learn Frontend Testing
Learn Frontend TestingLearn Frontend Testing
Learn Frontend TestingRyan Roemer
 
[Jfokus] Riding the Jet Streams
[Jfokus] Riding the Jet Streams[Jfokus] Riding the Jet Streams
[Jfokus] Riding the Jet StreamsViktor Gamov
 
Batteries included: Advantages of an End-to-end solution
Batteries included: Advantages of an End-to-end solutionBatteries included: Advantages of an End-to-end solution
Batteries included: Advantages of an End-to-end solutionJuergen Fesslmeier
 
Lambdas myths-and-mistakes
Lambdas myths-and-mistakesLambdas myths-and-mistakes
Lambdas myths-and-mistakesRichardWarburton
 
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)jaxLondonConference
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaTony Fabeen
 
Devinsampa nginx-scripting
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scriptingTony Fabeen
 
An Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsAn Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsMiloš Sutanovac
 
Oracle OpenWorld 2010 - Consolidating Microsoft SQL Server Databases into an ...
Oracle OpenWorld 2010 - Consolidating Microsoft SQL Server Databases into an ...Oracle OpenWorld 2010 - Consolidating Microsoft SQL Server Databases into an ...
Oracle OpenWorld 2010 - Consolidating Microsoft SQL Server Databases into an ...djkucera
 
Presenting Seq for Node.js
Presenting Seq for Node.jsPresenting Seq for Node.js
Presenting Seq for Node.jsDouglas Muth
 
20110114 Next Generation Sequencing Course
20110114 Next Generation Sequencing Course20110114 Next Generation Sequencing Course
20110114 Next Generation Sequencing CoursePierre Lindenbaum
 
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...Altinity Ltd
 
Beginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at GoogleBeginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at GoogleAri Lerner
 

Similar to Hazelcast - In-Memory DataGrid (20)

Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and java
 
Arquillian - extensions which you have to take with you to a deserted island
Arquillian - extensions which you have to take with you to a deserted islandArquillian - extensions which you have to take with you to a deserted island
Arquillian - extensions which you have to take with you to a deserted island
 
Arquillian Extensions
Arquillian ExtensionsArquillian Extensions
Arquillian Extensions
 
JavaFX, because you're worth it
JavaFX, because you're worth itJavaFX, because you're worth it
JavaFX, because you're worth it
 
Learn Frontend Testing
Learn Frontend TestingLearn Frontend Testing
Learn Frontend Testing
 
[Jfokus] Riding the Jet Streams
[Jfokus] Riding the Jet Streams[Jfokus] Riding the Jet Streams
[Jfokus] Riding the Jet Streams
 
Batteries included: Advantages of an End-to-end solution
Batteries included: Advantages of an End-to-end solutionBatteries included: Advantages of an End-to-end solution
Batteries included: Advantages of an End-to-end solution
 
Scalaxb preso
Scalaxb presoScalaxb preso
Scalaxb preso
 
Lambdas myths-and-mistakes
Lambdas myths-and-mistakesLambdas myths-and-mistakes
Lambdas myths-and-mistakes
 
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with Lua
 
Devinsampa nginx-scripting
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scripting
 
An Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsAn Introduction to CSS Preprocessors
An Introduction to CSS Preprocessors
 
Ff to-fp
Ff to-fpFf to-fp
Ff to-fp
 
Oracle OpenWorld 2010 - Consolidating Microsoft SQL Server Databases into an ...
Oracle OpenWorld 2010 - Consolidating Microsoft SQL Server Databases into an ...Oracle OpenWorld 2010 - Consolidating Microsoft SQL Server Databases into an ...
Oracle OpenWorld 2010 - Consolidating Microsoft SQL Server Databases into an ...
 
Introduction to JavaFX 2
Introduction to JavaFX 2Introduction to JavaFX 2
Introduction to JavaFX 2
 
Presenting Seq for Node.js
Presenting Seq for Node.jsPresenting Seq for Node.js
Presenting Seq for Node.js
 
20110114 Next Generation Sequencing Course
20110114 Next Generation Sequencing Course20110114 Next Generation Sequencing Course
20110114 Next Generation Sequencing Course
 
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
 
Beginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at GoogleBeginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at Google
 

More from Christoph Engelbert

Gute Nachrichten, Schlechte Nachrichten
Gute Nachrichten, Schlechte NachrichtenGute Nachrichten, Schlechte Nachrichten
Gute Nachrichten, Schlechte NachrichtenChristoph Engelbert
 
Of Farm Topologies and Time-Series Data
Of Farm Topologies and Time-Series DataOf Farm Topologies and Time-Series Data
Of Farm Topologies and Time-Series DataChristoph Engelbert
 
What I learned about IoT Security ... and why it's so hard!
What I learned about IoT Security ... and why it's so hard!What I learned about IoT Security ... and why it's so hard!
What I learned about IoT Security ... and why it's so hard!Christoph Engelbert
 
PostgreSQL: The Time-Series Database You (Actually) Want
PostgreSQL: The Time-Series Database You (Actually) WantPostgreSQL: The Time-Series Database You (Actually) Want
PostgreSQL: The Time-Series Database You (Actually) WantChristoph Engelbert
 
Road to (Enterprise) Observability
Road to (Enterprise) ObservabilityRoad to (Enterprise) Observability
Road to (Enterprise) ObservabilityChristoph Engelbert
 
Hazelcast Jet - Riding the Jet Streams
Hazelcast Jet - Riding the Jet StreamsHazelcast Jet - Riding the Jet Streams
Hazelcast Jet - Riding the Jet StreamsChristoph Engelbert
 
Project Panama - Beyond the (JVM) Wall
Project Panama - Beyond the (JVM) WallProject Panama - Beyond the (JVM) Wall
Project Panama - Beyond the (JVM) WallChristoph Engelbert
 
A Post-Apocalyptic sun.misc.Unsafe World
A Post-Apocalyptic sun.misc.Unsafe WorldA Post-Apocalyptic sun.misc.Unsafe World
A Post-Apocalyptic sun.misc.Unsafe WorldChristoph Engelbert
 
JCache - Gimme Caching - JavaLand
JCache - Gimme Caching - JavaLandJCache - Gimme Caching - JavaLand
JCache - Gimme Caching - JavaLandChristoph Engelbert
 
Distributed Computing - An Interactive Introduction
Distributed Computing - An Interactive IntroductionDistributed Computing - An Interactive Introduction
Distributed Computing - An Interactive IntroductionChristoph Engelbert
 
Gimme Caching, the Hazelcast JCache Way
Gimme Caching, the Hazelcast JCache WayGimme Caching, the Hazelcast JCache Way
Gimme Caching, the Hazelcast JCache WayChristoph Engelbert
 
Unsafe Java World - Crossing the Borderline - JokerConf 2014 Saint Petersburg
Unsafe Java World - Crossing the Borderline - JokerConf 2014 Saint PetersburgUnsafe Java World - Crossing the Borderline - JokerConf 2014 Saint Petersburg
Unsafe Java World - Crossing the Borderline - JokerConf 2014 Saint PetersburgChristoph Engelbert
 

More from Christoph Engelbert (20)

Data Pipeline Plumbing
Data Pipeline PlumbingData Pipeline Plumbing
Data Pipeline Plumbing
 
Gute Nachrichten, Schlechte Nachrichten
Gute Nachrichten, Schlechte NachrichtenGute Nachrichten, Schlechte Nachrichten
Gute Nachrichten, Schlechte Nachrichten
 
Of Farm Topologies and Time-Series Data
Of Farm Topologies and Time-Series DataOf Farm Topologies and Time-Series Data
Of Farm Topologies and Time-Series Data
 
What I learned about IoT Security ... and why it's so hard!
What I learned about IoT Security ... and why it's so hard!What I learned about IoT Security ... and why it's so hard!
What I learned about IoT Security ... and why it's so hard!
 
PostgreSQL: The Time-Series Database You (Actually) Want
PostgreSQL: The Time-Series Database You (Actually) WantPostgreSQL: The Time-Series Database You (Actually) Want
PostgreSQL: The Time-Series Database You (Actually) Want
 
Road to (Enterprise) Observability
Road to (Enterprise) ObservabilityRoad to (Enterprise) Observability
Road to (Enterprise) Observability
 
Oops-Less Operation
Oops-Less OperationOops-Less Operation
Oops-Less Operation
 
Instan(t)a-neous Monitoring
Instan(t)a-neous MonitoringInstan(t)a-neous Monitoring
Instan(t)a-neous Monitoring
 
Don't Go, Java!
Don't Go, Java!Don't Go, Java!
Don't Go, Java!
 
TypeScript Go(es) Embedded
TypeScript Go(es) EmbeddedTypeScript Go(es) Embedded
TypeScript Go(es) Embedded
 
Hazelcast Jet - Riding the Jet Streams
Hazelcast Jet - Riding the Jet StreamsHazelcast Jet - Riding the Jet Streams
Hazelcast Jet - Riding the Jet Streams
 
CBOR - The Better JSON
CBOR - The Better JSONCBOR - The Better JSON
CBOR - The Better JSON
 
Project Panama - Beyond the (JVM) Wall
Project Panama - Beyond the (JVM) WallProject Panama - Beyond the (JVM) Wall
Project Panama - Beyond the (JVM) Wall
 
A Post-Apocalyptic sun.misc.Unsafe World
A Post-Apocalyptic sun.misc.Unsafe WorldA Post-Apocalyptic sun.misc.Unsafe World
A Post-Apocalyptic sun.misc.Unsafe World
 
Gimme Caching - The JCache Way
Gimme Caching - The JCache WayGimme Caching - The JCache Way
Gimme Caching - The JCache Way
 
JCache - Gimme Caching - JavaLand
JCache - Gimme Caching - JavaLandJCache - Gimme Caching - JavaLand
JCache - Gimme Caching - JavaLand
 
Distributed Computing - An Interactive Introduction
Distributed Computing - An Interactive IntroductionDistributed Computing - An Interactive Introduction
Distributed Computing - An Interactive Introduction
 
Gimme Caching - The JCache Way
Gimme Caching - The JCache WayGimme Caching - The JCache Way
Gimme Caching - The JCache Way
 
Gimme Caching, the Hazelcast JCache Way
Gimme Caching, the Hazelcast JCache WayGimme Caching, the Hazelcast JCache Way
Gimme Caching, the Hazelcast JCache Way
 
Unsafe Java World - Crossing the Borderline - JokerConf 2014 Saint Petersburg
Unsafe Java World - Crossing the Borderline - JokerConf 2014 Saint PetersburgUnsafe Java World - Crossing the Borderline - JokerConf 2014 Saint Petersburg
Unsafe Java World - Crossing the Borderline - JokerConf 2014 Saint Petersburg
 

Recently uploaded

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Recently uploaded (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

Hazelcast - In-Memory DataGrid

  • 2. WHO AM I Christoph Engelbert (@noctarius2k) 8+ years of professional Java development 5+ years of backend development Specialized to performance, GC, traffic topics Was working for int. companies as Ubisoft and HRS Since November 2013 official Hazelcast Hacker Apache DirectMemory / Lightning Committer and PMC Developer CastMapR - MapReduce on Hazelcast 3 www.hazelcast.com
  • 3. HAZELCAST IN KEYWORDS In-Memory DataGrid Distributed Cache Distributed Execution Framework NoSQL Clustering Scalability Partitioning Cloud Ready OpenSource - Apache License 2.0 www.hazelcast.com
  • 4. WHO USES HAZELCAST? and many more ... www.hazelcast.com
  • 5. USECASES Scale your application Distribute and share data Partition your data Distribute messages Process in parallel on multiple machines Load balancing www.hazelcast.com
  • 6. ALTERNATIVES? Oracle Coherence IBM eXtreme Scale VMware Gemfire Gigaspaces Redhat Infinispan Gridgain Terracotta www.hazelcast.com
  • 7. DIFFERENCES? Easy to use License / Cost Lightweight Features www.hazelcast.com
  • 8. FEATURES Java Collection API Map, Queue, Set, List MultiMap Topic (PubSub) Java Concurrency API Lock, Semaphore, CountDownLatch, ExecutorService Transactions Custom Serialization Off-Heap support Native client: C#, C++, Java, REST, memcached www.hazelcast.com
  • 9. EASY API / Cetn anwHzlatnd / raig e aecs oe Hzlatntneh =HzlatnwaecsIsac(; aecsIsac z aecs.eHzlatntne) / GtigaMp Ls,Tpc .. / etn a, it oi, . Mpmp=h.eMp"aNm"; a a zgta(Mpae) Ls ls =h.eLs(LsNm"; it it zgtit"itae) Ioi tpc=h.eTpc"oiNm"; Tpc oi zgtoi(Tpcae) / Sutn dw tend / htig on h oe h.hton) zsudw(; www.hazelcast.com
  • 10. HOW DOES IT WORK? www.hazelcast.com
  • 11. DATA PARTITIONING (1/2) Multiple partitions per node Consistent Hashing: hash(key) % partitioncount Option to control partitioning: "key@partitionkey" Possibility to find key owner for every key Support for Near-Caching and executions on key owner Automatic Fault-Tolerance Synchronous and Asynchronous backups Define sync / async backup counts www.hazelcast.com
  • 12. DATA PARTITIONING (2/2) With 4 cluster nodes every server holds 1/4 real data and 1/4 of backups www.hazelcast.com
  • 14. HAZELCAST IN NUMBERS Default partition amount 271 Any partition amount possible Biggest cluster 100+ members Handles 100k+/sec messages using a topic Max datasize depends on RAM Off-Heap for low GC overhead www.hazelcast.com
  • 15. COMMUNITY VS. ENTERPRISE Feature Java Collection API Java Concurrency API SSL Socket Elastic Memory (Off-Heap) JAAS Security / Authentication Management Center Community X X X Enterprise X X X X X X www.hazelcast.com
  • 17. EASY TO UNITTEST pbi casSmTsCs { ulc ls oeetae piaeHzlatntne]isacs rvt aecsIsac[ ntne; @eoe Bfr pbi vi bfr( trw Ecpin{ ulc od eoe) hos xeto / Mlil isacso tesm JM / utpe ntne n h ae V isacs=nwHzlatntne2; ntne e aecsIsac[] isacs0 =HzlatnwaecsIsac(; ntne[] aecs.eHzlatntne) isacs1 =HzlatnwaecsIsac(; ntne[] aecs.eHzlatntne) } @fe Atr pbi vi atr)trw Ecpin{ ulc od fe( hos xeto HzlatsudwAl) aecs.htonl(; } } www.hazelcast.com
  • 18. SERIALIZATION / jv.oSraial / aai.eilzbe pbi casUe ipeet Sraial { ulc ls sr mlmns eilzbe } / o jv.oEtraial / r aai.xenlzbe pbi casUe ipeet Etraial { ulc ls sr mlmns xenlzbe } / o (o.aecs.i.eilzto)DtSraial / r cmhzlatnosraiain.aaeilzbe pbi casUe ipeet DtSraial { ulc ls sr mlmns aaeilzbe } / o nwi Hzlat3(ut vrinspot Pral / r e n aecs mli eso upr) otbe pbi casUe ipeet Pral { ulc ls sr mlmns otbe } www.hazelcast.com
  • 19. MAP itraecmhzlatcr.MpK V nefc o.aecs.oeIa<, > etnsjv.tlMp jv.tlCnurnMp xed aaui.a, aaui.ocreta Hzlatntneh =gtaecsIsac(; aecsIsac z eHzlatntne) Ia<tig Ue>hMp=h.eMp"sr"; MpSrn, sr za zgta(ues) hMppt"ee" nwUe(Ptr,"enjr); za.u(Ptr, e sr"ee" Vete") MpSrn,Ue>mp=h.eMp"sr"; a<tig sr a zgta(ues) mppt"ee" nwUe(Ptr,"enjr); a.u(Ptr, e sr"ee" Vete") CnurnMpSrn,Ue>cnurnMp=h.eMp"sr"; ocreta<tig sr ocreta zgta(ues) cnurnMpptfbet"ee" nwUe(Ptr,"enjr); ocreta.uIAsn(Ptr, e sr"ee" Vete") Ue ptr=mpgt"ee"; sr ee a.e(Ptr) www.hazelcast.com
  • 20. LIST itraecmhzlatcr.Ls<> nefc o.aecs.oeIitE etnsjv.tlLs xed aaui.it Hzlatntneh =gtaecsIsac(; aecsIsac z eHzlatntne) Ls<sr ls =h.eLs(ues) i ​tUe> ​t i zgtit"sr"; ls.d(e Ue(Ptr,"enjr); i ​tadnw sr"ee" Vete") Ue ptr=ls.e() sr ee itgt0; www.hazelcast.com
  • 21. QUEUE itraecmhzlatcr.Ls<> nefc o.aecs.oeIitE etnsjv.tlLs xed aaui.it Hzlatntneh =gtaecsIsac(; aecsIsac z eHzlatntne) BoknQeeTs>qee=h.eQee"ak"; lciguu<ak uu zgtuu(tss) qeeofrnwak); uu.fe(eTs() qeeofrnwak) 50 TmUi.ILSCNS; uu.fe(eTs(, 0, ientMLIEOD) Ts ts =qeepl(; ak ak uu.ol) Ts ts =qeepl(0,TmUi.ILSCNS; ak ak uu.ol10 ientMLIEOD) Ts ts =qeetk(; ak ak uu.ae) www.hazelcast.com
  • 23. LOCK (2/3) Hzlatntneh =gtaecsIsac(; aecsIsac z eHzlatntne) / DsrbtdRetat / itiue enrn Lc lc =h.eLc(mLc"; o ​k ​k o zgtok"yok) lc.ok) o ​klc(; ty{ r / D smtig / o oehn }fnly{ ial lc.nok) o ​kulc(; } www.hazelcast.com
  • 24. LOCK (3/3) Hzlatntneh =gtaecsIsac(; aecsIsac z eHzlatntne) / Mp(o-lcs / a Rw)ok Ia<tig Ue>mp=h.eMp"sr"; MpSrn, sr a zgta(ues) mplc(Ptr) a.ok"ee"; ty{ r / D smtigwt Ptr / o oehn ih ee }fnly{ ial mpulc(Ptr) a.nok"ee"; } www.hazelcast.com
  • 25. TOPIC / PUBSUB pbi casEapeipeet MsaeitnrSrn>{ ulc ls xml mlmns esgLsee<tig pbi vi snMsae{ ulc od edesg Hzlatntneh =gtaecsIsac(; aecsIsac z eHzlatntne) Ioi<tig tpc=h.eTpc"oi"; TpcSrn> oi zgtoi(tpc) tpcadesgLsee(hs; oi.dMsaeitnrti) tpcpbih"el Wrd) oi.uls(Hlo ol"; } @vrie Oerd pbi vi oMsaeMsaeSrn>msae { ulc od nesg(esg<tig esg) Sse.u.rnl(Gtmsae "+msaegtesgOjc() ytmotpitn"o esg: esg.eMsaebet); } } www.hazelcast.com
  • 26. EXECUTORSERVICE pbi itraecmhzlatcr.EeuoSrie ulc nefc o.aecs.oeIxctrevc etnsjv.tlcnurn.xctrevc xed aaui.ocretEeuoSrie Hzlatntneh =gtaecsIsac(; aecsIsac z eHzlatntne) Ixctrevc e =h.eEeuoSrie"ae) EeuoSrie s zgtxctrevc(nm"; e.xctOAlebr(ulRnal() seeuenlMmesbidunbe); e.xctOKywe(ulRnal(,"ee"; seeueneOnrbidunbe) Ptr) e.xct(ulRnal() seeuebidunbe); Mp.>ftrs=e.umtolMmesbidalbe); a<. uue ssbiTAlebr(ulClal() Ftr<. ftr =e.umtoeOnrbidalbe) "ee"; uue.> uue ssbiTKywe(ulClal(, Ptr) e.umtolMmesbidalbe) bidalak); ssbiTAlebr(ulClal(, ulClbc() e.umtoeOnrbidalbe) "ee" bidalak); ssbiTKywe(ulClal(, Ptr, ulClbc() www.hazelcast.com
  • 28. ADVANCED TECHNIQUES Indexing keys, values and value properties Distributed SQL-like query Write-Behind / Write-Through persistence Read-Through (if key not loaded use MapLoader) Transactions EntryListeners / EntryProcessors Automatic eviction Control partitioning (Version 3.1) and many more ... www.hazelcast.com
  • 30. INDEXING Ia<tig Ue>mp=Hzlatgta(ues) MpSrn, sr a aecs.eMp"sr"; mpadne(ae,tu) a.dIdx"g" re; / odrd / ree mpadne(atv" fle;/ ntodrd a.dIdx"cie, as) / o ree <a nm=epoes> mp ae"mlye" .. . <nee> idxs <ne odrd"re>g<idx idx ree=tu"ae/ne> <ne odrd"as"nm<idx idx ree=fle>ae/ne> <idxs /nee> <mp /a> www.hazelcast.com
  • 31. DISTRIBUTED SQL-LIKE QUERIES Ia<tig Ue>mp=Hzlatgta(ues) MpSrn, sr a aecs.eMp"sr"; Peiaepeiae=nwSlrdct(atv ADae< 3"; rdct rdct e qPeiae"cie N g = 0) StUe>ues=mpvle(rdct) e<sr sr a.auspeiae; StEtySrn,Ue> etis=mpetye(rdct) e<nr<tig sr> nre a.nrStpeiae; www.hazelcast.com
  • 32. MAPLOADER / MAPSTORE pbi casMptrg ulc ls aSoae ipeet Mptr<tig Ue> MpodrSrn,Ue>{ mlmns aSoeSrn, sr, aLae<tig sr / Sm mtosmsig.. / oe ehd isn . @vriepbi Ue la(tigky {rtr laVleBky;} Oerd ulc sr odSrn e) eun odauD(e) @vriepbi StSrn>laAles){rtr laKyD(;} Oerd ulc e<tig odlKy( eun odesB) @vriepbi vi dlt(tigky {dltD(e) } Oerd ulc od eeeSrn e) eeeBky; @vriepbi vi soeSrn ky Ue vle { Oerd ulc od tr(tig e, sr au) soeoaaaeky vle; trTDtbs(e, au) } } <a nm=ues> mp ae"sr" <a-tr eald"re> mpsoe nbe=tu" <ls-aecmhzlateapeMptrg<casnm> casnm>o.aecs.xml.aSoae/ls-ae <rt-ea-eod><wiedlyscns wiedlyscns0/rt-ea-eod> <mpsoe /a-tr> <mp /a> www.hazelcast.com
  • 33. TRANSACTION (1/2) Hzlatntneh =gtaecsIsac(; aecsIsac z eHzlatntne) fnlMpmp=h.eMp"eal"; ia a a zgta(dfut) fnlQeeqee=h.eQee"eal"; ia uu uu zgtuu(dfut) h.xctTascinnwTascinlakVi>){ zeeuernato(e rnatoaTs<od( @vrie Oerd pbi Vi eeueTascinlakotx cnet { ulc od xct(rnatoaTsCnet otx) Tettet=(we)qeepl(; we we Tet uu.ol) poeswe(we) rcsTettet; mpptbide(we) tet; a.u(ulKytet, we) rtr nl; eun ul } }; ) www.hazelcast.com
  • 34. TRANSACTION (2/2) Hzlatntneh =gtaecsIsac(; aecsIsac z eHzlatntne) Tascinotx cnet=h.eTascinotx(; rnatoCnet otx znwrnatoCnet) cnetbgnrnato(; otx.eiTascin) Tascinla mp=cnetgta(dfut) rnatoaMp a otx.eMp"eal"; Tascinluu qee=cnetgtuu(dfut) rnatoaQee uu otx.eQee"eal"; ty{ r Tettet=(we)qeepl(; we we Tet uu.ol) poeswe(we) rcsTettet; mpptbide(we) tet; a.u(ulKytet, we) cnetcmiTascin) otx.omtrnato(; }cth(xeto e { ac Ecpin ) cnetrlbcTascin) otx.olakrnato(; } www.hazelcast.com
  • 35. CONTROL PARTITIONING Force location of corresponding data in the same partition by providing a special partition key Hzlatntneh =gtaecsIsac(; aecsIsac z eHzlatntne) Mpues=h.eMp"sr"; a sr zgta(ues) uespt"ee@ee" nwUe(Ptr,"enjr); sr.u(PtrPtr, e sr"ee" Vete") Mpfins=h.eMp"red"; a red zgta(fins) finspt"ee-hi@ee" nwUe(Crsoh,"nebr") red.u(PtrCrsPtr, e sr"hitp" Eglet); finspt"ee-udPtr,nwUe(Fa" "aio") red.u(PtrFa@ee" e sr"ud, Mlkv); www.hazelcast.com
  • 37. SPI (NEW IN HAZELCAST 3) Possibility to build own distributed datastructures Hook into datastructure events Implement your own services (like RemoteInvocation, MapReduce) React on membership events Manipulate migrations on your purpose Handle splitbrain events and many more ... www.hazelcast.com
  • 38. EXTERNAL ADDONS hazelgrails - Hazelcast integration for Grails hazelmr / castmapr - MapReduce for Hazelcast 2.x / 3.x hazelblast - Remote Invocation hazelcast-actors - Actor framework maybe your's next? www.hazelcast.com