SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
Squeezing Performance ! 
out of In-Memory Data Grids 
© 2014 Hazelcast Inc. 
FUAD MALIKOV 
HAZELCAST CO-FOUNDER
Hazelcast co-founder! 
Java Developer since 2005! 
Worked at Financials and Telco’s. ! 
Leading Hazelcast Technical Operations. 
© 2014 Hazelcast Inc. 
About me 
2 
Follow 
me 
@fuadm
Agenda - 50 Minutes + Q&A 
© 2014 Hazelcast Inc. 
3 
Overview to IMDG’s! 
Hazelcast Partitioning Basics! 
A Shopping Cart Use – Case! 
8 possible solutions! 
Q&A
© 2014 Hazelcast Inc. 
What is an IMDG? 
4 
Data Structures(s) in memory! 
Distributed across servers ! 
Highly Available and Resilient! 
Horizontal Scalability! 
Object based Data Model
© 2014 Hazelcast Inc. 
Why an IMDG? 
Performance - RAM is faster than Disk! 
Data Structure - linked data model and application code ! 
Scalability - add servers to scale out RAM and CPU! 
Resiliency - seamless recovery from node failures! 
API - native, flexible and rich functionality 
5
Popular In-Memory Data Grids 
© 2014 Hazelcast Inc. 
Oracle Coherence ! 
Gigaspaces! 
Gemfire! 
IBM ExtremeScale! 
Infinispan! 
GridGain! 
Hazelcast! 
Terracotta* 
6
© 2014 Hazelcast Inc. 
Hazelcast 
7
Data Distribution 
© 2014 Hazelcast Inc. 
8
Partitioning (1 node) 
PARTITION_COUNT 
= 
271 
partition_id 
= 
hash(serialize(key))%PARTITION_COUNT 
© 2014 Hazelcast Inc. 
9 
P_1 
P_2 
P_271
Partitioning (2 nodes) 
© 2014 Hazelcast Inc. 
10 
P_1 
P_2 
P_135 
P_136 
P_137 
P_271 
P_136 
P_137 
P_271 
P_1 
P_2 
P_135
Partitioning (4 nodes) 
© 2014 Hazelcast Inc. 
11 
P_1 
P_2 
P_67 
P_68 
P_69 
P_136 
P_68 
P_137 
P_271 
P_1 
P_138 
P_205 
P_137 
P_138 
P_204 
P_205 
P_206 
P_271 
P_2 
P_69 
P_206 
P_67 
P_136 
P_204
© 2014 Hazelcast Inc. 
Example 
12 
P_1 
P_2 
P_67 
P_68 
P_69 
P_136 
P_68 
P_137 
P_271 
P_1 
P_138 
P_205 
P_137 
P_138 
P_204 
P_205 
P_206 
P_271 
P_2 
P_69 
P_206 
P_67 
P_136 
P_204 
map.put(“LHR”, 
“London 
Heathrow 
Airport”)?
map.put(“LHR”, 
“London 
Heathrow 
Airport”)? 
© 2014 Hazelcast Inc. 
Hashing 
13 
P_1 
P_2 
P_67 
P_68 
P_69 
P_136 
P_68 
P_137 
P_271 
P_1 
P_138 
P_205 
P_137 
P_138 
P_204 
P_205 
P_206 
P_271 
P_2 
P_69 
P_206 
P_67 
P_136 
P_204 
Hash(“LHR”)-­‐ 
> 
P_200
map.put(“LHR”, 
“London 
Heathrow 
Airport”)? 
© 2014 Hazelcast Inc. 
Hashing 
14 
P_1 
P_2 
P_67 
P_68 
P_69 
P_136 
P_68 
P_137 
P_271 
P_1 
P_138 
P_205 
P_137 
P_138 
P_204 
P_205 
P_206 
P_271 
P_2 
P_69 
P_206 
P_67 
P_136 
P_204 
1
map.put(“LHR”, 
“London 
Heathrow 
Airport”)? 
© 2014 Hazelcast Inc. 
Hashing 
15 
P_1 
P_2 
P_67 
P_68 
P_69 
P_136 
P_68 
P_137 
P_271 
P_1 
P_138 
P_205 
P_137 
P_138 
P_204 
P_205 
P_206 
P_271 
P_2 
P_69 
P_206 
P_67 
P_136 
P_204 
2 
1
map.put(“LHR”, 
“London 
Heathrow 
Airport”)? 
© 2014 Hazelcast Inc. 
Hashing 
16 
P_1 
P_2 
P_67 
P_68 
P_69 
P_136 
P_68 
P_137 
P_271 
P_1 
P_138 
P_205 
P_137 
P_138 
P_204 
P_205 
P_206 
P_271 
P_2 
P_69 
P_206 
P_67 
P_136 
P_204 
2 
1 
3
map.put(“LHR”, 
“London 
Heathrow 
Airport”)? 
© 2014 Hazelcast Inc. 
Hashing 
17 
P_1 
P_2 
P_67 
P_68 
P_69 
P_136 
P_68 
P_137 
P_271 
P_1 
P_138 
P_205 
P_137 
P_138 
P_204 
P_205 
P_206 
P_271 
P_2 
P_69 
P_206 
P_67 
P_136 
P_204 
2 
4 
1 
3
© 2014 Hazelcast Inc. 
Hashing 
18 
P_1 
P_2 
P_67 
P_68 
P_69 
P_136 
P_68 
P_137 
P_271 
P_1 
P_138 
P_205 
P_137 
P_138 
P_204 
P_205 
P_206 
P_271 
P_2 
P_69 
P_206 
P_67 
P_136 
P_204 
map.get(“LHR”)?
© 2014 Hazelcast Inc. 
Hashing 
19 
P_1 
P_2 
P_67 
P_68 
P_69 
P_136 
P_68 
P_137 
P_271 
P_1 
P_138 
P_205 
P_137 
P_138 
P_204 
P_205 
P_206 
P_271 
P_2 
P_69 
P_206 
P_67 
P_136 
P_204 
map.get(“LHR”)? 
1
© 2014 Hazelcast Inc. 
Hashing 
20 
P_1 
P_2 
P_67 
P_68 
P_69 
P_136 
P_68 
P_137 
P_271 
P_1 
P_138 
P_205 
P_137 
P_138 
P_204 
P_205 
P_206 
P_271 
P_2 
P_69 
P_206 
P_67 
P_136 
P_204 
map.get(“LHR”)? 
1 
2
Use - Case 
© 2014 Hazelcast Inc. 
21
Shopping card example 
© 2014 Hazelcast Inc. 
22
© 2014 Hazelcast Inc. 
Shopping Cart Item 
23
© 2014 Hazelcast Inc. 
Shopping Cart 
24
© 2014 Hazelcast Inc. 
Simulation 
25
© 2014 Hazelcast Inc. 
Simulation 
26 
#[Mean 
= 
2402.112, 
StdDeviation 
= 
4519.652] 
#[Max 
= 
148504.576, 
Total 
count 
= 
56690] 
Operations 
Per 
Second= 
5738
What 
is 
wrong 
here? 
© 2014 Hazelcast Inc. 
Simulation 
27 
#[Mean 
= 
2402.112, 
StdDeviation 
= 
4519.652] 
#[Max 
= 
148504.576, 
Total 
count 
= 
56690] 
Operations 
Per 
Second= 
5738
© 2014 Hazelcast Inc. 
Lock 
28
© 2014 Hazelcast Inc. 
Lock 
29 
#[Mean 
= 
3700.329, 
StdDeviation 
= 
2750.031] 
#[Max 
= 
56918.016, 
Total 
count 
= 
27045] 
Operations 
Per 
Second= 
2704
Can 
we 
improve 
this 
a 
little 
bit? 
© 2014 Hazelcast Inc. 
Lock 
30 
#[Mean 
= 
3700.329, 
StdDeviation 
= 
2750.031] 
#[Max 
= 
56918.016, 
Total 
count 
= 
27045] 
Operations 
Per 
Second= 
2704
© 2014 Hazelcast Inc. 
XA Transaction 
31
© 2014 Hazelcast Inc. 
XA Transaction 
32 
#[Mean 
= 
4077.075, 
StdDeviation 
= 
2119.846] 
#[Max 
= 
43155.456, 
Total 
count 
= 
24561] 
Operations 
Per 
Second= 
2456
Didn’t 
improve 
that 
much. 
Why? 
© 2014 Hazelcast Inc. 
XA Transaction 
33 
#[Mean 
= 
4077.075, 
StdDeviation 
= 
2119.846] 
#[Max 
= 
43155.456, 
Total 
count 
= 
24561] 
Operations 
Per 
Second= 
2456
© 2014 Hazelcast Inc. 
Local Transaction 
34
© 2014 Hazelcast Inc. 
Local Transaction 
35 
#[Mean 
= 
2654.831, 
StdDeviation 
= 
5011.547] 
#[Max 
= 
133955.584, 
Total 
count 
= 
56761] 
Operations 
Per 
Second= 
5726
Can 
we 
do 
it 
without 
a 
Transaction? 
© 2014 Hazelcast Inc. 
Local Transaction 
36 
#[Mean 
= 
2654.831, 
StdDeviation 
= 
5011.547] 
#[Max 
= 
133955.584, 
Total 
count 
= 
56761] 
Operations 
Per 
Second= 
5726
Compare and swap instead of locking 
© 2014 Hazelcast Inc. 
37
Compare and swap instead of locking 
© 2014 Hazelcast Inc. 
38 
#[Mean 
= 
2540.975, 
StdDeviation 
= 
5113.372] 
#[Max 
= 
133365.760, 
Total 
count 
= 
60087] 
Operations 
Per 
Second= 
6082
Compare and swap instead of locking 
© 2014 Hazelcast Inc. 
39 
What 
other 
options 
do 
we 
have? 
#[Mean 
= 
2540.975, 
StdDeviation 
= 
5113.372] 
#[Max 
= 
133365.760, 
Total 
count 
= 
60087] 
Operations 
Per 
Second= 
6082
© 2014 Hazelcast Inc. 
40
Move operation to data 
© 2014 Hazelcast Inc. 
41
Move operation to data 
© 2014 Hazelcast Inc. 
42
Move operation to data 
© 2014 Hazelcast Inc. 
43 
#[Mean 
= 
5725.046, 
StdDeviation 
= 
197009.148] 
#[Max 
= 
13639876.608, 
Total 
count 
= 
37219] 
Operations 
Per 
Second= 
3721
Move operation to data 
© 2014 Hazelcast Inc. 
44 
#[Mean 
= 
5725.046, 
StdDeviation 
= 
197009.148] 
#[Max 
= 
13639876.608, 
Total 
count 
= 
37219] 
Operations 
Per 
Second= 
3721 
Can 
we 
move 
it 
any 
closer?
© 2014 Hazelcast Inc. 
Entry Processor 
45
© 2014 Hazelcast Inc. 
Entry Processor 
46 
#[Mean 
= 
1876.355, 
StdDeviation 
= 
1751.857] 
#[Max 
= 
36306.944, 
Total 
count 
= 
69648] 
Operations 
Per 
Second= 
7018
Entry Processor Object format 
© 2014 Hazelcast Inc. 
47 
#[Mean 
= 
1199.272, 
StdDeviation 
= 
1023.777] 
#[Max 
= 
34013.184, 
Total 
count 
= 
83520] 
Operations 
Per 
Second= 
8352
HUGL meets tonight!! 
https://github.com/fuadm/webinar-TDHW ! 
Twitter: @fuadm! 
https://groups.google.com/forum/#!forum/hazelcast! 
http://hazelcast.com/company/careers/! 
http://hazelcast.org/learn/ 
© 2014 Hazelcast Inc. 
Questions? 
48

Mais conteúdo relacionado

Destaque (10)

Event Sourcing - Greg Young
Event Sourcing - Greg YoungEvent Sourcing - Greg Young
Event Sourcing - Greg Young
 
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon RitterLambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
 
DevOps meets BPM - Benjamin Herbert and Masroor Ahmad
DevOps meets BPM - Benjamin Herbert and Masroor AhmadDevOps meets BPM - Benjamin Herbert and Masroor Ahmad
DevOps meets BPM - Benjamin Herbert and Masroor Ahmad
 
Reflection Madness - Dr. Heinz Kabutz
Reflection Madness - Dr. Heinz KabutzReflection Madness - Dr. Heinz Kabutz
Reflection Madness - Dr. Heinz Kabutz
 
Corrupción en petrobras
Corrupción en petrobrasCorrupción en petrobras
Corrupción en petrobras
 
Corrupcion en petrobras[1]
Corrupcion en petrobras[1]Corrupcion en petrobras[1]
Corrupcion en petrobras[1]
 
Hazelcast
HazelcastHazelcast
Hazelcast
 
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita IvanovGridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
 
Hatice Mercan
Hatice MercanHatice Mercan
Hatice Mercan
 
Developing Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris RichardsonDeveloping Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris Richardson
 

Semelhante a Squeezing Performance of out of In-Memory Data Grids - Fuad Malikov

J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayer
J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayerJ 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayer
J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayer
Maho Takara
 
April 2013 HUG: The Stinger Initiative - Making Apache Hive 100 Times Faster
April 2013 HUG: The Stinger Initiative - Making Apache Hive 100 Times FasterApril 2013 HUG: The Stinger Initiative - Making Apache Hive 100 Times Faster
April 2013 HUG: The Stinger Initiative - Making Apache Hive 100 Times Faster
Yahoo Developer Network
 
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Thomas Wuerthinger
 

Semelhante a Squeezing Performance of out of In-Memory Data Grids - Fuad Malikov (20)

Squeezing Performance out of Hazelcast
Squeezing Performance out of HazelcastSqueezing Performance out of Hazelcast
Squeezing Performance out of Hazelcast
 
Tez: Accelerating Data Pipelines - fifthel
Tez: Accelerating Data Pipelines - fifthelTez: Accelerating Data Pipelines - fifthel
Tez: Accelerating Data Pipelines - fifthel
 
Deep into Prometheus
Deep into PrometheusDeep into Prometheus
Deep into Prometheus
 
J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayer
J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayerJ 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayer
J 4共通 XCITE秋2014-開発者の可能性を際限なく広げる高性能クラウドSoftLayer
 
CloudCrowd - RazorFish Presentation on Building Hybrid Public/Private Cloud
CloudCrowd - RazorFish Presentation on Building Hybrid Public/Private CloudCloudCrowd - RazorFish Presentation on Building Hybrid Public/Private Cloud
CloudCrowd - RazorFish Presentation on Building Hybrid Public/Private Cloud
 
Cloud Crowd - Mandhir Gidda Razorfish " Building a Public / Private Hybrid Cl...
Cloud Crowd - Mandhir Gidda Razorfish " Building a Public / Private Hybrid Cl...Cloud Crowd - Mandhir Gidda Razorfish " Building a Public / Private Hybrid Cl...
Cloud Crowd - Mandhir Gidda Razorfish " Building a Public / Private Hybrid Cl...
 
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
 
Downsampling your data October 2017
Downsampling your data October 2017Downsampling your data October 2017
Downsampling your data October 2017
 
Running Cognos on Hadoop
Running Cognos on HadoopRunning Cognos on Hadoop
Running Cognos on Hadoop
 
Getting Started with Apache Geode
Getting Started with Apache GeodeGetting Started with Apache Geode
Getting Started with Apache Geode
 
Bring Cartography to the Cloud
Bring Cartography to the CloudBring Cartography to the Cloud
Bring Cartography to the Cloud
 
Hado"ops" or Had"oops"
Hado"ops" or Had"oops"Hado"ops" or Had"oops"
Hado"ops" or Had"oops"
 
Hado "OPS" or Had "oops"
Hado "OPS" or Had "oops" Hado "OPS" or Had "oops"
Hado "OPS" or Had "oops"
 
Google Cloud Lightning Talk
Google Cloud Lightning TalkGoogle Cloud Lightning Talk
Google Cloud Lightning Talk
 
OSP_Mfg_WIP_Advisor_Webcast_2013_0327.pdf
OSP_Mfg_WIP_Advisor_Webcast_2013_0327.pdfOSP_Mfg_WIP_Advisor_Webcast_2013_0327.pdf
OSP_Mfg_WIP_Advisor_Webcast_2013_0327.pdf
 
Kubernetes to improve business scalability and processes (Cloud & DevOps Worl...
Kubernetes to improve business scalability and processes (Cloud & DevOps Worl...Kubernetes to improve business scalability and processes (Cloud & DevOps Worl...
Kubernetes to improve business scalability and processes (Cloud & DevOps Worl...
 
Getting started with Hadoop, Hive, Spark and Kafka
Getting started with Hadoop, Hive, Spark and KafkaGetting started with Hadoop, Hive, Spark and Kafka
Getting started with Hadoop, Hive, Spark and Kafka
 
Learn How to Use a Time Series Platform to Monitor All Aspects of Your Kubern...
Learn How to Use a Time Series Platform to Monitor All Aspects of Your Kubern...Learn How to Use a Time Series Platform to Monitor All Aspects of Your Kubern...
Learn How to Use a Time Series Platform to Monitor All Aspects of Your Kubern...
 
April 2013 HUG: The Stinger Initiative - Making Apache Hive 100 Times Faster
April 2013 HUG: The Stinger Initiative - Making Apache Hive 100 Times FasterApril 2013 HUG: The Stinger Initiative - Making Apache Hive 100 Times Faster
April 2013 HUG: The Stinger Initiative - Making Apache Hive 100 Times Faster
 
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
 

Mais de JAXLondon2014

Testing the Enterprise Layers - the A, B, C's of Integration Testing - Aslak ...
Testing the Enterprise Layers - the A, B, C's of Integration Testing - Aslak ...Testing the Enterprise Layers - the A, B, C's of Integration Testing - Aslak ...
Testing the Enterprise Layers - the A, B, C's of Integration Testing - Aslak ...
JAXLondon2014
 
Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De...
Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De...Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De...
Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De...
JAXLondon2014
 
Open Source workflow automation with BPMN 2.0, Java and camunda - Bernd Rücker
Open Source workflow automation with BPMN 2.0, Java and camunda - Bernd RückerOpen Source workflow automation with BPMN 2.0, Java and camunda - Bernd Rücker
Open Source workflow automation with BPMN 2.0, Java and camunda - Bernd Rücker
JAXLondon2014
 

Mais de JAXLondon2014 (20)

Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang GottesheimPerformance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
 
Finding your Way in the Midst of the NoSQL Haze - Abdelmonaim Remani
Finding your Way in the Midst of the NoSQL Haze - Abdelmonaim RemaniFinding your Way in the Midst of the NoSQL Haze - Abdelmonaim Remani
Finding your Way in the Midst of the NoSQL Haze - Abdelmonaim Remani
 
API Management - a hands on workshop - Paul Fremantle
API Management - a hands on workshop - Paul FremantleAPI Management - a hands on workshop - Paul Fremantle
API Management - a hands on workshop - Paul Fremantle
 
'Bootiful' Code with Spring Boot - Josh Long
'Bootiful' Code with Spring Boot - Josh Long'Bootiful' Code with Spring Boot - Josh Long
'Bootiful' Code with Spring Boot - Josh Long
 
The Full Stack Java Developer - Josh Long
The Full Stack Java Developer - Josh LongThe Full Stack Java Developer - Josh Long
The Full Stack Java Developer - Josh Long
 
The Economies of Scaling Software - Josh Long and Abdelmonaim Remani
The Economies of Scaling Software - Josh Long and Abdelmonaim RemaniThe Economies of Scaling Software - Josh Long and Abdelmonaim Remani
The Economies of Scaling Software - Josh Long and Abdelmonaim Remani
 
Habits of Highly Effective Technical Teams - Martijn Verburg
Habits of Highly Effective Technical Teams - Martijn VerburgHabits of Highly Effective Technical Teams - Martijn Verburg
Habits of Highly Effective Technical Teams - Martijn Verburg
 
The Lazy Developer's Guide to Cloud Foundry - Holly Cummins
The Lazy Developer's Guide to Cloud Foundry - Holly CumminsThe Lazy Developer's Guide to Cloud Foundry - Holly Cummins
The Lazy Developer's Guide to Cloud Foundry - Holly Cummins
 
Testing within an Agile Environment - Beyza Sakir and Chris Gollop
Testing within an Agile Environment - Beyza Sakir and Chris GollopTesting within an Agile Environment - Beyza Sakir and Chris Gollop
Testing within an Agile Environment - Beyza Sakir and Chris Gollop
 
Testing the Enterprise Layers - the A, B, C's of Integration Testing - Aslak ...
Testing the Enterprise Layers - the A, B, C's of Integration Testing - Aslak ...Testing the Enterprise Layers - the A, B, C's of Integration Testing - Aslak ...
Testing the Enterprise Layers - the A, B, C's of Integration Testing - Aslak ...
 
Spocktacular Testing - Russel Winder
Spocktacular Testing - Russel WinderSpocktacular Testing - Russel Winder
Spocktacular Testing - Russel Winder
 
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeServer Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David Delabassee
 
Rapid Web Application Development with MongoDB and the JVM - Trisha Gee
Rapid Web Application Development with MongoDB and the JVM - Trisha GeeRapid Web Application Development with MongoDB and the JVM - Trisha Gee
Rapid Web Application Development with MongoDB and the JVM - Trisha Gee
 
Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De...
Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De...Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De...
Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De...
 
Performance and Predictability - Richard Warburton
Performance and Predictability - Richard WarburtonPerformance and Predictability - Richard Warburton
Performance and Predictability - Richard Warburton
 
Open Source workflow automation with BPMN 2.0, Java and camunda - Bernd Rücker
Open Source workflow automation with BPMN 2.0, Java and camunda - Bernd RückerOpen Source workflow automation with BPMN 2.0, Java and camunda - Bernd Rücker
Open Source workflow automation with BPMN 2.0, Java and camunda - Bernd Rücker
 
Introduction to Android Wear - Peter Friese
Introduction to Android Wear - Peter FrieseIntroduction to Android Wear - Peter Friese
Introduction to Android Wear - Peter Friese
 
How do you know your Solution will make an Impact? - Björn Brynjar Jonsson
How do you know your Solution will make an Impact? - Björn Brynjar JonssonHow do you know your Solution will make an Impact? - Björn Brynjar Jonsson
How do you know your Solution will make an Impact? - Björn Brynjar Jonsson
 
Hands on Data Grids - Stephen Milidge
Hands on Data Grids - Stephen MilidgeHands on Data Grids - Stephen Milidge
Hands on Data Grids - Stephen Milidge
 
Why do we create Software - Roman Pichler
Why do we create Software - Roman PichlerWhy do we create Software - Roman Pichler
Why do we create Software - Roman Pichler
 

Último

Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
David Celestin
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
Kayode Fayemi
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
amilabibi1
 
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven CuriosityUnlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Hung Le
 
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
ZurliaSoop
 

Último (17)

Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
 
Introduction to Artificial intelligence.
Introduction to Artificial intelligence.Introduction to Artificial intelligence.
Introduction to Artificial intelligence.
 
Zone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptxZone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptx
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Bailey
 
ICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdfICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdf
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.
 
Digital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalDigital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of Drupal
 
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdfSOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
 
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait Cityin kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
 
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven CuriosityUnlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatment
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfAWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
 
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio III
 

Squeezing Performance of out of In-Memory Data Grids - Fuad Malikov

  • 1. Squeezing Performance ! out of In-Memory Data Grids © 2014 Hazelcast Inc. FUAD MALIKOV HAZELCAST CO-FOUNDER
  • 2. Hazelcast co-founder! Java Developer since 2005! Worked at Financials and Telco’s. ! Leading Hazelcast Technical Operations. © 2014 Hazelcast Inc. About me 2 Follow me @fuadm
  • 3. Agenda - 50 Minutes + Q&A © 2014 Hazelcast Inc. 3 Overview to IMDG’s! Hazelcast Partitioning Basics! A Shopping Cart Use – Case! 8 possible solutions! Q&A
  • 4. © 2014 Hazelcast Inc. What is an IMDG? 4 Data Structures(s) in memory! Distributed across servers ! Highly Available and Resilient! Horizontal Scalability! Object based Data Model
  • 5. © 2014 Hazelcast Inc. Why an IMDG? Performance - RAM is faster than Disk! Data Structure - linked data model and application code ! Scalability - add servers to scale out RAM and CPU! Resiliency - seamless recovery from node failures! API - native, flexible and rich functionality 5
  • 6. Popular In-Memory Data Grids © 2014 Hazelcast Inc. Oracle Coherence ! Gigaspaces! Gemfire! IBM ExtremeScale! Infinispan! GridGain! Hazelcast! Terracotta* 6
  • 7. © 2014 Hazelcast Inc. Hazelcast 7
  • 8. Data Distribution © 2014 Hazelcast Inc. 8
  • 9. Partitioning (1 node) PARTITION_COUNT = 271 partition_id = hash(serialize(key))%PARTITION_COUNT © 2014 Hazelcast Inc. 9 P_1 P_2 P_271
  • 10. Partitioning (2 nodes) © 2014 Hazelcast Inc. 10 P_1 P_2 P_135 P_136 P_137 P_271 P_136 P_137 P_271 P_1 P_2 P_135
  • 11. Partitioning (4 nodes) © 2014 Hazelcast Inc. 11 P_1 P_2 P_67 P_68 P_69 P_136 P_68 P_137 P_271 P_1 P_138 P_205 P_137 P_138 P_204 P_205 P_206 P_271 P_2 P_69 P_206 P_67 P_136 P_204
  • 12. © 2014 Hazelcast Inc. Example 12 P_1 P_2 P_67 P_68 P_69 P_136 P_68 P_137 P_271 P_1 P_138 P_205 P_137 P_138 P_204 P_205 P_206 P_271 P_2 P_69 P_206 P_67 P_136 P_204 map.put(“LHR”, “London Heathrow Airport”)?
  • 13. map.put(“LHR”, “London Heathrow Airport”)? © 2014 Hazelcast Inc. Hashing 13 P_1 P_2 P_67 P_68 P_69 P_136 P_68 P_137 P_271 P_1 P_138 P_205 P_137 P_138 P_204 P_205 P_206 P_271 P_2 P_69 P_206 P_67 P_136 P_204 Hash(“LHR”)-­‐ > P_200
  • 14. map.put(“LHR”, “London Heathrow Airport”)? © 2014 Hazelcast Inc. Hashing 14 P_1 P_2 P_67 P_68 P_69 P_136 P_68 P_137 P_271 P_1 P_138 P_205 P_137 P_138 P_204 P_205 P_206 P_271 P_2 P_69 P_206 P_67 P_136 P_204 1
  • 15. map.put(“LHR”, “London Heathrow Airport”)? © 2014 Hazelcast Inc. Hashing 15 P_1 P_2 P_67 P_68 P_69 P_136 P_68 P_137 P_271 P_1 P_138 P_205 P_137 P_138 P_204 P_205 P_206 P_271 P_2 P_69 P_206 P_67 P_136 P_204 2 1
  • 16. map.put(“LHR”, “London Heathrow Airport”)? © 2014 Hazelcast Inc. Hashing 16 P_1 P_2 P_67 P_68 P_69 P_136 P_68 P_137 P_271 P_1 P_138 P_205 P_137 P_138 P_204 P_205 P_206 P_271 P_2 P_69 P_206 P_67 P_136 P_204 2 1 3
  • 17. map.put(“LHR”, “London Heathrow Airport”)? © 2014 Hazelcast Inc. Hashing 17 P_1 P_2 P_67 P_68 P_69 P_136 P_68 P_137 P_271 P_1 P_138 P_205 P_137 P_138 P_204 P_205 P_206 P_271 P_2 P_69 P_206 P_67 P_136 P_204 2 4 1 3
  • 18. © 2014 Hazelcast Inc. Hashing 18 P_1 P_2 P_67 P_68 P_69 P_136 P_68 P_137 P_271 P_1 P_138 P_205 P_137 P_138 P_204 P_205 P_206 P_271 P_2 P_69 P_206 P_67 P_136 P_204 map.get(“LHR”)?
  • 19. © 2014 Hazelcast Inc. Hashing 19 P_1 P_2 P_67 P_68 P_69 P_136 P_68 P_137 P_271 P_1 P_138 P_205 P_137 P_138 P_204 P_205 P_206 P_271 P_2 P_69 P_206 P_67 P_136 P_204 map.get(“LHR”)? 1
  • 20. © 2014 Hazelcast Inc. Hashing 20 P_1 P_2 P_67 P_68 P_69 P_136 P_68 P_137 P_271 P_1 P_138 P_205 P_137 P_138 P_204 P_205 P_206 P_271 P_2 P_69 P_206 P_67 P_136 P_204 map.get(“LHR”)? 1 2
  • 21. Use - Case © 2014 Hazelcast Inc. 21
  • 22. Shopping card example © 2014 Hazelcast Inc. 22
  • 23. © 2014 Hazelcast Inc. Shopping Cart Item 23
  • 24. © 2014 Hazelcast Inc. Shopping Cart 24
  • 25. © 2014 Hazelcast Inc. Simulation 25
  • 26. © 2014 Hazelcast Inc. Simulation 26 #[Mean = 2402.112, StdDeviation = 4519.652] #[Max = 148504.576, Total count = 56690] Operations Per Second= 5738
  • 27. What is wrong here? © 2014 Hazelcast Inc. Simulation 27 #[Mean = 2402.112, StdDeviation = 4519.652] #[Max = 148504.576, Total count = 56690] Operations Per Second= 5738
  • 28. © 2014 Hazelcast Inc. Lock 28
  • 29. © 2014 Hazelcast Inc. Lock 29 #[Mean = 3700.329, StdDeviation = 2750.031] #[Max = 56918.016, Total count = 27045] Operations Per Second= 2704
  • 30. Can we improve this a little bit? © 2014 Hazelcast Inc. Lock 30 #[Mean = 3700.329, StdDeviation = 2750.031] #[Max = 56918.016, Total count = 27045] Operations Per Second= 2704
  • 31. © 2014 Hazelcast Inc. XA Transaction 31
  • 32. © 2014 Hazelcast Inc. XA Transaction 32 #[Mean = 4077.075, StdDeviation = 2119.846] #[Max = 43155.456, Total count = 24561] Operations Per Second= 2456
  • 33. Didn’t improve that much. Why? © 2014 Hazelcast Inc. XA Transaction 33 #[Mean = 4077.075, StdDeviation = 2119.846] #[Max = 43155.456, Total count = 24561] Operations Per Second= 2456
  • 34. © 2014 Hazelcast Inc. Local Transaction 34
  • 35. © 2014 Hazelcast Inc. Local Transaction 35 #[Mean = 2654.831, StdDeviation = 5011.547] #[Max = 133955.584, Total count = 56761] Operations Per Second= 5726
  • 36. Can we do it without a Transaction? © 2014 Hazelcast Inc. Local Transaction 36 #[Mean = 2654.831, StdDeviation = 5011.547] #[Max = 133955.584, Total count = 56761] Operations Per Second= 5726
  • 37. Compare and swap instead of locking © 2014 Hazelcast Inc. 37
  • 38. Compare and swap instead of locking © 2014 Hazelcast Inc. 38 #[Mean = 2540.975, StdDeviation = 5113.372] #[Max = 133365.760, Total count = 60087] Operations Per Second= 6082
  • 39. Compare and swap instead of locking © 2014 Hazelcast Inc. 39 What other options do we have? #[Mean = 2540.975, StdDeviation = 5113.372] #[Max = 133365.760, Total count = 60087] Operations Per Second= 6082
  • 40. © 2014 Hazelcast Inc. 40
  • 41. Move operation to data © 2014 Hazelcast Inc. 41
  • 42. Move operation to data © 2014 Hazelcast Inc. 42
  • 43. Move operation to data © 2014 Hazelcast Inc. 43 #[Mean = 5725.046, StdDeviation = 197009.148] #[Max = 13639876.608, Total count = 37219] Operations Per Second= 3721
  • 44. Move operation to data © 2014 Hazelcast Inc. 44 #[Mean = 5725.046, StdDeviation = 197009.148] #[Max = 13639876.608, Total count = 37219] Operations Per Second= 3721 Can we move it any closer?
  • 45. © 2014 Hazelcast Inc. Entry Processor 45
  • 46. © 2014 Hazelcast Inc. Entry Processor 46 #[Mean = 1876.355, StdDeviation = 1751.857] #[Max = 36306.944, Total count = 69648] Operations Per Second= 7018
  • 47. Entry Processor Object format © 2014 Hazelcast Inc. 47 #[Mean = 1199.272, StdDeviation = 1023.777] #[Max = 34013.184, Total count = 83520] Operations Per Second= 8352
  • 48. HUGL meets tonight!! https://github.com/fuadm/webinar-TDHW ! Twitter: @fuadm! https://groups.google.com/forum/#!forum/hazelcast! http://hazelcast.com/company/careers/! http://hazelcast.org/learn/ © 2014 Hazelcast Inc. Questions? 48