SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeperSaurav Haloi
 
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonThrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonIgor Anishchenko
 
Cassandra Introduction & Features
Cassandra Introduction & FeaturesCassandra Introduction & Features
Cassandra Introduction & FeaturesDataStax Academy
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsScalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsJonas Bonér
 
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...Lucas Jellema
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우if kakao
 
Data Streaming with Apache Kafka & MongoDB
Data Streaming with Apache Kafka & MongoDBData Streaming with Apache Kafka & MongoDB
Data Streaming with Apache Kafka & MongoDBconfluent
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseenissoz
 
Introduction to apache kafka, confluent and why they matter
Introduction to apache kafka, confluent and why they matterIntroduction to apache kafka, confluent and why they matter
Introduction to apache kafka, confluent and why they matterPaolo Castagna
 
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
Evaluation of TPC-H on Spark and Spark SQL in ALOJAEvaluation of TPC-H on Spark and Spark SQL in ALOJA
Evaluation of TPC-H on Spark and Spark SQL in ALOJADataWorks Summit
 
Writing Scalable Software in Java
Writing Scalable Software in JavaWriting Scalable Software in Java
Writing Scalable Software in JavaRuben Badaró
 
Kafka Overview
Kafka OverviewKafka Overview
Kafka Overviewiamtodor
 
Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®confluent
 
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)Jean-Paul Azar
 
Evening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in FlinkEvening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in FlinkFlink Forward
 
A visual introduction to Apache Kafka
A visual introduction to Apache KafkaA visual introduction to Apache Kafka
A visual introduction to Apache KafkaPaul Brebner
 

Was ist angesagt? (20)

Kafka 101
Kafka 101Kafka 101
Kafka 101
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
 
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonThrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased Comparison
 
Cassandra Introduction & Features
Cassandra Introduction & FeaturesCassandra Introduction & Features
Cassandra Introduction & Features
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsScalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns
 
HazelCast
HazelCastHazelCast
HazelCast
 
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우
 
Data Streaming with Apache Kafka & MongoDB
Data Streaming with Apache Kafka & MongoDBData Streaming with Apache Kafka & MongoDB
Data Streaming with Apache Kafka & MongoDB
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBase
 
Introduction to apache kafka, confluent and why they matter
Introduction to apache kafka, confluent and why they matterIntroduction to apache kafka, confluent and why they matter
Introduction to apache kafka, confluent and why they matter
 
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
Evaluation of TPC-H on Spark and Spark SQL in ALOJAEvaluation of TPC-H on Spark and Spark SQL in ALOJA
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
 
Writing Scalable Software in Java
Writing Scalable Software in JavaWriting Scalable Software in Java
Writing Scalable Software in Java
 
Kafka presentation
Kafka presentationKafka presentation
Kafka presentation
 
Kafka Overview
Kafka OverviewKafka Overview
Kafka Overview
 
Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®
 
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
 
Evening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in FlinkEvening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in Flink
 
A visual introduction to Apache Kafka
A visual introduction to Apache KafkaA visual introduction to Apache Kafka
A visual introduction to Apache Kafka
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 

Andere mochten auch

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
 
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
 
From distributed caches to in-memory data grids
From distributed caches to in-memory data gridsFrom distributed caches to in-memory data grids
From distributed caches to in-memory data gridsMax Alexejev
 
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
 

Andere mochten auch (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...
 
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
 
From distributed caches to in-memory data grids
From distributed caches to in-memory data gridsFrom distributed caches to in-memory data grids
From distributed caches to in-memory data grids
 
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
 

Ähnlich wie 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
 
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
 
Open vStorage Road show 2015 Q1
Open vStorage Road show 2015 Q1Open vStorage Road show 2015 Q1
Open vStorage Road show 2015 Q1wim_provoost
 

Ähnlich wie 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]
 
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
 
Open vStorage Road show 2015 Q1
Open vStorage Road show 2015 Q1Open vStorage Road show 2015 Q1
Open vStorage Road show 2015 Q1
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSneha Padhiar
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
Curve setting (Basic Mine Surveying)_MI10412MI.pptx
Curve setting (Basic Mine Surveying)_MI10412MI.pptxCurve setting (Basic Mine Surveying)_MI10412MI.pptx
Curve setting (Basic Mine Surveying)_MI10412MI.pptxRomil Mishra
 
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfalene1
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Coursebim.edu.pl
 
Detection&Tracking - Thermal imaging object detection and tracking
Detection&Tracking - Thermal imaging object detection and trackingDetection&Tracking - Thermal imaging object detection and tracking
Detection&Tracking - Thermal imaging object detection and trackinghadarpinhas1
 
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...gerogepatton
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptJohnWilliam111370
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionSneha Padhiar
 
Forming section troubleshooting checklist for improving wire life (1).ppt
Forming section troubleshooting checklist for improving wire life (1).pptForming section troubleshooting checklist for improving wire life (1).ppt
Forming section troubleshooting checklist for improving wire life (1).pptNoman khan
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Communityprachaibot
 
Novel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsNovel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsResearcher Researcher
 
Javier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptxJavier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptxJavier Fernández Muñoz
 
The Satellite applications in telecommunication
The Satellite applications in telecommunicationThe Satellite applications in telecommunication
The Satellite applications in telecommunicationnovrain7111
 
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxTriangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxRomil Mishra
 
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...IJAEMSJORNAL
 
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESCME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESkarthi keyan
 
priority interrupt computer organization
priority interrupt computer organizationpriority interrupt computer organization
priority interrupt computer organizationchnrketan
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 

Kürzlich hochgeladen (20)

SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
Curve setting (Basic Mine Surveying)_MI10412MI.pptx
Curve setting (Basic Mine Surveying)_MI10412MI.pptxCurve setting (Basic Mine Surveying)_MI10412MI.pptx
Curve setting (Basic Mine Surveying)_MI10412MI.pptx
 
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Course
 
Detection&Tracking - Thermal imaging object detection and tracking
Detection&Tracking - Thermal imaging object detection and trackingDetection&Tracking - Thermal imaging object detection and tracking
Detection&Tracking - Thermal imaging object detection and tracking
 
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based question
 
Forming section troubleshooting checklist for improving wire life (1).ppt
Forming section troubleshooting checklist for improving wire life (1).pptForming section troubleshooting checklist for improving wire life (1).ppt
Forming section troubleshooting checklist for improving wire life (1).ppt
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Community
 
Novel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsNovel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending Actuators
 
Javier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptxJavier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptx
 
Versatile Engineering Construction Firms
Versatile Engineering Construction FirmsVersatile Engineering Construction Firms
Versatile Engineering Construction Firms
 
The Satellite applications in telecommunication
The Satellite applications in telecommunicationThe Satellite applications in telecommunication
The Satellite applications in telecommunication
 
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxTriangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
 
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
 
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESCME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
 
priority interrupt computer organization
priority interrupt computer organizationpriority interrupt computer organization
priority interrupt computer organization
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 

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