squeezing performance out of hazelcast

39
© 2014 Hazelcast Inc. Squeezing performance out of Hazelcast FUAD MALIKOV CO-FOUNDER

Upload: hazelcast

Post on 11-May-2015

346 views

Category:

Software


4 download

DESCRIPTION

www.hazelcast.com

TRANSCRIPT

Page 1: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Squeezing performance out of Hazelcast!

FUAD MALIKOV!CO-FOUNDER !

Page 2: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Hazelcast Introduction!

2

Page 3: Squeezing Performance out of Hazelcast

© 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

Page 4: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Who uses Hazelcast?!

4

Every 0.5 second a Hazelcast instance is starting around the globe!

Page 5: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Open source projects using Hazelcast!

5

Page 6: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

What is Hazelcast?!

6

Page 7: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Keywords!

7

!•  In-memory data grid!•  Distributed(Elastic) Cache!•  Distributed Data Structures!•  Distributed Execution Framework!•  NoSQL!•  Clustering, Scalability, Partitioning!•  Cloud Computing!

Page 8: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Why Hazelcast?!

8

To  build  highly  available  and  scalable  applica-ons  

Page 9: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Hazelcast scales the Application Layer!

9

NoSQLNoSQL  

Page 10: Squeezing Performance out of Hazelcast

© 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!

Page 11: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Easy API!

11

Page 12: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Partitioning (1 node)!

12

P_1

P_2

P_271

par44onId  =  hash(keyData)%PARTITION_COUNT  

Page 13: Squeezing Performance out of Hazelcast

© 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

Page 14: Squeezing Performance out of Hazelcast

© 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

Page 15: Squeezing Performance out of Hazelcast

© 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”)?  

Page 16: Squeezing Performance out of Hazelcast

© 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”)?  

Page 17: Squeezing Performance out of Hazelcast

© 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  

Page 18: Squeezing Performance out of Hazelcast

© 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  

Page 19: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Shopping card example!

19

Page 20: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Shopping Cart Item!

20

Page 21: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Shopping Cart!

21

Page 22: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Simulation!

22

Page 23: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Simulation!

23

#[Mean        =          2402.112,  StdDevia-on      =          4519.652]  #[Max          =      148504.576,  Total  count        =                56690]  Opera-ons  Per  Second=  5738  

Page 24: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Lock!

24

Page 25: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Lock!

25

#[Mean        =          3700.329,  StdDevia-on      =          2750.031]  #[Max          =        56918.016,  Total  count        =                27045]  Opera-ons  Per  Second=  2704  

Page 26: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

XA Transaction!

26

Page 27: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

XA Transaction!

27

#[Mean        =          4077.075,  StdDevia-on      =          2119.846]  #[Max          =        43155.456,  Total  count        =                24561]  Opera-ons  Per  Second=  2456  

Page 28: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Local Transaction!

28

Page 29: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Local Transaction!

29

#[Mean        =          2654.831,  StdDevia-on      =          5011.547]  #[Max          =      133955.584,  Total  count        =                56761]  Opera-ons  Per  Second=  5726  

Page 30: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Compare and swap instead of locking!

30

Page 31: Squeezing Performance out of Hazelcast

© 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  

Page 32: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Move operation to data!

32

Page 33: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Move operation to data!

33

Page 34: Squeezing Performance out of Hazelcast

© 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  

Page 35: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Entry Processor!

35

Page 36: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Entry Processor!

36

Page 37: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Entry Processor!

37

#[Mean        =          1876.355,  StdDevia-on      =          1751.857]  #[Max          =        36306.944,  Total  count        =                69648]  Opera-ons  Per  Second=  7018  

Page 38: Squeezing Performance out of Hazelcast

© 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  

Page 39: Squeezing Performance out of Hazelcast

© 2014 Hazelcast Inc.

Questions?!

39

We are hiring!!