SlideShare a Scribd company logo
1 of 163
Distributed 
applications 
using Hazelcast 
This presentation will be useful to those who would like 
to get acquainted with Hazelcast top features 
and see some of them in action 
! 
By Taras Matyashovsky 
Taras Matyashovsky, Software Engineer/Team & Tech Lead, CSM, @tmatyashovsky
Introduction 
Introduction
• Software engineer/TL 
• Worked for outsource companies, product 
companies and tried myself in startups/ 
freelancing 
• 8+ years production Java experience 
• Fan of Agile methodologies, CSM 
• Founder of Morning@Lohika tech talks in Lviv 
Introduction 
About me
• This presentation 
Introduction 
What?
• This presentation 
• covers Hazelcast top features 
Introduction 
What?
• This presentation 
• covers Hazelcast top features 
• explains difference between distributed cache and in-memory 
Introduction 
data grid 
What?
• This presentation 
What? 
• covers Hazelcast top features 
• explains difference between distributed cache and in-memory 
Introduction 
data grid 
• contains live demo sessions
• This presentation 
What? 
• covers Hazelcast top features 
• explains difference between distributed cache and in-memory 
Introduction 
data grid 
• contains live demo sessions 
• is not intended for promotion of Hazelcast as the best 
solution
• This presentation 
What? 
• covers Hazelcast top features 
• explains difference between distributed cache and in-memory 
Introduction 
data grid 
• contains live demo sessions 
• is not intended for promotion of Hazelcast as the best 
solution 
• draws attention to Hazelcast as it is currently on a rise
• This presentation 
What? 
• covers Hazelcast top features 
• explains difference between distributed cache and in-memory 
Introduction 
data grid 
• contains live demo sessions 
• is not intended for promotion of Hazelcast as the best 
solution 
• draws attention to Hazelcast as it is currently on a rise 
• does not describe usage of NoSQL solutions for 
distributed caching, e.g. Redis, Riak, Cassandra, 
MongoDB, etc.
• Hazelcast in a nutshell 
• Cache fundamentals 
• Hazelcast as distributed cache 
• live demo session 
• Distributed cache vs. in-memory data grid 
• Hazelcast as in-memory data grid 
• live demo session 
• Hazelcast drawbacks 
• Hazelcast is on a rise 
Introduction 
Agenda
In-memory Data Grid Solutions 
Hazelcast in a Nutshell
In-memory Data Grid Solutions 
Hazelcast in a Nutshell
In-memory Data Grid Solutions 
Hazelcast in a Nutshell
In-memory Data Grid Solutions 
Hazelcast in a Nutshell
In-memory Data Grid Solutions 
Hazelcast in a Nutshell
In-memory Data Grid Solutions 
Hazelcast in a Nutshell
In-memory Data Grid Solutions 
Hazelcast in a Nutshell
In-memory Data Grid Solutions 
Hazelcast in a Nutshell
In-memory Data Grid Solutions 
Hazelcast in a Nutshell
Hazelcast in a Nutshell 
Hazelcast 
The leading open source 
in-memory data grid 
! 
free alternative to proprietary solutions, 
such as Oracle Coherence, 
VMWare Pivotal Gemfire and 
Software AG Terracotta
Hazelcast in a Nutshell 
Hazelcast Use Cases
• scale your application 
Hazelcast in a Nutshell 
Hazelcast Use Cases
• scale your application 
• share data across cluster 
Hazelcast in a Nutshell 
Hazelcast Use Cases
• scale your application 
• share data across cluster 
• partition your data 
Hazelcast in a Nutshell 
Hazelcast Use Cases
• scale your application 
• share data across cluster 
• partition your data 
• balance the load 
Hazelcast in a Nutshell 
Hazelcast Use Cases
• scale your application 
• share data across cluster 
• partition your data 
• balance the load 
• send/receive messages 
Hazelcast in a Nutshell 
Hazelcast Use Cases
• scale your application 
• share data across cluster 
• partition your data 
• balance the load 
• send/receive messages 
• process in parallel on many JVMs, i.e. 
massively parallel processing (MPP) 
Hazelcast in a Nutshell 
Hazelcast Use Cases
Hazelcast in a Nutshell 
Hazelcast Features
• dynamic clustering, backup, discovery, fail-over 
Hazelcast in a Nutshell 
Hazelcast Features
• dynamic clustering, backup, discovery, fail-over 
• distributed & partitioned map, distributed 
queue, set, list, lock, semaphore, topic, executor 
service, etc. 
Hazelcast in a Nutshell 
Hazelcast Features
• dynamic clustering, backup, discovery, fail-over 
• distributed & partitioned map, distributed 
queue, set, list, lock, semaphore, topic, executor 
service, etc. 
• distributed queries and MapReduce API 
Hazelcast in a Nutshell 
Hazelcast Features
• dynamic clustering, backup, discovery, fail-over 
• distributed & partitioned map, distributed 
queue, set, list, lock, semaphore, topic, executor 
service, etc. 
• distributed queries and MapReduce API 
• transaction support, both local and distributed 
Hazelcast in a Nutshell 
Hazelcast Features
• dynamic clustering, backup, discovery, fail-over 
• distributed & partitioned map, distributed 
queue, set, list, lock, semaphore, topic, executor 
service, etc. 
• distributed queries and MapReduce API 
• transaction support, both local and distributed 
• Java client for accessing the cluster remotely 
Hazelcast in a Nutshell 
Hazelcast Features
Cache Fundamentals 
Cache 
Fundamentals
Cache Fundamentals 
Cache Attributes
• maximum size, e.g. quantity of entries 
Cache Fundamentals 
Cache Attributes
• maximum size, e.g. quantity of entries 
• cache algorithm used for invalidation/eviction, e.g.: 
• least recently used (LRU) 
• least frequently used (LFU) 
• FIFO 
Cache Fundamentals 
Cache Attributes
• maximum size, e.g. quantity of entries 
• cache algorithm used for invalidation/eviction, e.g.: 
• least recently used (LRU) 
• least frequently used (LFU) 
• FIFO 
• eviction percentage 
Cache Fundamentals 
Cache Attributes
• maximum size, e.g. quantity of entries 
• cache algorithm used for invalidation/eviction, e.g.: 
• least recently used (LRU) 
• least frequently used (LFU) 
• FIFO 
• eviction percentage 
• expiration, e.g.: 
• time-to-live (TTL) 
• absolute/relative time-based expiration 
Cache Fundamentals 
Cache Attributes
Cache Fundamentals 
Cache Access Patterns
Cache Access Patterns 
• cache aside 
• application is responsible for reading and writing from the 
storage and the cache doesn't interact with the storage at 
all 
• the cache is “kept aside” as a faster and more scalable in-memory 
Cache Fundamentals 
data store
Cache Access Patterns 
• cache aside 
• application is responsible for reading and writing from the 
storage and the cache doesn't interact with the storage at 
all 
• the cache is “kept aside” as a faster and more scalable in-memory 
Cache Fundamentals 
data store 
• read-through/write-through (refresh-ahead/write-behind) 
• the application treats cache as the main data store and 
reads/writes data from/to it 
• the cache is responsible for reading and writing this data to 
the database
Cache Fundamentals 
Cache Types
• local cache 
Cache Fundamentals 
Cache Types
• local cache 
• replicated cache 
Cache Fundamentals 
Cache Types
• local cache 
• replicated cache 
• distributed cache 
Cache Fundamentals 
Cache Types
• local cache 
• replicated cache 
• distributed cache 
• remote cache 
Cache Fundamentals 
Cache Types
• local cache 
• replicated cache 
• distributed cache 
• remote cache 
• near cache 
Cache Fundamentals 
Cache Types
Distributed Cache 
a cache that partitions its data 
Cache Fundamentals 
among all cluster nodes
Get in Distributed Cache 
Cache Fundamentals
Get in Distributed Cache 
Cache Fundamentals 
JVM 1
Get in Distributed Cache 
Cache Fundamentals 
Distributed Cache Map 
JVM 1
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
Distributed Cache Map 
JVM 1
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
Distributed Cache Map 
JVM 1 
Primary
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
JVM 1 
Primary 
Backup
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
Distributed Cache Map 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
Distributed Cache Map 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
Distributed Cache Map 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
JVM 3 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
Distributed Cache Map 
JVM 3 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
Distributed Cache Map 
JVM 3 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
Distributed Cache Map 
JVM 3 
Primary 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
JVM 4
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
Distributed Cache Map 
JVM 4
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
Distributed Cache Map 
JVM 4
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
Distributed Cache Map 
JVM 4
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
JVM 4
Get in Distributed Cache 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4
Get in Distributed Cache 
A 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4
Get in Distributed Cache 
A 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
get(A)
Get in Distributed Cache 
A 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
get(A)
Get in Distributed Cache 
A 
B 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
get(A)
Get in Distributed Cache 
A 
B 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
get(A) 
get(B)
Get in Distributed Cache 
A 
B 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
get(A) 
get(B)
Get in Distributed Cache 
A 
C 
B 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
get(A) 
get(B)
Get in Distributed Cache 
A 
C 
B 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
get(A) 
get(B) 
get(C)
Get in Distributed Cache 
A 
C 
B 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
get(A) 
get(B) 
get(C)
Get in Distributed Cache 
A 
C 
B 
D 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
get(A) 
get(B) 
get(C)
Get in Distributed Cache 
A 
C 
B 
D 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
get(A) 
get(B) 
get(C) 
get(D)
Get in Distributed Cache 
A 
C 
B 
D 
Cache Fundamentals 
B A 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
get(A) 
get(B) 
get(C) 
get(D)
Put in Distributed Cache 
Cache Fundamentals
Put in Distributed Cache 
Cache Fundamentals 
C 
B 
D 
Logical 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup
Put in Distributed Cache 
Cache Fundamentals 
C 
B 
D 
Logical 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2
Put in Distributed Cache 
Cache Fundamentals 
C 
B 
D 
Logical 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2
Put in Distributed Cache 
Cache Fundamentals 
C 
B 
D 
Logical 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
C 
B 
D 
Logical 
D 
Primary 
Backup 
Distributed Cache Map 
Application 
JVM 4
Put in Distributed Cache 
A 
Cache Fundamentals 
C 
B 
D 
Logical 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
C 
B 
D 
Logical 
D 
Primary 
Backup 
Distributed Cache Map 
Application 
JVM 4
Put in Distributed Cache 
A 
put( 
A) A 
Cache Fundamentals 
C 
B 
D 
Logical 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
C 
B 
D 
Logical 
D 
Primary 
Backup 
Distributed Cache Map 
Application 
JVM 4 
A
Put in Distributed Cache 
A 
put( 
A) A 
Cache Fundamentals 
C 
B 
D 
Logical 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
A
Put in Distributed Cache 
A 
put( 
A) A 
Cache Fundamentals 
C 
B 
D 
Logical 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
A 
A B 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
C 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
A
Failover in Distributed Cache 
Cache Fundamentals 
A B 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4
Failover in Distributed Cache 
Cache Fundamentals 
A B 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4
Failover in Distributed Cache 
Cache Fundamentals 
A B 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4
Failover in Distributed Cache 
Cache Fundamentals 
A B 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
B
Failover in Distributed Cache 
Cache Fundamentals 
A B 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
A 
Backup 
Distributed Cache Map 
Application 
JVM 4 
B
Failover in Distributed Cache 
Cache Fundamentals 
A B 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
D B A 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
B 
Primary 
D 
Backup 
Distributed Cache Map 
Application 
JVM 2 
A 
C 
B 
D 
Logical 
D 
Primary 
Backup 
Distributed Cache Map 
Application 
JVM 4
Failover in Distributed Cache 
Cache Fundamentals 
A B 
C 
D 
Logical 
A 
C 
Distributed Cache Map 
Application 
JVM 1 
Primary 
Backup 
A 
C 
B 
D 
Logical 
C 
B 
D B A 
Distributed Cache Map 
Application 
JVM 3 
Primary 
Backup 
A 
C 
B 
D 
Logical 
D 
Primary 
Backup 
Distributed Cache Map 
Application 
JVM 4
Cache Fundamentals 
Distributed Cache
• Pros: 
• linear performance scalability for reads and writes 
• fault-tolerant 
Cache Fundamentals 
Distributed Cache
• Pros: 
• linear performance scalability for reads and writes 
• fault-tolerant 
• Cons: 
• increased latency of reads (due to network round-trip 
and serialization/deserialization expenses) 
Cache Fundamentals 
Distributed Cache
Distributed Cache Summary 
Most of distributed caches were built 
as distributed in-memory key/value stores 
that supported a simple set of “put” and “get” operations 
and optionally read-through/write-through behavior 
Cache Fundamentals 
for writing and reading values 
to/from underlying disk-based storage such as an RDBMS
Hazelcast as Distributed Cache 
Hazelcast 
as 
Distributed Cache
Hazelcast as Distributed Cache 
Hazelcast 
Distributed & Partitioned Map
• extends the java.util.concurrent.ConcurrentMap, 
but is designed to be used in a distributed 
environment 
Hazelcast as Distributed Cache 
Hazelcast 
Distributed & Partitioned Map
• extends the java.util.concurrent.ConcurrentMap, 
but is designed to be used in a distributed 
environment 
• divided by default in 271 partitions 
Hazelcast as Distributed Cache 
Hazelcast 
Distributed & Partitioned Map
• extends the java.util.concurrent.ConcurrentMap, 
but is designed to be used in a distributed 
environment 
• divided by default in 271 partitions 
• partitions are distributed evenly among the 
members in the cluster 
Hazelcast as Distributed Cache 
Hazelcast 
Distributed & Partitioned Map
• extends the java.util.concurrent.ConcurrentMap, 
but is designed to be used in a distributed 
environment 
• divided by default in 271 partitions 
• partitions are distributed evenly among the 
members in the cluster 
• partition id = hash(key) % partition count 
Hazelcast as Distributed Cache 
Hazelcast 
Distributed & Partitioned Map
• extends the java.util.concurrent.ConcurrentMap, 
but is designed to be used in a distributed 
environment 
• divided by default in 271 partitions 
• partitions are distributed evenly among the 
members in the cluster 
• partition id = hash(key) % partition count 
• scaling out is automatic via addition of new 
Hazelcast instances 
Hazelcast as Distributed Cache 
Hazelcast 
Distributed & Partitioned Map
Sample Web Application* 
• Technologies: 
• Spring Boot 1.1.7.RELEASE 
• Hazelcast 3.3.1 
• 1 jar dependency 
• Apache 2 license, i.e. free to use 
• Postgres 9.3 
! 
• Application: 
• HTTP-based API to get/put data from/to cache 
• HTTP-based API to execute tasks and search data in the cluster 
• One instance of Hazelcast per application 
• programmatic configuration 
• cluster discovery based on TCP/IP cluster network configuraton 
* Some samples are not optimal and created just to demonstrate usage of existing Hazelcast API 
Hazelcast as Distributed Cache
Distributed 
Cache 
• Hazelcast 
configuration 
• In-memory 
distributed cache 
• Write-through 
distributed cache 
• Management 
center 
Hazelcast as Distributed Cache
In-Memory Data Grid 
In-Memory 
Data Grid
In-Memory Data Grid 
In-Memory Data Grid
In-memory distributed cache plus: 
In-Memory Data Grid 
In-Memory Data Grid
In-memory distributed cache plus: 
• ability to support co-location of computations with 
data in a distributed context and move 
computation to data 
In-Memory Data Grid 
In-Memory Data Grid
In-Memory Data Grid 
In-memory distributed cache plus: 
• ability to support co-location of computations with 
data in a distributed context and move 
computation to data 
• distributed massively parallel processing (MPP) 
based on standard SQL and/or MapReduce, that 
allows to effectively compute over data stored in-memory 
In-Memory Data Grid 
across the cluster
In-Memory Data Grid 
In-Memory Data Grid
In-Memory Data Grid 
In-Memory Data Grid 
Distributed 
Caching
In-Memory Data Grid 
In-Memory Data Grid 
In-Memory 
Data Grid 
Distributed 
Caching
In-Memory Data Grid 
In-Memory Data Grid 
In-Memory Computing/ 
Database 
In-Memory 
Data Grid 
Distributed 
Caching
In-Memory Distributed Cache vs. 
In-Memory Data Grid 
In-Memory Data Grid 
Distributed Cache Data Grid
In-Memory Distributed Cache vs. 
In-Memory Data Grid 
In-Memory Data Grid 
Distributed Cache 
In-memory distributed 
caches were developed 
in response to a growing 
need for data high 
availability 
Data Grid
In-Memory Distributed Cache vs. 
In-Memory Data Grid 
In-Memory Data Grid 
Distributed Cache 
In-memory distributed 
caches were developed 
in response to a growing 
need for data high 
availability 
Data Grid 
In-memory data grids 
were developed to 
respond to the growing 
complexities of data 
processing
In-Memory Data Grid Summary 
In-Memory Data Grid 
Adding distributed SQL and/or 
MapReduce based processing required a complete 
re-thinking of distributed caches, 
as focus has shifted from pure data management 
to hybrid data and compute management
Hazelcast 
Hazelcast as In-Memory Data Grid 
as 
In-Memory 
Data Grid
Hazelcast as In-Memory Data Grid 
Hazelcast as In-Memory Data Grid
Hazelcast as In-Memory Data Grid 
• Executor service 
Hazelcast as In-Memory Data Grid
Hazelcast as In-Memory Data Grid 
• Executor service 
• Entry processor 
Hazelcast as In-Memory Data Grid
Hazelcast as In-Memory Data Grid 
• Executor service 
• Entry processor 
• Distributed queries 
• Criteria API 
• Distributed SQL Query 
Hazelcast as In-Memory Data Grid
Hazelcast as In-Memory Data Grid 
• Executor service 
• Entry processor 
• Distributed queries 
• Criteria API 
• Distributed SQL Query 
• MapReduce API 
Hazelcast as In-Memory Data Grid
Hazelcast Executor Service 
Hazelcast as In-Memory Data Grid
Hazelcast Executor Service 
• extends the java.util.concurrent.ExecutorService, 
but is designed to be used in a distributed 
environment 
Hazelcast as In-Memory Data Grid
Hazelcast Executor Service 
• extends the java.util.concurrent.ExecutorService, 
but is designed to be used in a distributed 
environment 
• executes tasks implemented as java.util.Runnable 
or java.util.concurrent.Callable asynchronously 
Hazelcast as In-Memory Data Grid
Hazelcast Executor Service 
• extends the java.util.concurrent.ExecutorService, 
but is designed to be used in a distributed 
environment 
• executes tasks implemented as java.util.Runnable 
or java.util.concurrent.Callable asynchronously 
• scaling up via threads pool size 
Hazelcast as In-Memory Data Grid
Hazelcast Executor Service 
• extends the java.util.concurrent.ExecutorService, 
but is designed to be used in a distributed 
environment 
• executes tasks implemented as java.util.Runnable 
or java.util.concurrent.Callable asynchronously 
• scaling up via threads pool size 
• scaling out is automatic via addition of new 
Hazelcast instances 
Hazelcast as In-Memory Data Grid
Hazelcast Executor Service 
• provides different ways to route tasks 
• any member 
• specific member 
• the member hosting a specific key 
• all or subset of members 
• supports future and execution callback 
Hazelcast as In-Memory Data Grid
In-Memory 
Data Grid 
• Executor service 
configuration 
• Simple task 
• Sum task to 
sum values in 
the map 
• Distributed 
query 
Hazelcast as In-Memory Data Grid
Hazelcast Executor Service Drawbacks 
Hazelcast as In-Memory Data Grid
Hazelcast Executor Service Drawbacks 
• work-queue has no high availability 
• each member will create local ThreadPoolExecutors with 
ordinary work-queues that do the real work but not backed 
up by Hazelcast 
• if something would happen with that member, all 
unprocessed work will be lost 
Hazelcast as In-Memory Data Grid
Hazelcast Executor Service Drawbacks 
• work-queue has no high availability 
• each member will create local ThreadPoolExecutors with 
ordinary work-queues that do the real work but not backed 
up by Hazelcast 
• if something would happen with that member, all 
unprocessed work will be lost 
• work-queue is not partitioned 
• it could be that one member has a lot of unprocessed work, 
and another is idle 
Hazelcast as In-Memory Data Grid
Hazelcast Executor Service Drawbacks 
• work-queue has no high availability 
• each member will create local ThreadPoolExecutors with 
ordinary work-queues that do the real work but not backed 
up by Hazelcast 
• if something would happen with that member, all 
unprocessed work will be lost 
• work-queue is not partitioned 
• it could be that one member has a lot of unprocessed work, 
and another is idle 
• no customizable load balancing 
• in future load balancing could be done based on the 
number of unprocessed tasks, CPU load, memory load etc. 
Hazelcast as In-Memory Data Grid
Other 
Hazelcast 
Useful Features 
Other Hazelcast Useful Features
Other Hazelcast Useful Features 
• custom (de)serialization mechanism including support 
for: 
• Kryo 
• Jackson Smile 
• Protobuf 
• entry processor 
• locking 
• distributed topic 
• SPI (service programming interface) to create own 
distributed services/structures 
Other Hazelcast Useful Features
Hazelcast Drawbacks 
Hazelcast 
Drawbacks
Hazelcast Drawbacks 
Hazelcast Drawbacks
• still quite buggy 
• memory leaks 
Hazelcast Drawbacks 
Hazelcast Drawbacks
• still quite buggy 
• memory leaks 
• poor documentation for more complex cases 
Hazelcast Drawbacks 
Hazelcast Drawbacks
• still quite buggy 
• memory leaks 
• poor documentation for more complex cases 
• missing useful features: 
• update configuration in running cluster 
• load balancing for executor service 
• only map is really distributed & partitioned 
Hazelcast Drawbacks 
Hazelcast Drawbacks
• still quite buggy 
• memory leaks 
• poor documentation for more complex cases 
• missing useful features: 
• update configuration in running cluster 
• load balancing for executor service 
• only map is really distributed & partitioned 
• enterprise edition costs money (about $7k per node), but includes: 
• elastic memory, i.e. off-heap memory 
• data security 
• C# and C++ clients 
• management center with no limits 
Hazelcast Drawbacks 
Hazelcast Drawbacks
Hazelcast vs. Infinispan 
Hazelcast 
vs. 
Infinispan
Hazelcast vs. Infinispan 
Hazelcast vs. Infinispan 
Infinispan Hazelcast 
Pros • backed by relatively large company for 
use in largely distributed environments 
(JBoss) 
• been in active use for several years 
• well-written documentation 
• a lot of examples of different 
• easy setup 
• more performant than Infinispan 
• simple node/cluster discovery 
mechanism 
• relies on only 1 jar to be included on 
classpath 
Cons • relies on JGroups that proven to be buggy especially under high load 
• 
backed by a startup based in Palo 
Alto and Turkey
Hazelcast is on a Rise 
Hazelcast 
is on a Rise
Hazelcast is on a Rise 
Hazelcast is on a Rise
• Funding 
• received $13.5 million in 2 rounds from 2 investors 
• most recent funding: $11 Million Series B on September 18, 2014 
Hazelcast is on a Rise 
Hazelcast is on a Rise
• Funding 
• received $13.5 million in 2 rounds from 2 investors 
• most recent funding: $11 Million Series B on September 18, 2014 
• Greg Luck 
• creator and founder of Ehcache, the leading open source java cache 
• former CTO of Terracotta at Software AG 
• co-specification lead for JCache, the Java Standard for Caching in Spring and Java 
EE 8 
• in January 2014, Greg Luck joined Hazelcast as CTO. On 18th of June, 2014, 
Hazelcast announced the appointment of Greg Luck as CEO. 
Hazelcast is on a Rise 
Hazelcast is on a Rise
• Funding 
• received $13.5 million in 2 rounds from 2 investors 
• most recent funding: $11 Million Series B on September 18, 2014 
• Greg Luck 
• creator and founder of Ehcache, the leading open source java cache 
• former CTO of Terracotta at Software AG 
• co-specification lead for JCache, the Java Standard for Caching in Spring and Java 
EE 8 
• in January 2014, Greg Luck joined Hazelcast as CTO. On 18th of June, 2014, 
Hazelcast announced the appointment of Greg Luck as CEO. 
• JCache 
• on 29th of September, 2014, on the opening day of JavaOne Hazelcast announced 
the release of Hazelcast 3.3.1 JCache, the JCache compatible version of Hazelcast 
Hazelcast is on a Rise 
Hazelcast is on a Rise
Thanks! 
Questions? Design by 
Distributed Applications using Hazelcast by Taras Matyashovsky
References 
• http://docs.oracle.com/cd/E18686_01/coh.37/e18677/cache_intro.htm 
• http://coherence.oracle.com/display/COH31UG/Read-Through,+Write-Through,+Refresh-Ahead+and+Write- 
Behind+Caching 
• http://blog.tekmindsolutions.com/oracle-coherence-diffrence-between-replicated-cache-vs-partitioneddistributed- 
References 
cache/ 
• http://www.slideshare.net/MaxAlexejev/from-distributed-caches-to-inmemory-data-grids 
• http://www.slideshare.net/jaxlondon2012/clustering-your-application-with-hazelcast 
• http://gridgaintech.wordpress.com/2013/10/19/distributed-caching-is-dead-long-live/ 
• http://hazelcast.com/resources/mastering-hazelcast/ 
• http://gridgain.com/in-memory-database-vs-in-memory-data-grid-revisited/ 
• http://hazelcast.com/resources/thinking-distributed-the-hazelcast-way/ 
• http://www.prleap.com/pr/228862/hazelcast-releases-jcache-implementation-at 
• http://www.crunchbase.com/organization/hazelcast/funding-rounds 
• https://github.com/tmatyashovsky/hazelcast-samples/ 
• https://github.com/tmatyashovsky/hazelcast-samples-javaday-kyiv

More Related Content

What's hot

Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...confluent
 
Inside the InfluxDB storage engine
Inside the InfluxDB storage engineInside the InfluxDB storage engine
Inside the InfluxDB storage engineInfluxData
 
Sharding Methods for MongoDB
Sharding Methods for MongoDBSharding Methods for MongoDB
Sharding Methods for MongoDBMongoDB
 
How Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for PerformanceHow Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for PerformanceBrendan Gregg
 
Stability Patterns for Microservices
Stability Patterns for MicroservicesStability Patterns for Microservices
Stability Patterns for Microservicespflueras
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcachedJurriaan Persyn
 
Presto query optimizer: pursuit of performance
Presto query optimizer: pursuit of performancePresto query optimizer: pursuit of performance
Presto query optimizer: pursuit of performanceDataWorks Summit
 
Prometheus and Thanos
Prometheus and ThanosPrometheus and Thanos
Prometheus and ThanosCloudOps2005
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeFlink Forward
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeperSaurav Haloi
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphDataWorks Summit
 
How Prometheus Store the Data
How Prometheus Store the DataHow Prometheus Store the Data
How Prometheus Store the DataHao Chen
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache CamelClaus Ibsen
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesBruno Borges
 
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...HostedbyConfluent
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsScalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsJonas Bonér
 
Delivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSDelivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSNGINX, Inc.
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to RedisDvir Volk
 
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Amazon Web Services
 

What's hot (20)

Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
 
Inside the InfluxDB storage engine
Inside the InfluxDB storage engineInside the InfluxDB storage engine
Inside the InfluxDB storage engine
 
Sharding Methods for MongoDB
Sharding Methods for MongoDBSharding Methods for MongoDB
Sharding Methods for MongoDB
 
How Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for PerformanceHow Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for Performance
 
Stability Patterns for Microservices
Stability Patterns for MicroservicesStability Patterns for Microservices
Stability Patterns for Microservices
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
Presto query optimizer: pursuit of performance
Presto query optimizer: pursuit of performancePresto query optimizer: pursuit of performance
Presto query optimizer: pursuit of performance
 
Prometheus and Thanos
Prometheus and ThanosPrometheus and Thanos
Prometheus and Thanos
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive Mode
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
 
How Prometheus Store the Data
How Prometheus Store the DataHow Prometheus Store the Data
How Prometheus Store the Data
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache Camel
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
Thanos - Prometheus on Scale
Thanos - Prometheus on ScaleThanos - Prometheus on Scale
Thanos - Prometheus on Scale
 
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsScalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns
 
Delivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSDelivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWS
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
 

Viewers also liked

Hazelcast
HazelcastHazelcast
Hazelcastoztalip
 
Think Distributed: The Hazelcast Way
Think Distributed: The Hazelcast WayThink Distributed: The Hazelcast Way
Think Distributed: The Hazelcast WayRahul Gupta
 
DNS Security
DNS SecurityDNS Security
DNS Securityinbroker
 
facebook architecture for 600M users
facebook architecture for 600M usersfacebook architecture for 600M users
facebook architecture for 600M usersJongyoon Choi
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn
 
Cassandra Introduction & Features
Cassandra Introduction & FeaturesCassandra Introduction & Features
Cassandra Introduction & FeaturesDataStax Academy
 
Etsy Activity Feeds Architecture
Etsy Activity Feeds ArchitectureEtsy Activity Feeds Architecture
Etsy Activity Feeds ArchitectureDan McKinley
 
Big Data in Real-Time at Twitter
Big Data in Real-Time at TwitterBig Data in Real-Time at Twitter
Big Data in Real-Time at Twitternkallen
 
Caching In Java- Best Practises and Pitfalls
Caching In Java- Best Practises and PitfallsCaching In Java- Best Practises and Pitfalls
Caching In Java- Best Practises and PitfallsHARIHARAN ANANTHARAMAN
 
Distributed Computing in Hazelcast - Geekout 2014 Edition
Distributed Computing in Hazelcast - Geekout 2014 EditionDistributed Computing in Hazelcast - Geekout 2014 Edition
Distributed Computing in Hazelcast - Geekout 2014 EditionChristoph Engelbert
 
Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast Hazelcast
 
Distributed computing with Hazelcast - JavaOne 2014
Distributed computing with Hazelcast - JavaOne 2014Distributed computing with Hazelcast - JavaOne 2014
Distributed computing with Hazelcast - JavaOne 2014Christoph Engelbert
 
Hazelcast Deep Dive (Paris JUG-2)
Hazelcast Deep Dive (Paris JUG-2)Hazelcast Deep Dive (Paris JUG-2)
Hazelcast Deep Dive (Paris JUG-2)Emrah Kocaman
 
Building scalable applications with hazelcast
Building scalable applications with hazelcastBuilding scalable applications with hazelcast
Building scalable applications with hazelcastFuad Malikov
 

Viewers also liked (16)

Hazelcast
HazelcastHazelcast
Hazelcast
 
Think Distributed: The Hazelcast Way
Think Distributed: The Hazelcast WayThink Distributed: The Hazelcast Way
Think Distributed: The Hazelcast Way
 
DNS Security
DNS SecurityDNS Security
DNS Security
 
facebook architecture for 600M users
facebook architecture for 600M usersfacebook architecture for 600M users
facebook architecture for 600M users
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
 
Cassandra Introduction & Features
Cassandra Introduction & FeaturesCassandra Introduction & Features
Cassandra Introduction & Features
 
Etsy Activity Feeds Architecture
Etsy Activity Feeds ArchitectureEtsy Activity Feeds Architecture
Etsy Activity Feeds Architecture
 
Big Data in Real-Time at Twitter
Big Data in Real-Time at TwitterBig Data in Real-Time at Twitter
Big Data in Real-Time at Twitter
 
Caching In Java- Best Practises and Pitfalls
Caching In Java- Best Practises and PitfallsCaching In Java- Best Practises and Pitfalls
Caching In Java- Best Practises and Pitfalls
 
Distributed Computing in Hazelcast - Geekout 2014 Edition
Distributed Computing in Hazelcast - Geekout 2014 EditionDistributed Computing in Hazelcast - Geekout 2014 Edition
Distributed Computing in Hazelcast - Geekout 2014 Edition
 
Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast
 
Distributed computing with Hazelcast - JavaOne 2014
Distributed computing with Hazelcast - JavaOne 2014Distributed computing with Hazelcast - JavaOne 2014
Distributed computing with Hazelcast - JavaOne 2014
 
Hazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGridHazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGrid
 
Morning at Lohika
Morning at LohikaMorning at Lohika
Morning at Lohika
 
Hazelcast Deep Dive (Paris JUG-2)
Hazelcast Deep Dive (Paris JUG-2)Hazelcast Deep Dive (Paris JUG-2)
Hazelcast Deep Dive (Paris JUG-2)
 
Building scalable applications with hazelcast
Building scalable applications with hazelcastBuilding scalable applications with hazelcast
Building scalable applications with hazelcast
 

Similar to Distributed applications using Hazelcast

Caching principles-solutions
Caching principles-solutionsCaching principles-solutions
Caching principles-solutionspmanvi
 
Webinar: Overcoming the Storage Challenges Cassandra and Couchbase Create
Webinar: Overcoming the Storage Challenges Cassandra and Couchbase CreateWebinar: Overcoming the Storage Challenges Cassandra and Couchbase Create
Webinar: Overcoming the Storage Challenges Cassandra and Couchbase CreateStorage Switzerland
 
Trend Micro Big Data Platform and Apache Bigtop
Trend Micro Big Data Platform and Apache BigtopTrend Micro Big Data Platform and Apache Bigtop
Trend Micro Big Data Platform and Apache BigtopEvans Ye
 
Caching and JCache with Greg Luck 18.02.16
Caching and JCache with Greg Luck 18.02.16Caching and JCache with Greg Luck 18.02.16
Caching and JCache with Greg Luck 18.02.16Comsysto Reply GmbH
 
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...In-Memory Computing Summit
 
Solving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps styleSolving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps styleMayaData
 
Container Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris MeetupContainer Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris MeetupMayaData Inc
 
Hadoop User Group - Status Apache Drill
Hadoop User Group - Status Apache DrillHadoop User Group - Status Apache Drill
Hadoop User Group - Status Apache DrillMapR Technologies
 
Share on LinkedIn Share on Twitter Share on Facebook Share on Google+ Share b...
Share on LinkedIn Share on Twitter Share on Facebook Share on Google+ Share b...Share on LinkedIn Share on Twitter Share on Facebook Share on Google+ Share b...
Share on LinkedIn Share on Twitter Share on Facebook Share on Google+ Share b...Avere Systems
 
Introducing Oxia: A Scalable Zookeeper Alternative
Introducing Oxia: A Scalable Zookeeper AlternativeIntroducing Oxia: A Scalable Zookeeper Alternative
Introducing Oxia: A Scalable Zookeeper AlternativeHostedbyConfluent
 
Bigdata antipatterns
Bigdata antipatternsBigdata antipatterns
Bigdata antipatternsAnurag S
 
Where Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsWhere Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsConcentric Sky
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]Speedment, Inc.
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]Malin Weiss
 
Writing Scalable Software in Java
Writing Scalable Software in JavaWriting Scalable Software in Java
Writing Scalable Software in JavaRuben Badaró
 
The Economies of Scaling Software
The Economies of Scaling SoftwareThe Economies of Scaling Software
The Economies of Scaling SoftwareAbdelmonaim Remani
 
NYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentNYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentSpeedment, Inc.
 
Backup and Disaster Recovery in Hadoop
Backup and Disaster Recovery in HadoopBackup and Disaster Recovery in Hadoop
Backup and Disaster Recovery in Hadooplarsgeorge
 

Similar to Distributed applications using Hazelcast (20)

Caching principles-solutions
Caching principles-solutionsCaching principles-solutions
Caching principles-solutions
 
Webinar: Overcoming the Storage Challenges Cassandra and Couchbase Create
Webinar: Overcoming the Storage Challenges Cassandra and Couchbase CreateWebinar: Overcoming the Storage Challenges Cassandra and Couchbase Create
Webinar: Overcoming the Storage Challenges Cassandra and Couchbase Create
 
Trend Micro Big Data Platform and Apache Bigtop
Trend Micro Big Data Platform and Apache BigtopTrend Micro Big Data Platform and Apache Bigtop
Trend Micro Big Data Platform and Apache Bigtop
 
Hazelcast 101
Hazelcast 101Hazelcast 101
Hazelcast 101
 
Caching and JCache with Greg Luck 18.02.16
Caching and JCache with Greg Luck 18.02.16Caching and JCache with Greg Luck 18.02.16
Caching and JCache with Greg Luck 18.02.16
 
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
 
Solving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps styleSolving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps style
 
Container Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris MeetupContainer Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris Meetup
 
Hadoop User Group - Status Apache Drill
Hadoop User Group - Status Apache DrillHadoop User Group - Status Apache Drill
Hadoop User Group - Status Apache Drill
 
Share on LinkedIn Share on Twitter Share on Facebook Share on Google+ Share b...
Share on LinkedIn Share on Twitter Share on Facebook Share on Google+ Share b...Share on LinkedIn Share on Twitter Share on Facebook Share on Google+ Share b...
Share on LinkedIn Share on Twitter Share on Facebook Share on Google+ Share b...
 
Introducing Oxia: A Scalable Zookeeper Alternative
Introducing Oxia: A Scalable Zookeeper AlternativeIntroducing Oxia: A Scalable Zookeeper Alternative
Introducing Oxia: A Scalable Zookeeper Alternative
 
Bigdata antipatterns
Bigdata antipatternsBigdata antipatterns
Bigdata antipatterns
 
Where Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsWhere Django Caching Bust at the Seams
Where Django Caching Bust at the Seams
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
 
Writing Scalable Software in Java
Writing Scalable Software in JavaWriting Scalable Software in Java
Writing Scalable Software in Java
 
The Economies of Scaling Software
The Economies of Scaling SoftwareThe Economies of Scaling Software
The Economies of Scaling Software
 
NYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentNYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ Speedment
 
Backup and Disaster Recovery in Hadoop
Backup and Disaster Recovery in HadoopBackup and Disaster Recovery in Hadoop
Backup and Disaster Recovery in Hadoop
 
Mini-Training: To cache or not to cache
Mini-Training: To cache or not to cacheMini-Training: To cache or not to cache
Mini-Training: To cache or not to cache
 

More from Taras Matyashovsky

Distinguish Pop from Heavy Metal using Apache Spark MLlib
Distinguish Pop from Heavy Metal using Apache Spark MLlibDistinguish Pop from Heavy Metal using Apache Spark MLlib
Distinguish Pop from Heavy Metal using Apache Spark MLlibTaras Matyashovsky
 
Introduction to ML with Apache Spark MLlib
Introduction to ML with Apache Spark MLlibIntroduction to ML with Apache Spark MLlib
Introduction to ML with Apache Spark MLlibTaras Matyashovsky
 
Morning at Lohika 2nd anniversary
Morning at Lohika 2nd anniversaryMorning at Lohika 2nd anniversary
Morning at Lohika 2nd anniversaryTaras Matyashovsky
 
Influence. The Psychology of Persuasion (in IT)
Influence. The Psychology of Persuasion (in IT)Influence. The Psychology of Persuasion (in IT)
Influence. The Psychology of Persuasion (in IT)Taras Matyashovsky
 
JEEConf 2015 - Introduction to real-time big data with Apache Spark
JEEConf 2015 - Introduction to real-time big data with Apache SparkJEEConf 2015 - Introduction to real-time big data with Apache Spark
JEEConf 2015 - Introduction to real-time big data with Apache SparkTaras Matyashovsky
 
Morning at Lohika 1st anniversary
Morning at Lohika 1st anniversaryMorning at Lohika 1st anniversary
Morning at Lohika 1st anniversaryTaras Matyashovsky
 
Introduction to real time big data with Apache Spark
Introduction to real time big data with Apache SparkIntroduction to real time big data with Apache Spark
Introduction to real time big data with Apache SparkTaras Matyashovsky
 
New life inside monolithic application
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic applicationTaras Matyashovsky
 

More from Taras Matyashovsky (10)

Morning 3 anniversary
Morning 3 anniversaryMorning 3 anniversary
Morning 3 anniversary
 
Distinguish Pop from Heavy Metal using Apache Spark MLlib
Distinguish Pop from Heavy Metal using Apache Spark MLlibDistinguish Pop from Heavy Metal using Apache Spark MLlib
Distinguish Pop from Heavy Metal using Apache Spark MLlib
 
Introduction to ML with Apache Spark MLlib
Introduction to ML with Apache Spark MLlibIntroduction to ML with Apache Spark MLlib
Introduction to ML with Apache Spark MLlib
 
Morning at Lohika 2nd anniversary
Morning at Lohika 2nd anniversaryMorning at Lohika 2nd anniversary
Morning at Lohika 2nd anniversary
 
Confession of an Engineer
Confession of an EngineerConfession of an Engineer
Confession of an Engineer
 
Influence. The Psychology of Persuasion (in IT)
Influence. The Psychology of Persuasion (in IT)Influence. The Psychology of Persuasion (in IT)
Influence. The Psychology of Persuasion (in IT)
 
JEEConf 2015 - Introduction to real-time big data with Apache Spark
JEEConf 2015 - Introduction to real-time big data with Apache SparkJEEConf 2015 - Introduction to real-time big data with Apache Spark
JEEConf 2015 - Introduction to real-time big data with Apache Spark
 
Morning at Lohika 1st anniversary
Morning at Lohika 1st anniversaryMorning at Lohika 1st anniversary
Morning at Lohika 1st anniversary
 
Introduction to real time big data with Apache Spark
Introduction to real time big data with Apache SparkIntroduction to real time big data with Apache Spark
Introduction to real time big data with Apache Spark
 
New life inside monolithic application
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic application
 

Recently uploaded

Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Call Girls Mumbai
 
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...gragchanchal546
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdfKamal Acharya
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesChandrakantDivate1
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityMorshed Ahmed Rahath
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayEpec Engineered Technologies
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaOmar Fathy
 
Digital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxDigital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxpritamlangde
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxkalpana413121
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 
Ground Improvement Technique: Earth Reinforcement
Ground Improvement Technique: Earth ReinforcementGround Improvement Technique: Earth Reinforcement
Ground Improvement Technique: Earth ReinforcementDr. Deepak Mudgal
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...drmkjayanthikannan
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationBhangaleSonal
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXssuser89054b
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiessarkmank1
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdfKamal Acharya
 
fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptAfnanAhmad53
 

Recently uploaded (20)

Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To Curves
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Digital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxDigital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptx
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptx
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Ground Improvement Technique: Earth Reinforcement
Ground Improvement Technique: Earth ReinforcementGround Improvement Technique: Earth Reinforcement
Ground Improvement Technique: Earth Reinforcement
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .ppt
 

Distributed applications using Hazelcast

  • 1. Distributed applications using Hazelcast This presentation will be useful to those who would like to get acquainted with Hazelcast top features and see some of them in action ! By Taras Matyashovsky Taras Matyashovsky, Software Engineer/Team & Tech Lead, CSM, @tmatyashovsky
  • 3. • Software engineer/TL • Worked for outsource companies, product companies and tried myself in startups/ freelancing • 8+ years production Java experience • Fan of Agile methodologies, CSM • Founder of Morning@Lohika tech talks in Lviv Introduction About me
  • 4. • This presentation Introduction What?
  • 5. • This presentation • covers Hazelcast top features Introduction What?
  • 6. • This presentation • covers Hazelcast top features • explains difference between distributed cache and in-memory Introduction data grid What?
  • 7. • This presentation What? • covers Hazelcast top features • explains difference between distributed cache and in-memory Introduction data grid • contains live demo sessions
  • 8. • This presentation What? • covers Hazelcast top features • explains difference between distributed cache and in-memory Introduction data grid • contains live demo sessions • is not intended for promotion of Hazelcast as the best solution
  • 9. • This presentation What? • covers Hazelcast top features • explains difference between distributed cache and in-memory Introduction data grid • contains live demo sessions • is not intended for promotion of Hazelcast as the best solution • draws attention to Hazelcast as it is currently on a rise
  • 10. • This presentation What? • covers Hazelcast top features • explains difference between distributed cache and in-memory Introduction data grid • contains live demo sessions • is not intended for promotion of Hazelcast as the best solution • draws attention to Hazelcast as it is currently on a rise • does not describe usage of NoSQL solutions for distributed caching, e.g. Redis, Riak, Cassandra, MongoDB, etc.
  • 11. • Hazelcast in a nutshell • Cache fundamentals • Hazelcast as distributed cache • live demo session • Distributed cache vs. in-memory data grid • Hazelcast as in-memory data grid • live demo session • Hazelcast drawbacks • Hazelcast is on a rise Introduction Agenda
  • 12. In-memory Data Grid Solutions Hazelcast in a Nutshell
  • 13. In-memory Data Grid Solutions Hazelcast in a Nutshell
  • 14. In-memory Data Grid Solutions Hazelcast in a Nutshell
  • 15. In-memory Data Grid Solutions Hazelcast in a Nutshell
  • 16. In-memory Data Grid Solutions Hazelcast in a Nutshell
  • 17. In-memory Data Grid Solutions Hazelcast in a Nutshell
  • 18. In-memory Data Grid Solutions Hazelcast in a Nutshell
  • 19. In-memory Data Grid Solutions Hazelcast in a Nutshell
  • 20. In-memory Data Grid Solutions Hazelcast in a Nutshell
  • 21. Hazelcast in a Nutshell Hazelcast The leading open source in-memory data grid ! free alternative to proprietary solutions, such as Oracle Coherence, VMWare Pivotal Gemfire and Software AG Terracotta
  • 22. Hazelcast in a Nutshell Hazelcast Use Cases
  • 23. • scale your application Hazelcast in a Nutshell Hazelcast Use Cases
  • 24. • scale your application • share data across cluster Hazelcast in a Nutshell Hazelcast Use Cases
  • 25. • scale your application • share data across cluster • partition your data Hazelcast in a Nutshell Hazelcast Use Cases
  • 26. • scale your application • share data across cluster • partition your data • balance the load Hazelcast in a Nutshell Hazelcast Use Cases
  • 27. • scale your application • share data across cluster • partition your data • balance the load • send/receive messages Hazelcast in a Nutshell Hazelcast Use Cases
  • 28. • scale your application • share data across cluster • partition your data • balance the load • send/receive messages • process in parallel on many JVMs, i.e. massively parallel processing (MPP) Hazelcast in a Nutshell Hazelcast Use Cases
  • 29. Hazelcast in a Nutshell Hazelcast Features
  • 30. • dynamic clustering, backup, discovery, fail-over Hazelcast in a Nutshell Hazelcast Features
  • 31. • dynamic clustering, backup, discovery, fail-over • distributed & partitioned map, distributed queue, set, list, lock, semaphore, topic, executor service, etc. Hazelcast in a Nutshell Hazelcast Features
  • 32. • dynamic clustering, backup, discovery, fail-over • distributed & partitioned map, distributed queue, set, list, lock, semaphore, topic, executor service, etc. • distributed queries and MapReduce API Hazelcast in a Nutshell Hazelcast Features
  • 33. • dynamic clustering, backup, discovery, fail-over • distributed & partitioned map, distributed queue, set, list, lock, semaphore, topic, executor service, etc. • distributed queries and MapReduce API • transaction support, both local and distributed Hazelcast in a Nutshell Hazelcast Features
  • 34. • dynamic clustering, backup, discovery, fail-over • distributed & partitioned map, distributed queue, set, list, lock, semaphore, topic, executor service, etc. • distributed queries and MapReduce API • transaction support, both local and distributed • Java client for accessing the cluster remotely Hazelcast in a Nutshell Hazelcast Features
  • 35. Cache Fundamentals Cache Fundamentals
  • 37. • maximum size, e.g. quantity of entries Cache Fundamentals Cache Attributes
  • 38. • maximum size, e.g. quantity of entries • cache algorithm used for invalidation/eviction, e.g.: • least recently used (LRU) • least frequently used (LFU) • FIFO Cache Fundamentals Cache Attributes
  • 39. • maximum size, e.g. quantity of entries • cache algorithm used for invalidation/eviction, e.g.: • least recently used (LRU) • least frequently used (LFU) • FIFO • eviction percentage Cache Fundamentals Cache Attributes
  • 40. • maximum size, e.g. quantity of entries • cache algorithm used for invalidation/eviction, e.g.: • least recently used (LRU) • least frequently used (LFU) • FIFO • eviction percentage • expiration, e.g.: • time-to-live (TTL) • absolute/relative time-based expiration Cache Fundamentals Cache Attributes
  • 41. Cache Fundamentals Cache Access Patterns
  • 42. Cache Access Patterns • cache aside • application is responsible for reading and writing from the storage and the cache doesn't interact with the storage at all • the cache is “kept aside” as a faster and more scalable in-memory Cache Fundamentals data store
  • 43. Cache Access Patterns • cache aside • application is responsible for reading and writing from the storage and the cache doesn't interact with the storage at all • the cache is “kept aside” as a faster and more scalable in-memory Cache Fundamentals data store • read-through/write-through (refresh-ahead/write-behind) • the application treats cache as the main data store and reads/writes data from/to it • the cache is responsible for reading and writing this data to the database
  • 45. • local cache Cache Fundamentals Cache Types
  • 46. • local cache • replicated cache Cache Fundamentals Cache Types
  • 47. • local cache • replicated cache • distributed cache Cache Fundamentals Cache Types
  • 48. • local cache • replicated cache • distributed cache • remote cache Cache Fundamentals Cache Types
  • 49. • local cache • replicated cache • distributed cache • remote cache • near cache Cache Fundamentals Cache Types
  • 50. Distributed Cache a cache that partitions its data Cache Fundamentals among all cluster nodes
  • 51. Get in Distributed Cache Cache Fundamentals
  • 52. Get in Distributed Cache Cache Fundamentals JVM 1
  • 53. Get in Distributed Cache Cache Fundamentals Distributed Cache Map JVM 1
  • 54. Get in Distributed Cache Cache Fundamentals B A C D Logical Distributed Cache Map JVM 1
  • 55. Get in Distributed Cache Cache Fundamentals B A C D Logical A Distributed Cache Map JVM 1 Primary
  • 56. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map JVM 1 Primary Backup
  • 57. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup
  • 58. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup JVM 2
  • 59. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup Distributed Cache Map JVM 2
  • 60. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical Distributed Cache Map JVM 2
  • 61. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical B Primary Distributed Cache Map JVM 2
  • 62. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map JVM 2
  • 63. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2
  • 64. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup JVM 3 A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2
  • 65. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup Distributed Cache Map JVM 3 A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2
  • 66. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical Distributed Cache Map JVM 3 A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2
  • 67. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C Distributed Cache Map JVM 3 Primary A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2
  • 68. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2
  • 69. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2
  • 70. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 JVM 4
  • 71. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 Distributed Cache Map JVM 4
  • 72. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical Distributed Cache Map JVM 4
  • 73. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary Distributed Cache Map JVM 4
  • 74. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map JVM 4
  • 75. Get in Distributed Cache Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4
  • 76. Get in Distributed Cache A Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4
  • 77. Get in Distributed Cache A Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 get(A)
  • 78. Get in Distributed Cache A Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 get(A)
  • 79. Get in Distributed Cache A B Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 get(A)
  • 80. Get in Distributed Cache A B Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 get(A) get(B)
  • 81. Get in Distributed Cache A B Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 get(A) get(B)
  • 82. Get in Distributed Cache A C B Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 get(A) get(B)
  • 83. Get in Distributed Cache A C B Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 get(A) get(B) get(C)
  • 84. Get in Distributed Cache A C B Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 get(A) get(B) get(C)
  • 85. Get in Distributed Cache A C B D Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 get(A) get(B) get(C)
  • 86. Get in Distributed Cache A C B D Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 get(A) get(B) get(C) get(D)
  • 87. Get in Distributed Cache A C B D Cache Fundamentals B A C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 get(A) get(B) get(C) get(D)
  • 88. Put in Distributed Cache Cache Fundamentals
  • 89. Put in Distributed Cache Cache Fundamentals C B D Logical C Distributed Cache Map Application JVM 1 Primary Backup
  • 90. Put in Distributed Cache Cache Fundamentals C B D Logical C Distributed Cache Map Application JVM 1 Primary Backup C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2
  • 91. Put in Distributed Cache Cache Fundamentals C B D Logical C Distributed Cache Map Application JVM 1 Primary Backup C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2
  • 92. Put in Distributed Cache Cache Fundamentals C B D Logical C Distributed Cache Map Application JVM 1 Primary Backup C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 C B D Logical D Primary Backup Distributed Cache Map Application JVM 4
  • 93. Put in Distributed Cache A Cache Fundamentals C B D Logical C Distributed Cache Map Application JVM 1 Primary Backup C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 C B D Logical D Primary Backup Distributed Cache Map Application JVM 4
  • 94. Put in Distributed Cache A put( A) A Cache Fundamentals C B D Logical C Distributed Cache Map Application JVM 1 Primary Backup C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 C B D Logical D Primary Backup Distributed Cache Map Application JVM 4 A
  • 95. Put in Distributed Cache A put( A) A Cache Fundamentals C B D Logical C Distributed Cache Map Application JVM 1 Primary Backup C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 A
  • 96. Put in Distributed Cache A put( A) A Cache Fundamentals C B D Logical C Distributed Cache Map Application JVM 1 Primary Backup A A A B C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 C D Logical D Primary A Backup Distributed Cache Map Application JVM 4 A
  • 97. Failover in Distributed Cache Cache Fundamentals A B C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4
  • 98. Failover in Distributed Cache Cache Fundamentals A B C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4
  • 99. Failover in Distributed Cache Cache Fundamentals A B C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4
  • 100. Failover in Distributed Cache Cache Fundamentals A B C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 B
  • 101. Failover in Distributed Cache Cache Fundamentals A B C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary A Backup Distributed Cache Map Application JVM 4 B
  • 102. Failover in Distributed Cache Cache Fundamentals A B C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B D B A Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical B Primary D Backup Distributed Cache Map Application JVM 2 A C B D Logical D Primary Backup Distributed Cache Map Application JVM 4
  • 103. Failover in Distributed Cache Cache Fundamentals A B C D Logical A C Distributed Cache Map Application JVM 1 Primary Backup A C B D Logical C B D B A Distributed Cache Map Application JVM 3 Primary Backup A C B D Logical D Primary Backup Distributed Cache Map Application JVM 4
  • 105. • Pros: • linear performance scalability for reads and writes • fault-tolerant Cache Fundamentals Distributed Cache
  • 106. • Pros: • linear performance scalability for reads and writes • fault-tolerant • Cons: • increased latency of reads (due to network round-trip and serialization/deserialization expenses) Cache Fundamentals Distributed Cache
  • 107. Distributed Cache Summary Most of distributed caches were built as distributed in-memory key/value stores that supported a simple set of “put” and “get” operations and optionally read-through/write-through behavior Cache Fundamentals for writing and reading values to/from underlying disk-based storage such as an RDBMS
  • 108. Hazelcast as Distributed Cache Hazelcast as Distributed Cache
  • 109. Hazelcast as Distributed Cache Hazelcast Distributed & Partitioned Map
  • 110. • extends the java.util.concurrent.ConcurrentMap, but is designed to be used in a distributed environment Hazelcast as Distributed Cache Hazelcast Distributed & Partitioned Map
  • 111. • extends the java.util.concurrent.ConcurrentMap, but is designed to be used in a distributed environment • divided by default in 271 partitions Hazelcast as Distributed Cache Hazelcast Distributed & Partitioned Map
  • 112. • extends the java.util.concurrent.ConcurrentMap, but is designed to be used in a distributed environment • divided by default in 271 partitions • partitions are distributed evenly among the members in the cluster Hazelcast as Distributed Cache Hazelcast Distributed & Partitioned Map
  • 113. • extends the java.util.concurrent.ConcurrentMap, but is designed to be used in a distributed environment • divided by default in 271 partitions • partitions are distributed evenly among the members in the cluster • partition id = hash(key) % partition count Hazelcast as Distributed Cache Hazelcast Distributed & Partitioned Map
  • 114. • extends the java.util.concurrent.ConcurrentMap, but is designed to be used in a distributed environment • divided by default in 271 partitions • partitions are distributed evenly among the members in the cluster • partition id = hash(key) % partition count • scaling out is automatic via addition of new Hazelcast instances Hazelcast as Distributed Cache Hazelcast Distributed & Partitioned Map
  • 115. Sample Web Application* • Technologies: • Spring Boot 1.1.7.RELEASE • Hazelcast 3.3.1 • 1 jar dependency • Apache 2 license, i.e. free to use • Postgres 9.3 ! • Application: • HTTP-based API to get/put data from/to cache • HTTP-based API to execute tasks and search data in the cluster • One instance of Hazelcast per application • programmatic configuration • cluster discovery based on TCP/IP cluster network configuraton * Some samples are not optimal and created just to demonstrate usage of existing Hazelcast API Hazelcast as Distributed Cache
  • 116. Distributed Cache • Hazelcast configuration • In-memory distributed cache • Write-through distributed cache • Management center Hazelcast as Distributed Cache
  • 117. In-Memory Data Grid In-Memory Data Grid
  • 118. In-Memory Data Grid In-Memory Data Grid
  • 119. In-memory distributed cache plus: In-Memory Data Grid In-Memory Data Grid
  • 120. In-memory distributed cache plus: • ability to support co-location of computations with data in a distributed context and move computation to data In-Memory Data Grid In-Memory Data Grid
  • 121. In-Memory Data Grid In-memory distributed cache plus: • ability to support co-location of computations with data in a distributed context and move computation to data • distributed massively parallel processing (MPP) based on standard SQL and/or MapReduce, that allows to effectively compute over data stored in-memory In-Memory Data Grid across the cluster
  • 122. In-Memory Data Grid In-Memory Data Grid
  • 123. In-Memory Data Grid In-Memory Data Grid Distributed Caching
  • 124. In-Memory Data Grid In-Memory Data Grid In-Memory Data Grid Distributed Caching
  • 125. In-Memory Data Grid In-Memory Data Grid In-Memory Computing/ Database In-Memory Data Grid Distributed Caching
  • 126. In-Memory Distributed Cache vs. In-Memory Data Grid In-Memory Data Grid Distributed Cache Data Grid
  • 127. In-Memory Distributed Cache vs. In-Memory Data Grid In-Memory Data Grid Distributed Cache In-memory distributed caches were developed in response to a growing need for data high availability Data Grid
  • 128. In-Memory Distributed Cache vs. In-Memory Data Grid In-Memory Data Grid Distributed Cache In-memory distributed caches were developed in response to a growing need for data high availability Data Grid In-memory data grids were developed to respond to the growing complexities of data processing
  • 129. In-Memory Data Grid Summary In-Memory Data Grid Adding distributed SQL and/or MapReduce based processing required a complete re-thinking of distributed caches, as focus has shifted from pure data management to hybrid data and compute management
  • 130. Hazelcast Hazelcast as In-Memory Data Grid as In-Memory Data Grid
  • 131. Hazelcast as In-Memory Data Grid Hazelcast as In-Memory Data Grid
  • 132. Hazelcast as In-Memory Data Grid • Executor service Hazelcast as In-Memory Data Grid
  • 133. Hazelcast as In-Memory Data Grid • Executor service • Entry processor Hazelcast as In-Memory Data Grid
  • 134. Hazelcast as In-Memory Data Grid • Executor service • Entry processor • Distributed queries • Criteria API • Distributed SQL Query Hazelcast as In-Memory Data Grid
  • 135. Hazelcast as In-Memory Data Grid • Executor service • Entry processor • Distributed queries • Criteria API • Distributed SQL Query • MapReduce API Hazelcast as In-Memory Data Grid
  • 136. Hazelcast Executor Service Hazelcast as In-Memory Data Grid
  • 137. Hazelcast Executor Service • extends the java.util.concurrent.ExecutorService, but is designed to be used in a distributed environment Hazelcast as In-Memory Data Grid
  • 138. Hazelcast Executor Service • extends the java.util.concurrent.ExecutorService, but is designed to be used in a distributed environment • executes tasks implemented as java.util.Runnable or java.util.concurrent.Callable asynchronously Hazelcast as In-Memory Data Grid
  • 139. Hazelcast Executor Service • extends the java.util.concurrent.ExecutorService, but is designed to be used in a distributed environment • executes tasks implemented as java.util.Runnable or java.util.concurrent.Callable asynchronously • scaling up via threads pool size Hazelcast as In-Memory Data Grid
  • 140. Hazelcast Executor Service • extends the java.util.concurrent.ExecutorService, but is designed to be used in a distributed environment • executes tasks implemented as java.util.Runnable or java.util.concurrent.Callable asynchronously • scaling up via threads pool size • scaling out is automatic via addition of new Hazelcast instances Hazelcast as In-Memory Data Grid
  • 141. Hazelcast Executor Service • provides different ways to route tasks • any member • specific member • the member hosting a specific key • all or subset of members • supports future and execution callback Hazelcast as In-Memory Data Grid
  • 142. In-Memory Data Grid • Executor service configuration • Simple task • Sum task to sum values in the map • Distributed query Hazelcast as In-Memory Data Grid
  • 143. Hazelcast Executor Service Drawbacks Hazelcast as In-Memory Data Grid
  • 144. Hazelcast Executor Service Drawbacks • work-queue has no high availability • each member will create local ThreadPoolExecutors with ordinary work-queues that do the real work but not backed up by Hazelcast • if something would happen with that member, all unprocessed work will be lost Hazelcast as In-Memory Data Grid
  • 145. Hazelcast Executor Service Drawbacks • work-queue has no high availability • each member will create local ThreadPoolExecutors with ordinary work-queues that do the real work but not backed up by Hazelcast • if something would happen with that member, all unprocessed work will be lost • work-queue is not partitioned • it could be that one member has a lot of unprocessed work, and another is idle Hazelcast as In-Memory Data Grid
  • 146. Hazelcast Executor Service Drawbacks • work-queue has no high availability • each member will create local ThreadPoolExecutors with ordinary work-queues that do the real work but not backed up by Hazelcast • if something would happen with that member, all unprocessed work will be lost • work-queue is not partitioned • it could be that one member has a lot of unprocessed work, and another is idle • no customizable load balancing • in future load balancing could be done based on the number of unprocessed tasks, CPU load, memory load etc. Hazelcast as In-Memory Data Grid
  • 147. Other Hazelcast Useful Features Other Hazelcast Useful Features
  • 148. Other Hazelcast Useful Features • custom (de)serialization mechanism including support for: • Kryo • Jackson Smile • Protobuf • entry processor • locking • distributed topic • SPI (service programming interface) to create own distributed services/structures Other Hazelcast Useful Features
  • 151. • still quite buggy • memory leaks Hazelcast Drawbacks Hazelcast Drawbacks
  • 152. • still quite buggy • memory leaks • poor documentation for more complex cases Hazelcast Drawbacks Hazelcast Drawbacks
  • 153. • still quite buggy • memory leaks • poor documentation for more complex cases • missing useful features: • update configuration in running cluster • load balancing for executor service • only map is really distributed & partitioned Hazelcast Drawbacks Hazelcast Drawbacks
  • 154. • still quite buggy • memory leaks • poor documentation for more complex cases • missing useful features: • update configuration in running cluster • load balancing for executor service • only map is really distributed & partitioned • enterprise edition costs money (about $7k per node), but includes: • elastic memory, i.e. off-heap memory • data security • C# and C++ clients • management center with no limits Hazelcast Drawbacks Hazelcast Drawbacks
  • 155. Hazelcast vs. Infinispan Hazelcast vs. Infinispan
  • 156. Hazelcast vs. Infinispan Hazelcast vs. Infinispan Infinispan Hazelcast Pros • backed by relatively large company for use in largely distributed environments (JBoss) • been in active use for several years • well-written documentation • a lot of examples of different • easy setup • more performant than Infinispan • simple node/cluster discovery mechanism • relies on only 1 jar to be included on classpath Cons • relies on JGroups that proven to be buggy especially under high load • backed by a startup based in Palo Alto and Turkey
  • 157. Hazelcast is on a Rise Hazelcast is on a Rise
  • 158. Hazelcast is on a Rise Hazelcast is on a Rise
  • 159. • Funding • received $13.5 million in 2 rounds from 2 investors • most recent funding: $11 Million Series B on September 18, 2014 Hazelcast is on a Rise Hazelcast is on a Rise
  • 160. • Funding • received $13.5 million in 2 rounds from 2 investors • most recent funding: $11 Million Series B on September 18, 2014 • Greg Luck • creator and founder of Ehcache, the leading open source java cache • former CTO of Terracotta at Software AG • co-specification lead for JCache, the Java Standard for Caching in Spring and Java EE 8 • in January 2014, Greg Luck joined Hazelcast as CTO. On 18th of June, 2014, Hazelcast announced the appointment of Greg Luck as CEO. Hazelcast is on a Rise Hazelcast is on a Rise
  • 161. • Funding • received $13.5 million in 2 rounds from 2 investors • most recent funding: $11 Million Series B on September 18, 2014 • Greg Luck • creator and founder of Ehcache, the leading open source java cache • former CTO of Terracotta at Software AG • co-specification lead for JCache, the Java Standard for Caching in Spring and Java EE 8 • in January 2014, Greg Luck joined Hazelcast as CTO. On 18th of June, 2014, Hazelcast announced the appointment of Greg Luck as CEO. • JCache • on 29th of September, 2014, on the opening day of JavaOne Hazelcast announced the release of Hazelcast 3.3.1 JCache, the JCache compatible version of Hazelcast Hazelcast is on a Rise Hazelcast is on a Rise
  • 162. Thanks! Questions? Design by Distributed Applications using Hazelcast by Taras Matyashovsky
  • 163. References • http://docs.oracle.com/cd/E18686_01/coh.37/e18677/cache_intro.htm • http://coherence.oracle.com/display/COH31UG/Read-Through,+Write-Through,+Refresh-Ahead+and+Write- Behind+Caching • http://blog.tekmindsolutions.com/oracle-coherence-diffrence-between-replicated-cache-vs-partitioneddistributed- References cache/ • http://www.slideshare.net/MaxAlexejev/from-distributed-caches-to-inmemory-data-grids • http://www.slideshare.net/jaxlondon2012/clustering-your-application-with-hazelcast • http://gridgaintech.wordpress.com/2013/10/19/distributed-caching-is-dead-long-live/ • http://hazelcast.com/resources/mastering-hazelcast/ • http://gridgain.com/in-memory-database-vs-in-memory-data-grid-revisited/ • http://hazelcast.com/resources/thinking-distributed-the-hazelcast-way/ • http://www.prleap.com/pr/228862/hazelcast-releases-jcache-implementation-at • http://www.crunchbase.com/organization/hazelcast/funding-rounds • https://github.com/tmatyashovsky/hazelcast-samples/ • https://github.com/tmatyashovsky/hazelcast-samples-javaday-kyiv