squeezing performance out of hazelcast
DESCRIPTION
www.hazelcast.comTRANSCRIPT
© 2014 Hazelcast Inc.
Squeezing performance out of Hazelcast!
FUAD MALIKOV!CO-FOUNDER !
© 2014 Hazelcast Inc.
Hazelcast Introduction!
2
© 2014 Hazelcast Inc.
Who are we?!
!• Founded in 2008!• Open source business model!• Headquartered in Palo Alto, !
• R&D team in Istanbul!• Open source business model!
3
© 2014 Hazelcast Inc.
Who uses Hazelcast?!
4
Every 0.5 second a Hazelcast instance is starting around the globe!
© 2014 Hazelcast Inc.
Open source projects using Hazelcast!
5
© 2014 Hazelcast Inc.
What is Hazelcast?!
6
© 2014 Hazelcast Inc.
Keywords!
7
!• In-memory data grid!• Distributed(Elastic) Cache!• Distributed Data Structures!• Distributed Execution Framework!• NoSQL!• Clustering, Scalability, Partitioning!• Cloud Computing!
© 2014 Hazelcast Inc.
Why Hazelcast?!
8
To build highly available and scalable applica-ons
© 2014 Hazelcast Inc.
Hazelcast scales the Application Layer!
9
NoSQLNoSQL
© 2014 Hazelcast Inc.
Hazelcast scales the Application Layer!
10
• Java Collection API!– Map, Queue, List, Set!
• Java Concurrency API!– Lock, ExecutorService, Semaphore, CountdownLatch!
• Multimap!• Topic(Pub/Sub)!• Query!• Event Listeners!• Transactions!
© 2014 Hazelcast Inc.
Easy API!
11
© 2014 Hazelcast Inc.
Partitioning (1 node)!
12
P_1
P_2
P_271
par44onId = hash(keyData)%PARTITION_COUNT
© 2014 Hazelcast Inc.
Partitioning (2 nodes)!
13
P_1
P_2
P_135
P_136
P_137
P_271
P_136
P_137
P_271
P_1
P_2
P_135
© 2014 Hazelcast Inc.
Partitioning (4 nodes) !
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
© 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
map.put(“34”, “istanbul”)?
© 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
P_200Hash -‐ >
map.put(“34”, “istanbul”)?
© 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
map.put(“34”, “istanbul”)?
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(“34”)?
1 2
© 2014 Hazelcast Inc.
Shopping card example!
19
© 2014 Hazelcast Inc.
Shopping Cart Item!
20
© 2014 Hazelcast Inc.
Shopping Cart!
21
© 2014 Hazelcast Inc.
Simulation!
22
© 2014 Hazelcast Inc.
Simulation!
23
#[Mean = 2402.112, StdDevia-on = 4519.652] #[Max = 148504.576, Total count = 56690] Opera-ons Per Second= 5738
© 2014 Hazelcast Inc.
Lock!
24
© 2014 Hazelcast Inc.
Lock!
25
#[Mean = 3700.329, StdDevia-on = 2750.031] #[Max = 56918.016, Total count = 27045] Opera-ons Per Second= 2704
© 2014 Hazelcast Inc.
XA Transaction!
26
© 2014 Hazelcast Inc.
XA Transaction!
27
#[Mean = 4077.075, StdDevia-on = 2119.846] #[Max = 43155.456, Total count = 24561] Opera-ons Per Second= 2456
© 2014 Hazelcast Inc.
Local Transaction!
28
© 2014 Hazelcast Inc.
Local Transaction!
29
#[Mean = 2654.831, StdDevia-on = 5011.547] #[Max = 133955.584, Total count = 56761] Opera-ons Per Second= 5726
© 2014 Hazelcast Inc.
Compare and swap instead of locking!
30
© 2014 Hazelcast Inc.
Compare and swap instead of locking!
31
#[Mean = 2540.975, StdDevia-on = 5113.372] #[Max = 133365.760, Total count = 60087] Opera-ons Per Second= 6082
© 2014 Hazelcast Inc.
Move operation to data!
32
© 2014 Hazelcast Inc.
Move operation to data!
33
© 2014 Hazelcast Inc.
Move operation to data!
34
#[Mean = 5725.046, StdDevia-on = 197009.148] #[Max = 13639876.608, Total count = 37219] Opera-ons Per Second= 3721
© 2014 Hazelcast Inc.
Entry Processor!
35
© 2014 Hazelcast Inc.
Entry Processor!
36
© 2014 Hazelcast Inc.
Entry Processor!
37
#[Mean = 1876.355, StdDevia-on = 1751.857] #[Max = 36306.944, Total count = 69648] Opera-ons Per Second= 7018
© 2014 Hazelcast Inc.
Entry Processor Object format!
38
#[Mean = 1199.272, StdDevia-on = 1023.777] #[Max = 34013.184, Total count = 83520] Opera-ons Per Second= 8352
© 2014 Hazelcast Inc.
Questions?!
39
We are hiring!!