SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
© 2015 Hazelcast Inc. Confidential & Proprietary 1
FUAD MALIKOV
CO-FOUNDER
Building Scalable Applications with
Hazelcast
© 2015 Hazelcast Inc. Confidential & Proprietary 2
What Is Hazelcast?
Hazelcast is a distributed,
highly available and scalable
Open Source In-Memory Data Grid
© 2015 Hazelcast Inc. Confidential & Proprietary 3
In Memory Data Grid
01001
10101
01010
In Memory
Data Computing
In Memory
Data Messaging ++In Memory
Data Storage
© 2015 Hazelcast Inc. Confidential & Proprietary 4
java.util.Map
import java.util.HashMap;
import java.util.Map;
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(1, "Paris");
map.put(2, "London");
map.put(3, "San Francisco");
String oldValue = map.remove(2);
}
© 2015 Hazelcast Inc. Confidential & Proprietary 5
java.util.concurrent.ConcurrentMap
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
public static void main(String[] args) {
ConcurrentMap<Integer, String> map = new ConcurrentHashMap<>();
map.put(1, "Paris");
map.put(2, "London");
map.put(3, "San Francisco");
String oldValue = map.remove(2);
}
© 2015 Hazelcast Inc. Confidential & Proprietary 6
Distributed Map
import java.util.concurrent.ConcurrentMap;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
public static void main(String[] args) {
HazelcastInstance h = Hazelcast.newHazelcastInstance();
ConcurrentMap<Integer, String> map = h.getMap("myMap");
map.put(1, "Paris");
map.put(2, "London");
map.put(3, "San Francisco");
String oldValue = map.remove(2);
}
© 2015 Hazelcast Inc. Confidential & Proprietary 7
Ecosystem Traction
Dozens of Commercial and Open Source Projects Embed Hazelcast
© 2015 Hazelcast Inc. Confidential & Proprietary 8
Demo
© 2015 Hazelcast Inc. Confidential & Proprietary 9
Why Hazelcast?
Scale-out Computing enables cluster capacity to be
increased or decreased on-demand
Resilience with automatic recovery from member failures
without losing data while minimizing performance impact on
running applications
Programming Model provides a way for developers to easily
program a cluster application as if it is a single process
Fast Application Performance enables very large data sets
to be held in main memory for real-time performance
© 2015 Hazelcast Inc. Confidential & Proprietary 10
Rebalance Data on New Node
10	
  
© 2015 Hazelcast Inc. Confidential & Proprietary 11
Distributed Maps
Fixed number of partitions (default 271)
Each key falls into a partition
partitionId = hash(keyData)%PARTITION_COUNT
Partition ownerships are reassigned upon membership change
A B C
© 2015 Hazelcast Inc. Confidential & Proprietary 12
New Node Added
DA B C
© 2015 Hazelcast Inc. Confidential & Proprietary 13
Migration
DA B C
© 2015 Hazelcast Inc. Confidential & Proprietary 14
Migration
DA B C
© 2015 Hazelcast Inc. Confidential & Proprietary 15
Migration
DA B C
© 2015 Hazelcast Inc. Confidential & Proprietary 16
Migration
DA B C
© 2015 Hazelcast Inc. Confidential & Proprietary 17
Migration
DA B C
© 2015 Hazelcast Inc. Confidential & Proprietary 18
Migration
DA B C
© 2015 Hazelcast Inc. Confidential & Proprietary 19
Migration Complete
DA B C
© 2015 Hazelcast Inc. Confidential & Proprietary 20
Data Safety when Node Dies
20	
  
© 2015 Hazelcast Inc. Confidential & Proprietary 21
Node Crashes
DA B C
Crash
© 2015 Hazelcast Inc. Confidential & Proprietary 22
Backups Are Restored
DA B C
Crash
© 2015 Hazelcast Inc. Confidential & Proprietary 23
Backups Are Restored
DA B C
Crash
© 2015 Hazelcast Inc. Confidential & Proprietary 24
Backups Are Restored
DA B C
Crash
© 2015 Hazelcast Inc. Confidential & Proprietary 25
Backups Are Restored
DA B C
Crash
© 2015 Hazelcast Inc. Confidential & Proprietary 26
Backups Are Restored
DA B C
Crash
© 2015 Hazelcast Inc. Confidential & Proprietary 27
Backups Are Restored
DA B C
Crash
© 2015 Hazelcast Inc. Confidential & Proprietary 28
Backups Are Restored
DA B C
Crash
© 2015 Hazelcast Inc. Confidential & Proprietary 29
Backups Are Restored
DA B C
Crash
© 2015 Hazelcast Inc. Confidential & Proprietary 30
Recovery Is Complete
DA C
© 2015 Hazelcast Inc. Confidential & Proprietary 31
Deployment Strategies
© 2015 Hazelcast Inc. Confidential & Proprietary 32
Deployment Options
Great for early stages of rapid
application development and iteration
Necessary for scale up or scale out
deployments – decouples
upgrading of clients and cluster for
long term TCO
Embedded Hazelcast
Hazelcast Node
1
Applications
Java API
Client-Server Mode
Hazelcast
Node 3
Java API
Applications
Java API
Applications
Java API
Applications
Hazelcast
Node 2
Hazelcast
Node 1
Hazelcast Node
2
Applications
Java API
Hazelcast Node
3
Applications
Java API
© 2015 Hazelcast Inc. Confidential & Proprietary 33
Easy API
// Creating a new Hazelcast node
HazelcastInstance hz = Hazelcast.newHazelcastInstance();
// Getting a Map, Queue, Topic, ...
Map map = hz.getMap("my-map");
Queue queue = hz.getQueue("my-queue");
ITopic topic = hz.getTopic("my-topic");
//Creating a Hazelcast Client
HazelcastInstance client = Hazelcast.newHazelcastClient();
// Shutting down the node
hz.shutdown();
© 2015 Hazelcast Inc. Confidential & Proprietary 34
Feature Overview
© 2015 Hazelcast Inc. Confidential & Proprietary 35
Easy to Unit Test
public class SomeTestCase {
private HazelcastInstance[] instances;
@Before
public void before() throws Exception {
// Multiple instances on the same JVM
instances = new HazelcastInstance[2];
instances[0] = Hazelcast.newHazelcastInstance();
instances[1] = Hazelcast.newHazelcastInstance();
}
@After
public void after() throws Exception {
Hazelcast.shutdownAll();
}
}
© 2015 Hazelcast Inc. Confidential & Proprietary 36
IM Data Store (Caching) Use Case
Database Caching Use-Case
Business Systems
A B C
RDBMS Mainframe
MongoDB
NoSQL
REST
Scale
Hazelcast
HD
Cache
Dist.
Compute
Dist.
Message
© 2015 Hazelcast Inc. Confidential & Proprietary 37
Java Collection API: Map, List, Set, Queue
JCache
High Density Memory Store
Hibernate 2nd Level Cache
Web Session Replication: Tomcat, Jetty
Predicate API: Indexes, SQL Query
Persistence: Map/Queue Store & Loader. Write Behind/Through
Eviction
Near Cache
Transactions: Local & XA
WAN & DR Replication
Memcached Interface
IM Data Store (Caching) Features
HD
Cache
Dist.
Compute
Dist.
Message
© 2015 Hazelcast Inc. Confidential & Proprietary 38
Map API
interface com.hazelcast.core.IMap<K, V>
extends java.util.Map, java.util.ConcurrentMap
HazelcastInstance hz = getHazelcastInstance();
//java.util.concurrent.ConcurrentMap implementation
IMap<String, User> hzMap = hz.getMap("users");
hzMap.put("Peter", new User("Peter", "Veentjer"));
hzMap.putIfAbsent("Peter", new User("Peter", "Veentjer"));
//Distributed Lock
hzMap.lock("Peter");
User peter = map.get("Peter");
© 2015 Hazelcast Inc. Confidential & Proprietary 39
Persistence API
public class MapStorage
implements MapStore<String, User>, MapLoader<String, User> {
// Some methods missing ...
@Override public User load(String key) { return loadValueDB(key); }
@Override public Set<String> loadAllKeys() { return loadKeysDB(); }
@Override public void delete(String key) { deleteDB(key); }
@Override public void store(String key, User value) {
storeToDatabase(key, value);
}
}
<map name="users">
<map-store enabled="true">
<class-name>com.hazelcast.example.MapStorage</class-name>
<write-delay-seconds>0</write-delay-seconds>
</map-store>
</map>
© 2015 Hazelcast Inc. Confidential & Proprietary 40
JCache API
// Retrieve the CachingProvider which is automatically baced by
// the chosen Hazelcast server or client provider
CachingProvider cachingProvider = Caching.getCachingProvider();
// Create a CacheManager
CacheManager cacheManager = cachingProvider.getCacheManager();
// Cache<String, String> cache = cacheManager
// .getCache( name, String.class, String.class );
// Create a simple but typesafe configuration for the cache
CompleteConfiguration<String, String> config =
new MutableConfiguration<String, String>()
.setTypes( String.class, String.class );
© 2015 Hazelcast Inc. Confidential & Proprietary 41
JCache API
// Create and get the cache
Cache<String, String> cache = cacheManager
.createCache( "example", config );
// Alternatively to request an already existing cache
Cache<String, String> cache = cacheManager
.getCache( name, String.class, String.class );
// Put a value into the cache
cache.put( "world", "Hello World" );
// Retrieve the value again from the cache
String value = cache.get( "world" );
System.out.println( value );
© 2015 Hazelcast Inc. Confidential & Proprietary 42
High Density Caching
On-Heap Memory Store
(Objects Stored as Objects)
High-Density Memory Store
(Objects Serialized and Stored as
Bytes)
On-Heap SLAB
Allocator*
On-Heap SLAB
Allocator*
2-4GB
(Limited by
Garbage
Collection)
0-1TB
(Limited by
Machine RAM)
* coming in 3.6
Memory Stores
• Member
• Client
(Near Cache)
RAM in JVM Process
APIs JCache
(ICache)
Map
(IMap)
HD
Cache
Dist.
Compute
Dist.
Message
© 2015 Hazelcast Inc. Confidential & Proprietary 43
On Heap Vs. High-Density
Memory Management
On Heap Memory HD Memory v2
0 MB Native 3.3 GB
3.9 GB Heap Storage 0.6 GB
9 (4900 ms) Major GC 0 (0 ms)
31 (4200 ms) Minor GC 356 (349 ms)
Node Used
Heap
Total
Heap
Max.
Heap
Heap Usage
Percentage
Used Heap: 0.2 GB
192.168.1.10:5701 57 MB 229 MB 910 MB 6.28%
Memory Utilization
Home Offheap-test
Node Used Heap: 3.9 GB
192.168.1.10:5701 3933 MB 4658MB 4653MB 84.45%
Memory Utilization
Home
Used
Heap
Total
Heap
Max.
Heap
Heap Usage
Percentage
HD
Cache
Dist.
Compute
Dist.
Message
Example: On Heap Memory Example: HD Memory v2
© 2015 Hazelcast Inc. Confidential & Proprietary 44
Hazelcast Servers
Hazelcast Server
JVM [Memory]
IM Distributed Computing Use Case
A B C
Business Logic
Data Data Data
CE = Compute Engine
Result
Business / Processing Logic
Result
TCP / IP
Client Client
HD
Cache
Dist.
Compute
Dist.
Message
© 2015 Hazelcast Inc. Confidential & Proprietary 45
IM Distributed Computing Feature
HD
Cache
Dist.
Compute
Dist.
Message
Java Concurrency API
(Lock, Semaphore, AtomicLong, AtomicReference, Executor Service, Blocking Queue)
Entry and Item Listeners
Entry Processor
Aggregators
Map/Reduce
Data Affinity
Continues Query
Map Interceptors
Delta Update
© 2015 Hazelcast Inc. Confidential & Proprietary 46
Lock API
HazelcastInstance hz = getHazelcastInstance();
// Distributed Reentrant
L​ock l​ock = hz.getLock("myLock");
l​ock.lock();
try {
// Do something
} finally {
l​ock.unlock();
}
© 2015 Hazelcast Inc. Confidential & Proprietary 47
Executor Service API
public interface com.hazelcast.core.IExecutorService
extends java.util.concurrent.ExecutorService
HazelcastInstance hz = getHazelcastInstance();
//java.util.concurrent.ExecutorService implementation
IExecutorService es = hz.getExecutorService("name");
es.executeOnAllMembers(buildRunnable());
es.executeOnKeyOwner(buildRunnable(), "Peter");
es.execute(buildRunnable());
Map<..> futures = es.submitToAllMembers(buildCallable());
Future<..> future = es.submitToKeyOwner(buildCallable(), "Peter");
es.submitToAllMembers(buildCallable(), buildCallback());
es.submitToKeyOwner(buildCallable(), "Peter", buildCallback());
© 2015 Hazelcast Inc. Confidential & Proprietary 48
Map/Reduce API
HazelcastInstance hz = getHazelcastInstance();
Map users = hz.getMap("users");
JobTracker tracker = hz.getJobTracker("default");
KeyValueSource source = KeyValueSource.fromMap(users);
Job job = tracker.newJob(source);
ICompleteFuture future = job.mapper(new MyMapper())
.reducer(new MyReducer())
.submit();
Map result = future.get();
© 2015 Hazelcast Inc. Confidential & Proprietary 49
Aggregations API
HazelcastInstance hz = getHazelcastInstance();
Map users = hz.getMap("users");
int sum = users.aggregate(
Supplier.all((user) -> user.getSalary()),
Aggregations.longSum()
);
© 2015 Hazelcast Inc. Confidential & Proprietary 50
IM Distributed Messaging Use Case
Hazelcast Distributed
Topic Bus
Hazelcast
Topic
Hazelcast
Node 1
Hazelcast
Node 2
Hazelcast
Node 3
MSG
Subscribes
Delivers
Subscribes
Delivers
HD
Cache
Dist.
Compute
Dist.
Message
© 2015 Hazelcast Inc. Confidential & Proprietary 51
Queue
Topic (Pub/Sub)
Event Listeners
Ring Buffers
IM Distributed Messaging Features
HD
Cache
Dist.
Compute
Dist.
Message
© 2015 Hazelcast Inc. Confidential & Proprietary 52
Queue API
interface com.hazelcast.core.IQueue<E>
extends java.util.concurrent.BlockingQueue
HazelcastInstance hz = getHazelcastInstance();
//java.util.concurrent.BlockingQueue implementation
IQueue<Task> queue = hz.getQueue("tasks");
queue.offer(newTask());
queue.offer(newTask(), 500, TimeUnit.MILLISECONDS);
Task task = queue.poll();
Task task = queue.poll(100, TimeUnit.MILLISECONDS);
Task task = queue.take();
© 2015 Hazelcast Inc. Confidential & Proprietary 53
Topic API
public class Example implements MessageListener<String> {
public void sendMessage {
HazelcastInstance hz = getHazelcastInstance();
ITopic<String> topic = hz.getTopic("topic");
topic.addMessageListener(this);
topic.publish("Hello World");
}
@Override
public void onMessage(Message<String> message) {
System.out.println("Got message: " + message.getMessageObject());
}
}
Thank you
@fuadm, @hazelcast
hazelcast@googlegroups.com
http://www.hazelcast.com
http://github.com/hazelcast/hazelcast

Contenu connexe

Tendances

Introduction to hazelcast
Introduction to hazelcastIntroduction to hazelcast
Introduction to hazelcastEmin Demirci
 
Time to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data GridsTime to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data GridsHazelcast
 
Distributed applications using Hazelcast
Distributed applications using HazelcastDistributed applications using Hazelcast
Distributed applications using HazelcastTaras Matyashovsky
 
Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018Rahul Gupta
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018harvraja
 
Scaling DataStax in Docker
Scaling DataStax in DockerScaling DataStax in Docker
Scaling DataStax in DockerDataStax
 
Distributed caching-computing v3.8
Distributed caching-computing v3.8Distributed caching-computing v3.8
Distributed caching-computing v3.8Rahul Gupta
 
Deep Dive - Usage of on premises data gateway for hybrid integration scenarios
Deep Dive - Usage of on premises data gateway for hybrid integration scenariosDeep Dive - Usage of on premises data gateway for hybrid integration scenarios
Deep Dive - Usage of on premises data gateway for hybrid integration scenariosSajith C P Nair
 
Going native with Apache Cassandra
Going native with Apache CassandraGoing native with Apache Cassandra
Going native with Apache CassandraJohnny Miller
 
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and IgniteJCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and IgniteJoseph Kuo
 
From Monolith to Microservices with Cassandra, Grpc, and Falcor (Luke Tillman...
From Monolith to Microservices with Cassandra, Grpc, and Falcor (Luke Tillman...From Monolith to Microservices with Cassandra, Grpc, and Falcor (Luke Tillman...
From Monolith to Microservices with Cassandra, Grpc, and Falcor (Luke Tillman...DataStax
 
Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1Johnny Miller
 
Antoine Coetsier - billing the cloud
Antoine Coetsier - billing the cloudAntoine Coetsier - billing the cloud
Antoine Coetsier - billing the cloudShapeBlue
 
Cassandra Tuning - above and beyond
Cassandra Tuning - above and beyondCassandra Tuning - above and beyond
Cassandra Tuning - above and beyondMatija Gobec
 
HPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyHPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyPeter Clapham
 
Red Hat Ceph Storage: Past, Present and Future
Red Hat Ceph Storage: Past, Present and FutureRed Hat Ceph Storage: Past, Present and Future
Red Hat Ceph Storage: Past, Present and FutureRed_Hat_Storage
 
Apache Accumulo Overview
Apache Accumulo OverviewApache Accumulo Overview
Apache Accumulo OverviewBill Havanki
 
Running secured Spark job in Kubernetes compute cluster and integrating with ...
Running secured Spark job in Kubernetes compute cluster and integrating with ...Running secured Spark job in Kubernetes compute cluster and integrating with ...
Running secured Spark job in Kubernetes compute cluster and integrating with ...DataWorks Summit
 

Tendances (20)

Introduction to hazelcast
Introduction to hazelcastIntroduction to hazelcast
Introduction to hazelcast
 
Time to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data GridsTime to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data Grids
 
Hazelcast 101
Hazelcast 101Hazelcast 101
Hazelcast 101
 
Distributed applications using Hazelcast
Distributed applications using HazelcastDistributed applications using Hazelcast
Distributed applications using Hazelcast
 
Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018
 
Scaling DataStax in Docker
Scaling DataStax in DockerScaling DataStax in Docker
Scaling DataStax in Docker
 
Distributed caching-computing v3.8
Distributed caching-computing v3.8Distributed caching-computing v3.8
Distributed caching-computing v3.8
 
Deep Dive - Usage of on premises data gateway for hybrid integration scenarios
Deep Dive - Usage of on premises data gateway for hybrid integration scenariosDeep Dive - Usage of on premises data gateway for hybrid integration scenarios
Deep Dive - Usage of on premises data gateway for hybrid integration scenarios
 
Going native with Apache Cassandra
Going native with Apache CassandraGoing native with Apache Cassandra
Going native with Apache Cassandra
 
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and IgniteJCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
 
From Monolith to Microservices with Cassandra, Grpc, and Falcor (Luke Tillman...
From Monolith to Microservices with Cassandra, Grpc, and Falcor (Luke Tillman...From Monolith to Microservices with Cassandra, Grpc, and Falcor (Luke Tillman...
From Monolith to Microservices with Cassandra, Grpc, and Falcor (Luke Tillman...
 
Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1
 
Antoine Coetsier - billing the cloud
Antoine Coetsier - billing the cloudAntoine Coetsier - billing the cloud
Antoine Coetsier - billing the cloud
 
What's New in Apache Hive
What's New in Apache HiveWhat's New in Apache Hive
What's New in Apache Hive
 
Cassandra Tuning - above and beyond
Cassandra Tuning - above and beyondCassandra Tuning - above and beyond
Cassandra Tuning - above and beyond
 
HPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyHPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journey
 
Red Hat Ceph Storage: Past, Present and Future
Red Hat Ceph Storage: Past, Present and FutureRed Hat Ceph Storage: Past, Present and Future
Red Hat Ceph Storage: Past, Present and Future
 
Apache Accumulo Overview
Apache Accumulo OverviewApache Accumulo Overview
Apache Accumulo Overview
 
Running secured Spark job in Kubernetes compute cluster and integrating with ...
Running secured Spark job in Kubernetes compute cluster and integrating with ...Running secured Spark job in Kubernetes compute cluster and integrating with ...
Running secured Spark job in Kubernetes compute cluster and integrating with ...
 

En vedette

From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
 
Hazelcast For Beginners (Paris JUG-1)
Hazelcast For Beginners (Paris JUG-1)Hazelcast For Beginners (Paris JUG-1)
Hazelcast For Beginners (Paris JUG-1)Emrah Kocaman
 
Hazelcast
HazelcastHazelcast
Hazelcastoztalip
 
[OracleCode SF] In memory analytics with apache spark and hazelcast
[OracleCode SF] In memory analytics with apache spark and hazelcast[OracleCode SF] In memory analytics with apache spark and hazelcast
[OracleCode SF] In memory analytics with apache spark and hazelcastViktor Gamov
 
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
 
Phoenix for Rubyists
Phoenix for RubyistsPhoenix for Rubyists
Phoenix for RubyistsMike North
 
HighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data GridsHighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data GridsAlexey Kharlamov
 
Async Gateway или Разработка системы распределенных вычислений с нуля
Async Gateway или Разработка системы распределенных вычислений с нуляAsync Gateway или Разработка системы распределенных вычислений с нуля
Async Gateway или Разработка системы распределенных вычислений с нуляVitebsk Miniq
 
Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSuzquiano
 
50 nouvelles choses que l'on peut faire en Java 8
50 nouvelles choses que l'on peut faire en Java 850 nouvelles choses que l'on peut faire en Java 8
50 nouvelles choses que l'on peut faire en Java 8José Paumard
 
Алексей Николаенков, Devexperts
Алексей Николаенков, DevexpertsАлексей Николаенков, Devexperts
Алексей Николаенков, DevexpertsNata_Churda
 
Amazon cloud – готовим вместе
Amazon cloud – готовим вместеAmazon cloud – готовим вместе
Amazon cloud – готовим вместеVitebsk Miniq
 

En vedette (17)

From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
 
Hazelcast
HazelcastHazelcast
Hazelcast
 
Hazelcast For Beginners (Paris JUG-1)
Hazelcast For Beginners (Paris JUG-1)Hazelcast For Beginners (Paris JUG-1)
Hazelcast For Beginners (Paris JUG-1)
 
Hazelcast
HazelcastHazelcast
Hazelcast
 
[OracleCode SF] In memory analytics with apache spark and hazelcast
[OracleCode SF] In memory analytics with apache spark and hazelcast[OracleCode SF] In memory analytics with apache spark and hazelcast
[OracleCode SF] In memory analytics with apache spark and hazelcast
 
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
 
Hazelcast
HazelcastHazelcast
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
 
Phoenix for Rubyists
Phoenix for RubyistsPhoenix for Rubyists
Phoenix for Rubyists
 
HighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data GridsHighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data Grids
 
Async Gateway или Разработка системы распределенных вычислений с нуля
Async Gateway или Разработка системы распределенных вычислений с нуляAsync Gateway или Разработка системы распределенных вычислений с нуля
Async Gateway или Разработка системы распределенных вычислений с нуля
 
Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMS
 
50 nouvelles choses que l'on peut faire en Java 8
50 nouvelles choses que l'on peut faire en Java 850 nouvelles choses que l'on peut faire en Java 8
50 nouvelles choses que l'on peut faire en Java 8
 
Алексей Николаенков, Devexperts
Алексей Николаенков, DevexpertsАлексей Николаенков, Devexperts
Алексей Николаенков, Devexperts
 
Amazon cloud – готовим вместе
Amazon cloud – готовим вместеAmazon cloud – готовим вместе
Amazon cloud – готовим вместе
 

Similaire à Building scalable applications with hazelcast

Spring Meetup Paris - Getting Distributed with Hazelcast and Spring
Spring Meetup Paris - Getting Distributed with Hazelcast and SpringSpring Meetup Paris - Getting Distributed with Hazelcast and Spring
Spring Meetup Paris - Getting Distributed with Hazelcast and SpringEmrah Kocaman
 
Paul Angus (ShapeBlue) - Push infrastructure with Ansible #DOXLON
Paul Angus (ShapeBlue) - Push infrastructure with Ansible #DOXLONPaul Angus (ShapeBlue) - Push infrastructure with Ansible #DOXLON
Paul Angus (ShapeBlue) - Push infrastructure with Ansible #DOXLONOutlyer
 
Spring and Cloud Foundry; a Marriage Made in Heaven
Spring and Cloud Foundry; a Marriage Made in HeavenSpring and Cloud Foundry; a Marriage Made in Heaven
Spring and Cloud Foundry; a Marriage Made in HeavenJoshua Long
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with SpringJoshua Long
 
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...DataStax Academy
 
JavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleJavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleAnton Arhipov
 
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten ZiegelerOSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegelermfrancis
 
Where is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by exampleWhere is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by exampleRafał Leszko
 
Camel one v3-6
Camel one v3-6Camel one v3-6
Camel one v3-6wxdydx
 
Networking and Data Access with Eqela
Networking and Data Access with EqelaNetworking and Data Access with Eqela
Networking and Data Access with Eqelajobandesther
 
Storage Plug-ins
Storage Plug-ins Storage Plug-ins
Storage Plug-ins buildacloud
 
twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇twMVC
 
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 202010 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020Matt Raible
 
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex HenevaldCloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex Henevaldbuildacloud
 
Hazelcast for Terracotta Users
Hazelcast for Terracotta UsersHazelcast for Terracotta Users
Hazelcast for Terracotta UsersHazelcast
 
Build Your Own HiveMQ Extension
Build Your Own HiveMQ ExtensionBuild Your Own HiveMQ Extension
Build Your Own HiveMQ ExtensionHiveMQ
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Matt Raible
 
CloudStack Meetup Santa Clara
CloudStack Meetup Santa Clara CloudStack Meetup Santa Clara
CloudStack Meetup Santa Clara NetApp
 
Solid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupSolid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupShapeBlue
 

Similaire à Building scalable applications with hazelcast (20)

Spring Meetup Paris - Getting Distributed with Hazelcast and Spring
Spring Meetup Paris - Getting Distributed with Hazelcast and SpringSpring Meetup Paris - Getting Distributed with Hazelcast and Spring
Spring Meetup Paris - Getting Distributed with Hazelcast and Spring
 
Paul Angus (ShapeBlue) - Push infrastructure with Ansible #DOXLON
Paul Angus (ShapeBlue) - Push infrastructure with Ansible #DOXLONPaul Angus (ShapeBlue) - Push infrastructure with Ansible #DOXLON
Paul Angus (ShapeBlue) - Push infrastructure with Ansible #DOXLON
 
Spring and Cloud Foundry; a Marriage Made in Heaven
Spring and Cloud Foundry; a Marriage Made in HeavenSpring and Cloud Foundry; a Marriage Made in Heaven
Spring and Cloud Foundry; a Marriage Made in Heaven
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with Spring
 
Arquitecturas de microservicios - Medianet Software
Arquitecturas de microservicios   -  Medianet SoftwareArquitecturas de microservicios   -  Medianet Software
Arquitecturas de microservicios - Medianet Software
 
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
 
JavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleJavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassle
 
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten ZiegelerOSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
 
Where is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by exampleWhere is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by example
 
Camel one v3-6
Camel one v3-6Camel one v3-6
Camel one v3-6
 
Networking and Data Access with Eqela
Networking and Data Access with EqelaNetworking and Data Access with Eqela
Networking and Data Access with Eqela
 
Storage Plug-ins
Storage Plug-ins Storage Plug-ins
Storage Plug-ins
 
twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇
 
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 202010 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
 
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex HenevaldCloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
 
Hazelcast for Terracotta Users
Hazelcast for Terracotta UsersHazelcast for Terracotta Users
Hazelcast for Terracotta Users
 
Build Your Own HiveMQ Extension
Build Your Own HiveMQ ExtensionBuild Your Own HiveMQ Extension
Build Your Own HiveMQ Extension
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021
 
CloudStack Meetup Santa Clara
CloudStack Meetup Santa Clara CloudStack Meetup Santa Clara
CloudStack Meetup Santa Clara
 
Solid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupSolid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User Group
 

Dernier

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 

Dernier (20)

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

Building scalable applications with hazelcast

  • 1. © 2015 Hazelcast Inc. Confidential & Proprietary 1 FUAD MALIKOV CO-FOUNDER Building Scalable Applications with Hazelcast
  • 2. © 2015 Hazelcast Inc. Confidential & Proprietary 2 What Is Hazelcast? Hazelcast is a distributed, highly available and scalable Open Source In-Memory Data Grid
  • 3. © 2015 Hazelcast Inc. Confidential & Proprietary 3 In Memory Data Grid 01001 10101 01010 In Memory Data Computing In Memory Data Messaging ++In Memory Data Storage
  • 4. © 2015 Hazelcast Inc. Confidential & Proprietary 4 java.util.Map import java.util.HashMap; import java.util.Map; public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "Paris"); map.put(2, "London"); map.put(3, "San Francisco"); String oldValue = map.remove(2); }
  • 5. © 2015 Hazelcast Inc. Confidential & Proprietary 5 java.util.concurrent.ConcurrentMap import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; public static void main(String[] args) { ConcurrentMap<Integer, String> map = new ConcurrentHashMap<>(); map.put(1, "Paris"); map.put(2, "London"); map.put(3, "San Francisco"); String oldValue = map.remove(2); }
  • 6. © 2015 Hazelcast Inc. Confidential & Proprietary 6 Distributed Map import java.util.concurrent.ConcurrentMap; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; public static void main(String[] args) { HazelcastInstance h = Hazelcast.newHazelcastInstance(); ConcurrentMap<Integer, String> map = h.getMap("myMap"); map.put(1, "Paris"); map.put(2, "London"); map.put(3, "San Francisco"); String oldValue = map.remove(2); }
  • 7. © 2015 Hazelcast Inc. Confidential & Proprietary 7 Ecosystem Traction Dozens of Commercial and Open Source Projects Embed Hazelcast
  • 8. © 2015 Hazelcast Inc. Confidential & Proprietary 8 Demo
  • 9. © 2015 Hazelcast Inc. Confidential & Proprietary 9 Why Hazelcast? Scale-out Computing enables cluster capacity to be increased or decreased on-demand Resilience with automatic recovery from member failures without losing data while minimizing performance impact on running applications Programming Model provides a way for developers to easily program a cluster application as if it is a single process Fast Application Performance enables very large data sets to be held in main memory for real-time performance
  • 10. © 2015 Hazelcast Inc. Confidential & Proprietary 10 Rebalance Data on New Node 10  
  • 11. © 2015 Hazelcast Inc. Confidential & Proprietary 11 Distributed Maps Fixed number of partitions (default 271) Each key falls into a partition partitionId = hash(keyData)%PARTITION_COUNT Partition ownerships are reassigned upon membership change A B C
  • 12. © 2015 Hazelcast Inc. Confidential & Proprietary 12 New Node Added DA B C
  • 13. © 2015 Hazelcast Inc. Confidential & Proprietary 13 Migration DA B C
  • 14. © 2015 Hazelcast Inc. Confidential & Proprietary 14 Migration DA B C
  • 15. © 2015 Hazelcast Inc. Confidential & Proprietary 15 Migration DA B C
  • 16. © 2015 Hazelcast Inc. Confidential & Proprietary 16 Migration DA B C
  • 17. © 2015 Hazelcast Inc. Confidential & Proprietary 17 Migration DA B C
  • 18. © 2015 Hazelcast Inc. Confidential & Proprietary 18 Migration DA B C
  • 19. © 2015 Hazelcast Inc. Confidential & Proprietary 19 Migration Complete DA B C
  • 20. © 2015 Hazelcast Inc. Confidential & Proprietary 20 Data Safety when Node Dies 20  
  • 21. © 2015 Hazelcast Inc. Confidential & Proprietary 21 Node Crashes DA B C Crash
  • 22. © 2015 Hazelcast Inc. Confidential & Proprietary 22 Backups Are Restored DA B C Crash
  • 23. © 2015 Hazelcast Inc. Confidential & Proprietary 23 Backups Are Restored DA B C Crash
  • 24. © 2015 Hazelcast Inc. Confidential & Proprietary 24 Backups Are Restored DA B C Crash
  • 25. © 2015 Hazelcast Inc. Confidential & Proprietary 25 Backups Are Restored DA B C Crash
  • 26. © 2015 Hazelcast Inc. Confidential & Proprietary 26 Backups Are Restored DA B C Crash
  • 27. © 2015 Hazelcast Inc. Confidential & Proprietary 27 Backups Are Restored DA B C Crash
  • 28. © 2015 Hazelcast Inc. Confidential & Proprietary 28 Backups Are Restored DA B C Crash
  • 29. © 2015 Hazelcast Inc. Confidential & Proprietary 29 Backups Are Restored DA B C Crash
  • 30. © 2015 Hazelcast Inc. Confidential & Proprietary 30 Recovery Is Complete DA C
  • 31. © 2015 Hazelcast Inc. Confidential & Proprietary 31 Deployment Strategies
  • 32. © 2015 Hazelcast Inc. Confidential & Proprietary 32 Deployment Options Great for early stages of rapid application development and iteration Necessary for scale up or scale out deployments – decouples upgrading of clients and cluster for long term TCO Embedded Hazelcast Hazelcast Node 1 Applications Java API Client-Server Mode Hazelcast Node 3 Java API Applications Java API Applications Java API Applications Hazelcast Node 2 Hazelcast Node 1 Hazelcast Node 2 Applications Java API Hazelcast Node 3 Applications Java API
  • 33. © 2015 Hazelcast Inc. Confidential & Proprietary 33 Easy API // Creating a new Hazelcast node HazelcastInstance hz = Hazelcast.newHazelcastInstance(); // Getting a Map, Queue, Topic, ... Map map = hz.getMap("my-map"); Queue queue = hz.getQueue("my-queue"); ITopic topic = hz.getTopic("my-topic"); //Creating a Hazelcast Client HazelcastInstance client = Hazelcast.newHazelcastClient(); // Shutting down the node hz.shutdown();
  • 34. © 2015 Hazelcast Inc. Confidential & Proprietary 34 Feature Overview
  • 35. © 2015 Hazelcast Inc. Confidential & Proprietary 35 Easy to Unit Test public class SomeTestCase { private HazelcastInstance[] instances; @Before public void before() throws Exception { // Multiple instances on the same JVM instances = new HazelcastInstance[2]; instances[0] = Hazelcast.newHazelcastInstance(); instances[1] = Hazelcast.newHazelcastInstance(); } @After public void after() throws Exception { Hazelcast.shutdownAll(); } }
  • 36. © 2015 Hazelcast Inc. Confidential & Proprietary 36 IM Data Store (Caching) Use Case Database Caching Use-Case Business Systems A B C RDBMS Mainframe MongoDB NoSQL REST Scale Hazelcast HD Cache Dist. Compute Dist. Message
  • 37. © 2015 Hazelcast Inc. Confidential & Proprietary 37 Java Collection API: Map, List, Set, Queue JCache High Density Memory Store Hibernate 2nd Level Cache Web Session Replication: Tomcat, Jetty Predicate API: Indexes, SQL Query Persistence: Map/Queue Store & Loader. Write Behind/Through Eviction Near Cache Transactions: Local & XA WAN & DR Replication Memcached Interface IM Data Store (Caching) Features HD Cache Dist. Compute Dist. Message
  • 38. © 2015 Hazelcast Inc. Confidential & Proprietary 38 Map API interface com.hazelcast.core.IMap<K, V> extends java.util.Map, java.util.ConcurrentMap HazelcastInstance hz = getHazelcastInstance(); //java.util.concurrent.ConcurrentMap implementation IMap<String, User> hzMap = hz.getMap("users"); hzMap.put("Peter", new User("Peter", "Veentjer")); hzMap.putIfAbsent("Peter", new User("Peter", "Veentjer")); //Distributed Lock hzMap.lock("Peter"); User peter = map.get("Peter");
  • 39. © 2015 Hazelcast Inc. Confidential & Proprietary 39 Persistence API public class MapStorage implements MapStore<String, User>, MapLoader<String, User> { // Some methods missing ... @Override public User load(String key) { return loadValueDB(key); } @Override public Set<String> loadAllKeys() { return loadKeysDB(); } @Override public void delete(String key) { deleteDB(key); } @Override public void store(String key, User value) { storeToDatabase(key, value); } } <map name="users"> <map-store enabled="true"> <class-name>com.hazelcast.example.MapStorage</class-name> <write-delay-seconds>0</write-delay-seconds> </map-store> </map>
  • 40. © 2015 Hazelcast Inc. Confidential & Proprietary 40 JCache API // Retrieve the CachingProvider which is automatically baced by // the chosen Hazelcast server or client provider CachingProvider cachingProvider = Caching.getCachingProvider(); // Create a CacheManager CacheManager cacheManager = cachingProvider.getCacheManager(); // Cache<String, String> cache = cacheManager // .getCache( name, String.class, String.class ); // Create a simple but typesafe configuration for the cache CompleteConfiguration<String, String> config = new MutableConfiguration<String, String>() .setTypes( String.class, String.class );
  • 41. © 2015 Hazelcast Inc. Confidential & Proprietary 41 JCache API // Create and get the cache Cache<String, String> cache = cacheManager .createCache( "example", config ); // Alternatively to request an already existing cache Cache<String, String> cache = cacheManager .getCache( name, String.class, String.class ); // Put a value into the cache cache.put( "world", "Hello World" ); // Retrieve the value again from the cache String value = cache.get( "world" ); System.out.println( value );
  • 42. © 2015 Hazelcast Inc. Confidential & Proprietary 42 High Density Caching On-Heap Memory Store (Objects Stored as Objects) High-Density Memory Store (Objects Serialized and Stored as Bytes) On-Heap SLAB Allocator* On-Heap SLAB Allocator* 2-4GB (Limited by Garbage Collection) 0-1TB (Limited by Machine RAM) * coming in 3.6 Memory Stores • Member • Client (Near Cache) RAM in JVM Process APIs JCache (ICache) Map (IMap) HD Cache Dist. Compute Dist. Message
  • 43. © 2015 Hazelcast Inc. Confidential & Proprietary 43 On Heap Vs. High-Density Memory Management On Heap Memory HD Memory v2 0 MB Native 3.3 GB 3.9 GB Heap Storage 0.6 GB 9 (4900 ms) Major GC 0 (0 ms) 31 (4200 ms) Minor GC 356 (349 ms) Node Used Heap Total Heap Max. Heap Heap Usage Percentage Used Heap: 0.2 GB 192.168.1.10:5701 57 MB 229 MB 910 MB 6.28% Memory Utilization Home Offheap-test Node Used Heap: 3.9 GB 192.168.1.10:5701 3933 MB 4658MB 4653MB 84.45% Memory Utilization Home Used Heap Total Heap Max. Heap Heap Usage Percentage HD Cache Dist. Compute Dist. Message Example: On Heap Memory Example: HD Memory v2
  • 44. © 2015 Hazelcast Inc. Confidential & Proprietary 44 Hazelcast Servers Hazelcast Server JVM [Memory] IM Distributed Computing Use Case A B C Business Logic Data Data Data CE = Compute Engine Result Business / Processing Logic Result TCP / IP Client Client HD Cache Dist. Compute Dist. Message
  • 45. © 2015 Hazelcast Inc. Confidential & Proprietary 45 IM Distributed Computing Feature HD Cache Dist. Compute Dist. Message Java Concurrency API (Lock, Semaphore, AtomicLong, AtomicReference, Executor Service, Blocking Queue) Entry and Item Listeners Entry Processor Aggregators Map/Reduce Data Affinity Continues Query Map Interceptors Delta Update
  • 46. © 2015 Hazelcast Inc. Confidential & Proprietary 46 Lock API HazelcastInstance hz = getHazelcastInstance(); // Distributed Reentrant L​ock l​ock = hz.getLock("myLock"); l​ock.lock(); try { // Do something } finally { l​ock.unlock(); }
  • 47. © 2015 Hazelcast Inc. Confidential & Proprietary 47 Executor Service API public interface com.hazelcast.core.IExecutorService extends java.util.concurrent.ExecutorService HazelcastInstance hz = getHazelcastInstance(); //java.util.concurrent.ExecutorService implementation IExecutorService es = hz.getExecutorService("name"); es.executeOnAllMembers(buildRunnable()); es.executeOnKeyOwner(buildRunnable(), "Peter"); es.execute(buildRunnable()); Map<..> futures = es.submitToAllMembers(buildCallable()); Future<..> future = es.submitToKeyOwner(buildCallable(), "Peter"); es.submitToAllMembers(buildCallable(), buildCallback()); es.submitToKeyOwner(buildCallable(), "Peter", buildCallback());
  • 48. © 2015 Hazelcast Inc. Confidential & Proprietary 48 Map/Reduce API HazelcastInstance hz = getHazelcastInstance(); Map users = hz.getMap("users"); JobTracker tracker = hz.getJobTracker("default"); KeyValueSource source = KeyValueSource.fromMap(users); Job job = tracker.newJob(source); ICompleteFuture future = job.mapper(new MyMapper()) .reducer(new MyReducer()) .submit(); Map result = future.get();
  • 49. © 2015 Hazelcast Inc. Confidential & Proprietary 49 Aggregations API HazelcastInstance hz = getHazelcastInstance(); Map users = hz.getMap("users"); int sum = users.aggregate( Supplier.all((user) -> user.getSalary()), Aggregations.longSum() );
  • 50. © 2015 Hazelcast Inc. Confidential & Proprietary 50 IM Distributed Messaging Use Case Hazelcast Distributed Topic Bus Hazelcast Topic Hazelcast Node 1 Hazelcast Node 2 Hazelcast Node 3 MSG Subscribes Delivers Subscribes Delivers HD Cache Dist. Compute Dist. Message
  • 51. © 2015 Hazelcast Inc. Confidential & Proprietary 51 Queue Topic (Pub/Sub) Event Listeners Ring Buffers IM Distributed Messaging Features HD Cache Dist. Compute Dist. Message
  • 52. © 2015 Hazelcast Inc. Confidential & Proprietary 52 Queue API interface com.hazelcast.core.IQueue<E> extends java.util.concurrent.BlockingQueue HazelcastInstance hz = getHazelcastInstance(); //java.util.concurrent.BlockingQueue implementation IQueue<Task> queue = hz.getQueue("tasks"); queue.offer(newTask()); queue.offer(newTask(), 500, TimeUnit.MILLISECONDS); Task task = queue.poll(); Task task = queue.poll(100, TimeUnit.MILLISECONDS); Task task = queue.take();
  • 53. © 2015 Hazelcast Inc. Confidential & Proprietary 53 Topic API public class Example implements MessageListener<String> { public void sendMessage { HazelcastInstance hz = getHazelcastInstance(); ITopic<String> topic = hz.getTopic("topic"); topic.addMessageListener(this); topic.publish("Hello World"); } @Override public void onMessage(Message<String> message) { System.out.println("Got message: " + message.getMessageObject()); } }