SlideShare ist ein Scribd-Unternehmen logo
1 von 83
Downloaden Sie, um offline zu lesen
From Terracotta To Hazelcast 
Introduction on Hazelcast for Terracotta Users 
© 2014 Hazelcast Inc. 
AUTUMN 2014
About me 
© 2014 Hazelcast Inc. 
Rahul Gupta 
@wildnez 
! 
Senior Solutions Architect for Hazelcast 
Worked with Terracotta and Coherence 
Worked for Major Investment Banks 
Java Programmer since 1996 
Started programming in VHDL and later on 8048, 80286 CPU 
2
How this is going down 
© 2014 Hazelcast Inc. 
3 
• Limitations of Terracotta 
• What is Hazelcast 
• Migration 
• Important Features
Limitations of Terracotta 
! 
• Only an in-memory data store 
! 
• Complex APIs to use distributed collections 
! 
• No capabilities of processing data in memory 
! 
• Data needs to be fetched by the application resulting in network hops 
! 
• Inflexible - Only Client-Server architecture 
! 
• Dedicated environment for backup, Extra Server Licenses (Passive/Mirror) 
! 
• Requires dedicated environment 
! 
• Requires downtime to scale 
© 2014 Hazelcast Inc. 
4
Hazelcast overcomes the limitations 
• True IMDG space 
© 2014 Hazelcast Inc. 
– In-Memory Distributed Data Caching 
» Native Memory 
– In-Memory Parallel Data Processing 
» Distributed ExecutorService 
» EntryProcessors 
– In-Memory Map-Reduce 
! 
• Distributed Pub-Sub Messaging Model 
! 
• Simple Access to Distributed Collections 
5
Hazelcast overcomes the limitations 
• Highly Flexible Deployments 
© 2014 Hazelcast Inc. 
– Client-Server 
» Servers run in a separate tier in dedicated 
environment 
» Does not require dedicated infrastructure for 
running backup 
– Embedded 
» Hazelcast node runs within the application 
JVM 
» Application nodes made distributed by 
Hazelcast running within their JVM 
» Does not require dedicated environment 
6
Hazelcast overcomes the limitations 
• Backups also serve as Main nodes 
! 
• No extra licenses for backup 
! 
• Scales on the fly 
! 
• No downtime required to add/remove nodes 
© 2014 Hazelcast Inc. 
7
Configuring & forming a cluster 
© 2014 Hazelcast Inc. 
8
Forming a Cluster 
• Hazelcast Clusters run on JVM 
• Hazelcast discovers other instances via Multicast 
(Default) 
• Use TCP/IP lists when Multicast not possible 
• Segregate Clusters on same network via configuration 
• Hazelcast can form clusters on Amazon EC2. 
© 2014 Hazelcast Inc. 
9
Hazelcast Configuration - Server 
• Only one jar - look for hazelcast-all-x.x.x.jar 
! 
• Hazelcast searches for hazelcast.xml on class path 
! 
• Will use hazelcast-default.xml for everything else. 
! 
• Hazelcast can be configured via XML,API or Spring 
! 
• Configure Networks, Data Structures, 
Indexes,Compute 
© 2014 Hazelcast Inc. 
10
Form a cluster 
1. Sample hazelcast.xml looks like this 
© 2014 Hazelcast Inc. 
11
TOP TIP 
• The <group> configuration element is your friend. 
! 
• It will help you isolate your cluster on the multicast 
network. 
! 
• Don’t make the mistake of joining another developers 
cluster or worse still a Production Cluster! 
© 2014 Hazelcast Inc. 
12
Configuration via API 
1. Add GroupConfig to the Config instance. 
© 2014 Hazelcast Inc. 
13
TOP TIP 
• You can run multiple Hazelcast instances in one JVM. 
! 
• Handy for unit testing. 
! 
© 2014 Hazelcast Inc. 
14
Configure Cluster to use TCP/IP 
1. Edit multicast enabled = false 
2. Add tcp-ip element with your ip address 
© 2014 Hazelcast Inc. 
15
Client Configuration 
© 2014 Hazelcast Inc. 
16
Hazelcast Configuration - Client 
• Hazelcast searches for hazelcast-client.xml on class path 
• Full API stack - Client API same as Server API 
• Clients in Java, C#, C++, Memcache, REST 
© 2014 Hazelcast Inc. 
17
Starting as a Client or Cluster JVM 
© 2014 Hazelcast Inc. 
18 
Notice Client and Cluster return same HazelcastInstance reference.
Code Migration 
© 2014 Hazelcast Inc. 
19
Migration - Terracotta to Hazelcast 
• Terracotta implementation of cache puts/gets: 
! 
! 
! 
! 
• Replace Terracotta implementation by Hazelcast 
code: 
© 2014 Hazelcast Inc. 
20
Migration - Terracotta to Hazelcast 
• Terracotta implementation of Blocking Queue(notice the 
complex APIs): 
! 
! 
! 
! 
• Replace Terracotta by Hazelcast Queue (notice the 
simplicity): 
© 2014 Hazelcast Inc. 
21
Topologies 
© 2014 Hazelcast Inc. 
22
Hazelcast Topologies 
• Traditional Client -> Server (Client -> Cluster) 
! 
• Clients do not take part in standard cluster coms. 
! 
• Consider Client -> Cluster topology to segregate service 
from storage. 
! 
• Smart Clients connect to all Clusters nodes. Operations go 
directly to node holding data. 
! 
• Embedded model, for example in a J2EE container. service 
and storage within one JVM. 
© 2014 Hazelcast Inc. 
23
Terracotta Cluster 
© 2014 Hazelcast Inc. 
24
Embedded Hazelcast 
© 2014 Hazelcast Inc. 
25
Client Server -> (Client -> Cluster) 
© 2014 Hazelcast Inc. 
26
Distributed Collections 
© 2014 Hazelcast Inc. 
27
Maps 
© 2014 Hazelcast Inc. 
28
Distributed Maps - IMap 
• Conforms to the java.util.Map interface 
! 
• Conforms to the java.util.ConcurrentMap interface 
! 
• Hazelcast IMap interface provides extra features 
EntryListeners 
Aggregators 
Predicate Queries 
Locking 
Eviction 
© 2014 Hazelcast Inc. 
29
Wildcard Configuration 
• Hazelcast support wildcards for config. 
© 2014 Hazelcast Inc. 
30 
• Beware of ambiguous config though. 
• Hazelcast doesn’t pick best match and what it picks is 
random not in the order it appears in config.
Properties 
• Hazelcast supports property replacement in XML config 
© 2014 Hazelcast Inc. 
31 
• Uses System Properties by default 
• A Properties Loader can be configured
Near Cache 
• Terracotta L1 Cache -> Hazelcast Near Cache 
! 
• Highly recommended for read-mostly maps 
© 2014 Hazelcast Inc. 
32
Replicated Map 
© 2014 Hazelcast Inc. 
33 
• Does not partition data. 
• Copies Map Entry to every Cluster JVM. 
! 
• Consider for immutable slow moving data like config. 
! 
• ReplicatedMap interface supports EntryListeners. 
!
Data Distribution and Resource 
Management 
© 2014 Hazelcast Inc. 
34
Data Distribution 
• Data (primary + backup) is distributed in cluster using partitions 
! 
• 271 default partitions 
! 
• Partitions are divided among running cluster JVMs. 
! 
• Discovery of resident partition performed by the client before 
sending out update/get calls 
! 
• In smart-client setup, requests go directly to the host node 
! 
• Hazelcast places a backup of the Map Entry on another partition 
as part of the Map.put 
© 2014 Hazelcast Inc. 
35
Data Distribution 
• The backup operation can be sync (default) or async to the 
Map.put 
! 
• Each node acts as Primary and Backup compare to Active-Passive 
on dedicated resources setup in Terracotta - efficient use of 
resources 
! 
• When cluster JVM enters or leaves, cluster partitions are 
rebalanced 
! 
• In event of a node failure - 
– Primary data is retrieved from backup and distributed across 
remaining nodes in cluster 
– New backup is created on good nodes 
© 2014 Hazelcast Inc. 
36
Data Distribution 
© 2014 Hazelcast Inc. 
37 
Fixed number of partitions (default 271) 
Each key falls into a partition 
partitionId = hash(keyData)%PARTITION_COUNT 
Partition ownerships are reassigned upon membership 
A B C
New Node Added 
A B C D 
© 2014 Hazelcast Inc.
Migration 
A B C D 
© 2014 Hazelcast Inc.
Migration 
A B C D 
© 2014 Hazelcast Inc.
Migration 
A B C D 
© 2014 Hazelcast Inc.
Migration 
A B C D 
© 2014 Hazelcast Inc.
Migration 
A B C D 
© 2014 Hazelcast Inc.
Migration 
A B C D 
© 2014 Hazelcast Inc.
Migration Complete 
A B C D 
© 2014 Hazelcast Inc. 
Crash
Fault Tolerance & Recovery 
© 2014 Hazelcast Inc. 
46
Node Crashes 
A B C D 
© 2014 Hazelcast Inc. 
Crash
Backups are Restored 
A B C D 
© 2014 Hazelcast Inc. 
Crash
Backups are Restored 
A B C D 
© 2014 Hazelcast Inc. 
Crash
Backups are Restored 
A B C D 
© 2014 Hazelcast Inc. 
Crash
Backups are Restored 
A B C D 
© 2014 Hazelcast Inc. 
Crash
Data is Recovered from backup 
A B C D 
© 2014 Hazelcast Inc. 
Crash
Data is Recovered from backup 
A B C D 
© 2014 Hazelcast Inc. 
Crash
Backup for Recovered Data 
A B C D 
© 2014 Hazelcast Inc. 
Crash
Backup for Recovered Data 
A B C D 
© 2014 Hazelcast Inc. 
Crash
Backup for Recovered Data 
A B C D 
© 2014 Hazelcast Inc. 
Crash
All Safe 
© 2014 Hazelcast Inc. 
A C D
In Memory Format & Serialization 
© 2014 Hazelcast Inc. 
58
In Memory Format 
• Flexibility in data store format compared to Terracotta’s 
binary only 
• By default, data in memory is binary (serialised) format. 
• Local Processing on a node has to keep deserialising. 
• Use OBJECT if local processing (entry processor,executors) 
• Use BINARY if get(ing) data over the network 
© 2014 Hazelcast Inc. 
59
Serialization 
© 2014 Hazelcast Inc. 
60 
• Custom Serialization as against “Serializable” only option in Terracotta 
– DataSerializable 
• Fine grained control over serialization 
• Uses Reflection to create class instance 
• “implements DataSerializable” 
– public void writeData(ObjectDataOutput out) 
– public void readData(ObjectDataInput in) 
– IdentifiedDataSerializable 
• Better version of DataSerializable 
• Avoids Reflection - faster serialization 
• extends DataSerializable 
• Two new methods - 
– int getId() - used instead of classname 
– int getFactoryId() - used to load the class given to Id
Distributed Compute 
© 2014 Hazelcast Inc. 
61
Distributed Executor Service 
© 2014 Hazelcast Inc. 
62
Distributed Executor 
© 2014 Hazelcast Inc. 
63 
• IExectorService extends 
java.util.concurrent.ExecutorService 
• Send a Runnable or Callable into the Cluster 
• Targetable Execution 
All Members 
Member 
MemberSelector 
KeyOwner 
• sync/async blocking based on Futures 
• Or ExecutionCallback notifies onResponse 
!
Distributed Executor 
• If System Resources permit you can scale up the number of 
threads the ExecutorService uses. 
© 2014 Hazelcast Inc. 
64 
!! 
! 
!
Distributed Executor 
© 2014 Hazelcast Inc. 
65 
! 
! 
• Each Member creates its own work queue. 
• Tasks are not partitioned or load balanced. 
• If member dies while task is enqueue on member it is lost. 
• You need to lock any data you access, but beware of 
Deadlocks! 
!
EntryProcessor 
© 2014 Hazelcast Inc. 
66
EntryProcessor 
• A Distributed Map Entry Processor Function 
• Provides locking guarantees 
• Work directly on the Entry object in a node 
• Executed on the Partition Thread rather than the Executor 
• Submitted via the IMap 
• Best to apply delta updates without moving the object 
across the network 
© 2014 Hazelcast Inc. 
67
EntryProcessor 
© 2014 Hazelcast Inc. 
68 
• EntryProcessor also mutates the Backup copy 
• Use the AbstractEntryProcesssor for default backup 
behaviour 
• Implement EntryProcessor directly to provide your own 
Backup behaviour, for example sending delta only 
! 
• Only alternative to Terracotta DSO
EntryProcessor 
© 2014 Hazelcast Inc. 
69
EntryProcessor 
© 2014 Hazelcast Inc. 
70 
• Other tasks run on Partition Thread (Puts, Gets) 
• It is important to yield the EntryProcessor 
• hazelcast.entryprocessor.batch.max.size: 
Defaults to 10.000 
• Hazelcast will not interrupt a running operation it only 
yields when the current Key has been processed.
In-memory Map Reduce 
© 2014 Hazelcast Inc. 
71
MAP Reduce 
© 2014 Hazelcast Inc. 
72 
• In-memory Map/Reduce compared to disk bound M/R 
• Similar paradigm to Hadoop Map/Reduce 
• Familiar nomenclature for ease of understanding and 
use 
– JobTracker 
– Job 
– Mapper 
– CombinerFactory 
– Reducer 
– Collator
Distributed Aggregation 
© 2014 Hazelcast Inc. 
73
Aggregators 
© 2014 Hazelcast Inc. 
74 
• Ready-to-use in-memory data aggregation algorithms 
• Implemented on top of Hazelcast MapReduce framework 
• More convenient than MR for large set of standard operations 
• Work on both - IMap and MultiMap 
• Types of aggregation: 
– Average, Sum, Min, Max, DistinctValues, Count
Querying 
© 2014 Hazelcast Inc. 
75
Querying with Predicates 
• Rich Predicate API that can be run against IMap, similar to 
criterion based Terracotta Search 
Collection<V> IMap.values(Predicate p) 
Set<K> IMap.keySet(Predicate p) 
Set<Map.Entry<K,V>> IMap.entrySet(Predicate p) 
Set<K> IMap.localKeySet(Predicate p) 
© 2014 Hazelcast Inc. 
76 
!!
Querying with Predicates 
© 2014 Hazelcast Inc. 
77 
notEqual instanceOf like (%,_) greaterThan 
greaterEqual lessThan lessEqual between 
in isNot regex
Querying with Predicates 
© 2014 Hazelcast Inc. 
78 
• Create your own Predicates 
!!
SQL like queries 
© 2014 Hazelcast Inc. 
79 
• SQLPredicate class. 
• Runs only on Values. 
• Converts the String to a set of concrete Predicates. 
!!
Indexes 
© 2014 Hazelcast Inc. 
80 
• Prevent full Map scans. 
• Indexes can be ordered or unordered. 
• Indexes can work along the Object Graph (x.y.z). 
• When indexing non primitives they must implement 
Comparable. 
• Indexes can be created at runtime. 
!!
Conclusion 
© 2014 Hazelcast Inc. 
81
Conclusion 
• Hazelcast is easy to use 
! 
• Easy to migrate from Terracotta 
! 
• Familiar naming convention 
! 
• Lot more features and use cases than just a data store 
! 
• On the fly scale 
! 
• Zero downtime 
! 
• No single point of failure 
© 2014 Hazelcast Inc. 
82
© 2014 Hazelcast Inc. 
Thank You 
! 
@wildnez 
! 
rahul@hazelcast.com 
83

Weitere ähnliche Inhalte

Was ist angesagt?

Speed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentSpeed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentHazelcast
 
Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018Rahul Gupta
 
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
 
Best Practices for Virtualizing Hadoop
Best Practices for Virtualizing HadoopBest Practices for Virtualizing Hadoop
Best Practices for Virtualizing HadoopDataWorks Summit
 
Farming hadoop in_the_cloud
Farming hadoop in_the_cloudFarming hadoop in_the_cloud
Farming hadoop in_the_cloudSteve Loughran
 
Big Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of HadoopBig Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of HadoopHazelcast
 
Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1Johnny Miller
 
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
 
Going native with Apache Cassandra
Going native with Apache CassandraGoing native with Apache Cassandra
Going native with Apache CassandraJohnny Miller
 
Distributed caching-computing v3.8
Distributed caching-computing v3.8Distributed caching-computing v3.8
Distributed caching-computing v3.8Rahul Gupta
 
Big data on virtualized infrastucture
Big data on virtualized infrastuctureBig data on virtualized infrastucture
Big data on virtualized infrastuctureDataWorks Summit
 
Configuring a Secure, Multitenant Cluster for the Enterprise
Configuring a Secure, Multitenant Cluster for the EnterpriseConfiguring a Secure, Multitenant Cluster for the Enterprise
Configuring a Secure, Multitenant Cluster for the EnterpriseCloudera, Inc.
 
Hive - 1455: Cloud Storage
Hive - 1455: Cloud StorageHive - 1455: Cloud Storage
Hive - 1455: Cloud StorageHortonworks
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsScalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsJonas Bonér
 
Postgres Plus Cloud Database on OpenStack
Postgres Plus Cloud Database on OpenStackPostgres Plus Cloud Database on OpenStack
Postgres Plus Cloud Database on OpenStackKamesh Pemmaraju
 
VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld
 
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
 
Admission Control in Impala
Admission Control in ImpalaAdmission Control in Impala
Admission Control in ImpalaCloudera, Inc.
 
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
 
Best Practices for Virtualizing Apache Hadoop
Best Practices for Virtualizing Apache HadoopBest Practices for Virtualizing Apache Hadoop
Best Practices for Virtualizing Apache HadoopHortonworks
 

Was ist angesagt? (20)

Speed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentSpeed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
 
Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018
 
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
 
Best Practices for Virtualizing Hadoop
Best Practices for Virtualizing HadoopBest Practices for Virtualizing Hadoop
Best Practices for Virtualizing Hadoop
 
Farming hadoop in_the_cloud
Farming hadoop in_the_cloudFarming hadoop in_the_cloud
Farming hadoop in_the_cloud
 
Big Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of HadoopBig Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of Hadoop
 
Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1
 
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...
 
Going native with Apache Cassandra
Going native with Apache CassandraGoing native with Apache Cassandra
Going native with Apache Cassandra
 
Distributed caching-computing v3.8
Distributed caching-computing v3.8Distributed caching-computing v3.8
Distributed caching-computing v3.8
 
Big data on virtualized infrastucture
Big data on virtualized infrastuctureBig data on virtualized infrastucture
Big data on virtualized infrastucture
 
Configuring a Secure, Multitenant Cluster for the Enterprise
Configuring a Secure, Multitenant Cluster for the EnterpriseConfiguring a Secure, Multitenant Cluster for the Enterprise
Configuring a Secure, Multitenant Cluster for the Enterprise
 
Hive - 1455: Cloud Storage
Hive - 1455: Cloud StorageHive - 1455: Cloud Storage
Hive - 1455: Cloud Storage
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsScalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns
 
Postgres Plus Cloud Database on OpenStack
Postgres Plus Cloud Database on OpenStackPostgres Plus Cloud Database on OpenStack
Postgres Plus Cloud Database on OpenStack
 
VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right
 
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
 
Admission Control in Impala
Admission Control in ImpalaAdmission Control in Impala
Admission Control in Impala
 
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
 
Best Practices for Virtualizing Apache Hadoop
Best Practices for Virtualizing Apache HadoopBest Practices for Virtualizing Apache Hadoop
Best Practices for Virtualizing Apache Hadoop
 

Andere mochten auch

Think Distributed: The Hazelcast Way
Think Distributed: The Hazelcast WayThink Distributed: The Hazelcast Way
Think Distributed: The Hazelcast WayRahul Gupta
 
The Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service StoryboardThe Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service StoryboardChristoph Engelbert
 
Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSuzquiano
 
HighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data GridsHighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data GridsAlexey Kharlamov
 
Phoenix for Rubyists
Phoenix for RubyistsPhoenix for Rubyists
Phoenix for RubyistsMike North
 
Async Gateway или Разработка системы распределенных вычислений с нуля
Async Gateway или Разработка системы распределенных вычислений с нуляAsync Gateway или Разработка системы распределенных вычислений с нуля
Async Gateway или Разработка системы распределенных вычислений с нуляVitebsk Miniq
 
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
 
50 new things we can do with Java 8
50 new things we can do with Java 850 new things we can do with Java 8
50 new things we can do with Java 8José Paumard
 
JFokus 50 new things with java 8
JFokus 50 new things with java 8JFokus 50 new things with java 8
JFokus 50 new things with java 8José Paumard
 
Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.Mikalai Alimenkou
 
Очень вкусный фрукт Guava
Очень вкусный фрукт GuavaОчень вкусный фрукт Guava
Очень вкусный фрукт GuavaEgor Chernyshev
 
Java 8, the Good, the Bad and the Ugly
Java 8, the Good, the Bad and the UglyJava 8, the Good, the Bad and the Ugly
Java 8, the Good, the Bad and the UglyMikalai Alimenkou
 
ArrayList et LinkedList sont dans un bateau
ArrayList et LinkedList sont dans un bateauArrayList et LinkedList sont dans un bateau
ArrayList et LinkedList sont dans un bateauJosé Paumard
 
Going reactive in java
Going reactive in javaGoing reactive in java
Going reactive in javaJosé Paumard
 

Andere mochten auch (20)

Think Distributed: The Hazelcast Way
Think Distributed: The Hazelcast WayThink Distributed: The Hazelcast Way
Think Distributed: The Hazelcast Way
 
Hazelcast
HazelcastHazelcast
Hazelcast
 
The Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service StoryboardThe Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service Storyboard
 
Hazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGridHazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGrid
 
Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMS
 
HighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data GridsHighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data Grids
 
Phoenix for Rubyists
Phoenix for RubyistsPhoenix for Rubyists
Phoenix for Rubyists
 
Async Gateway или Разработка системы распределенных вычислений с нуля
Async Gateway или Разработка системы распределенных вычислений с нуляAsync Gateway или Разработка системы распределенных вычислений с нуля
Async Gateway или Разработка системы распределенных вычислений с нуля
 
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
 
Code review at large scale
Code review at large scaleCode review at large scale
Code review at large scale
 
Amazon cloud – готовим вместе
Amazon cloud – готовим вместеAmazon cloud – готовим вместе
Amazon cloud – готовим вместе
 
ЖК Зорге 9
ЖК Зорге 9ЖК Зорге 9
ЖК Зорге 9
 
50 new things we can do with Java 8
50 new things we can do with Java 850 new things we can do with Java 8
50 new things we can do with Java 8
 
JFokus 50 new things with java 8
JFokus 50 new things with java 8JFokus 50 new things with java 8
JFokus 50 new things with java 8
 
Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.
 
Очень вкусный фрукт Guava
Очень вкусный фрукт GuavaОчень вкусный фрукт Guava
Очень вкусный фрукт Guava
 
Java 8, the Good, the Bad and the Ugly
Java 8, the Good, the Bad and the UglyJava 8, the Good, the Bad and the Ugly
Java 8, the Good, the Bad and the Ugly
 
ArrayList et LinkedList sont dans un bateau
ArrayList et LinkedList sont dans un bateauArrayList et LinkedList sont dans un bateau
ArrayList et LinkedList sont dans un bateau
 
Going reactive in java
Going reactive in javaGoing reactive in java
Going reactive in java
 

Ähnlich wie Hazelcast for Terracotta Users

Hazelcast Essentials
Hazelcast EssentialsHazelcast Essentials
Hazelcast EssentialsRahul Gupta
 
Coherence Overview - OFM Canberra July 2014
Coherence Overview - OFM Canberra July 2014Coherence Overview - OFM Canberra July 2014
Coherence Overview - OFM Canberra July 2014Joelith
 
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita IvanovGridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita IvanovJAXLondon2014
 
Hazelcast Jet v0.4 - August 9, 2017
Hazelcast Jet v0.4 - August 9, 2017Hazelcast Jet v0.4 - August 9, 2017
Hazelcast Jet v0.4 - August 9, 2017Rahul Gupta
 
Postgres on OpenStack
Postgres on OpenStackPostgres on OpenStack
Postgres on OpenStackEDB
 
NSBCon UK nservicebus on Azure by Yves Goeleven
NSBCon UK nservicebus on Azure by Yves GoelevenNSBCon UK nservicebus on Azure by Yves Goeleven
NSBCon UK nservicebus on Azure by Yves GoelevenParticular Software
 
Hello OpenStack, Meet Hadoop
Hello OpenStack, Meet HadoopHello OpenStack, Meet Hadoop
Hello OpenStack, Meet HadoopDataWorks Summit
 
Openstack Summit HK - Ceph defacto - eNovance
Openstack Summit HK - Ceph defacto - eNovanceOpenstack Summit HK - Ceph defacto - eNovance
Openstack Summit HK - Ceph defacto - eNovanceeNovance
 
Kubernetes Storage Webinar.pptx
Kubernetes Storage Webinar.pptxKubernetes Storage Webinar.pptx
Kubernetes Storage Webinar.pptxEnrico Rampazzo
 
NAVER Ceph Storage on ssd for Container
NAVER Ceph Storage on ssd for ContainerNAVER Ceph Storage on ssd for Container
NAVER Ceph Storage on ssd for ContainerJangseon Ryu
 
The Perils and Triumphs of using Cassandra at a .NET/Microsoft Shop
The Perils and Triumphs of using Cassandra at a .NET/Microsoft ShopThe Perils and Triumphs of using Cassandra at a .NET/Microsoft Shop
The Perils and Triumphs of using Cassandra at a .NET/Microsoft ShopJeff Smoley
 
Cloud Bursting 101: What to do When Cloud Computing Demand Exceeds Capacity
Cloud Bursting 101: What to do When Cloud Computing Demand Exceeds CapacityCloud Bursting 101: What to do When Cloud Computing Demand Exceeds Capacity
Cloud Bursting 101: What to do When Cloud Computing Demand Exceeds CapacityAvere Systems
 
Accelerate with ibm storage ibm spectrum virtualize hyper swap deep dive
Accelerate with ibm storage  ibm spectrum virtualize hyper swap deep diveAccelerate with ibm storage  ibm spectrum virtualize hyper swap deep dive
Accelerate with ibm storage ibm spectrum virtualize hyper swap deep divexKinAnx
 
Geek Nights Hong Kong
Geek Nights Hong KongGeek Nights Hong Kong
Geek Nights Hong KongRahul Gupta
 
Virtual Hadoop Introduction In Chinese
Virtual Hadoop Introduction In ChineseVirtual Hadoop Introduction In Chinese
Virtual Hadoop Introduction In Chinese天青 王
 
CloudStack - LinuxFest NorthWest
CloudStack - LinuxFest NorthWestCloudStack - LinuxFest NorthWest
CloudStack - LinuxFest NorthWestke4qqq
 
Ceph Day New York 2014: Best Practices for Ceph-Powered Implementations of St...
Ceph Day New York 2014: Best Practices for Ceph-Powered Implementations of St...Ceph Day New York 2014: Best Practices for Ceph-Powered Implementations of St...
Ceph Day New York 2014: Best Practices for Ceph-Powered Implementations of St...Ceph Community
 
Virtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowVirtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowAndrew Miller
 
Apache Drill (ver. 0.1, check ver. 0.2)
Apache Drill (ver. 0.1, check ver. 0.2)Apache Drill (ver. 0.1, check ver. 0.2)
Apache Drill (ver. 0.1, check ver. 0.2)Camuel Gilyadov
 

Ähnlich wie Hazelcast for Terracotta Users (20)

Hazelcast Essentials
Hazelcast EssentialsHazelcast Essentials
Hazelcast Essentials
 
Coherence Overview - OFM Canberra July 2014
Coherence Overview - OFM Canberra July 2014Coherence Overview - OFM Canberra July 2014
Coherence Overview - OFM Canberra July 2014
 
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita IvanovGridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
 
Hazelcast Jet v0.4 - August 9, 2017
Hazelcast Jet v0.4 - August 9, 2017Hazelcast Jet v0.4 - August 9, 2017
Hazelcast Jet v0.4 - August 9, 2017
 
Postgres on OpenStack
Postgres on OpenStackPostgres on OpenStack
Postgres on OpenStack
 
NSBCon UK nservicebus on Azure by Yves Goeleven
NSBCon UK nservicebus on Azure by Yves GoelevenNSBCon UK nservicebus on Azure by Yves Goeleven
NSBCon UK nservicebus on Azure by Yves Goeleven
 
Hello OpenStack, Meet Hadoop
Hello OpenStack, Meet HadoopHello OpenStack, Meet Hadoop
Hello OpenStack, Meet Hadoop
 
Openstack Summit HK - Ceph defacto - eNovance
Openstack Summit HK - Ceph defacto - eNovanceOpenstack Summit HK - Ceph defacto - eNovance
Openstack Summit HK - Ceph defacto - eNovance
 
YARN
YARNYARN
YARN
 
Kubernetes Storage Webinar.pptx
Kubernetes Storage Webinar.pptxKubernetes Storage Webinar.pptx
Kubernetes Storage Webinar.pptx
 
NAVER Ceph Storage on ssd for Container
NAVER Ceph Storage on ssd for ContainerNAVER Ceph Storage on ssd for Container
NAVER Ceph Storage on ssd for Container
 
The Perils and Triumphs of using Cassandra at a .NET/Microsoft Shop
The Perils and Triumphs of using Cassandra at a .NET/Microsoft ShopThe Perils and Triumphs of using Cassandra at a .NET/Microsoft Shop
The Perils and Triumphs of using Cassandra at a .NET/Microsoft Shop
 
Cloud Bursting 101: What to do When Cloud Computing Demand Exceeds Capacity
Cloud Bursting 101: What to do When Cloud Computing Demand Exceeds CapacityCloud Bursting 101: What to do When Cloud Computing Demand Exceeds Capacity
Cloud Bursting 101: What to do When Cloud Computing Demand Exceeds Capacity
 
Accelerate with ibm storage ibm spectrum virtualize hyper swap deep dive
Accelerate with ibm storage  ibm spectrum virtualize hyper swap deep diveAccelerate with ibm storage  ibm spectrum virtualize hyper swap deep dive
Accelerate with ibm storage ibm spectrum virtualize hyper swap deep dive
 
Geek Nights Hong Kong
Geek Nights Hong KongGeek Nights Hong Kong
Geek Nights Hong Kong
 
Virtual Hadoop Introduction In Chinese
Virtual Hadoop Introduction In ChineseVirtual Hadoop Introduction In Chinese
Virtual Hadoop Introduction In Chinese
 
CloudStack - LinuxFest NorthWest
CloudStack - LinuxFest NorthWestCloudStack - LinuxFest NorthWest
CloudStack - LinuxFest NorthWest
 
Ceph Day New York 2014: Best Practices for Ceph-Powered Implementations of St...
Ceph Day New York 2014: Best Practices for Ceph-Powered Implementations of St...Ceph Day New York 2014: Best Practices for Ceph-Powered Implementations of St...
Ceph Day New York 2014: Best Practices for Ceph-Powered Implementations of St...
 
Virtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowVirtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - Varrow
 
Apache Drill (ver. 0.1, check ver. 0.2)
Apache Drill (ver. 0.1, check ver. 0.2)Apache Drill (ver. 0.1, check ver. 0.2)
Apache Drill (ver. 0.1, check ver. 0.2)
 

Mehr von 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 GridsHazelcast
 
The Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScriptThe Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScriptHazelcast
 
JCache - It's finally here
JCache -  It's finally hereJCache -  It's finally here
JCache - It's finally hereHazelcast
 
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorganShared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorganHazelcast
 
Applying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data GridApplying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data GridHazelcast
 
WAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning TalkWAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning TalkHazelcast
 
JAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning TalkJAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning TalkHazelcast
 
Extreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on ToruswareExtreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on ToruswareHazelcast
 
JAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGsJAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGsHazelcast
 
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 OrientDB & Hazelcast: In-Memory Distributed Graph Database OrientDB & Hazelcast: In-Memory Distributed Graph Database
OrientDB & Hazelcast: In-Memory Distributed Graph DatabaseHazelcast
 
How to Use HazelcastMQ for Flexible Messaging and More
 How to Use HazelcastMQ for Flexible Messaging and More How to Use HazelcastMQ for Flexible Messaging and More
How to Use HazelcastMQ for Flexible Messaging and MoreHazelcast
 
Devoxx UK 2014 High Performance In-Memory Java with Open Source
Devoxx UK 2014   High Performance In-Memory Java with Open SourceDevoxx UK 2014   High Performance In-Memory Java with Open Source
Devoxx UK 2014 High Performance In-Memory Java with Open SourceHazelcast
 
JSR107 State of the Union JavaOne 2013
JSR107  State of the Union JavaOne 2013JSR107  State of the Union JavaOne 2013
JSR107 State of the Union JavaOne 2013Hazelcast
 
Jfokus - Hazlecast
Jfokus - HazlecastJfokus - Hazlecast
Jfokus - HazlecastHazelcast
 
In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014Hazelcast
 
In-memory Data Management Trends & Techniques
In-memory Data Management Trends & TechniquesIn-memory Data Management Trends & Techniques
In-memory Data Management Trends & TechniquesHazelcast
 
How to Speed up your Database
How to Speed up your DatabaseHow to Speed up your Database
How to Speed up your DatabaseHazelcast
 
Hazelcast HUGL
Hazelcast HUGLHazelcast HUGL
Hazelcast HUGLHazelcast
 
Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast Hazelcast
 
Clustering your Application with Hazelcast
Clustering your Application with HazelcastClustering your Application with Hazelcast
Clustering your Application with HazelcastHazelcast
 

Mehr von Hazelcast (20)

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
 
The Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScriptThe Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScript
 
JCache - It's finally here
JCache -  It's finally hereJCache -  It's finally here
JCache - It's finally here
 
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorganShared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan
 
Applying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data GridApplying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data Grid
 
WAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning TalkWAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning Talk
 
JAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning TalkJAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning Talk
 
Extreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on ToruswareExtreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on Torusware
 
JAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGsJAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGs
 
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 OrientDB & Hazelcast: In-Memory Distributed Graph Database OrientDB & Hazelcast: In-Memory Distributed Graph Database
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 
How to Use HazelcastMQ for Flexible Messaging and More
 How to Use HazelcastMQ for Flexible Messaging and More How to Use HazelcastMQ for Flexible Messaging and More
How to Use HazelcastMQ for Flexible Messaging and More
 
Devoxx UK 2014 High Performance In-Memory Java with Open Source
Devoxx UK 2014   High Performance In-Memory Java with Open SourceDevoxx UK 2014   High Performance In-Memory Java with Open Source
Devoxx UK 2014 High Performance In-Memory Java with Open Source
 
JSR107 State of the Union JavaOne 2013
JSR107  State of the Union JavaOne 2013JSR107  State of the Union JavaOne 2013
JSR107 State of the Union JavaOne 2013
 
Jfokus - Hazlecast
Jfokus - HazlecastJfokus - Hazlecast
Jfokus - Hazlecast
 
In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014
 
In-memory Data Management Trends & Techniques
In-memory Data Management Trends & TechniquesIn-memory Data Management Trends & Techniques
In-memory Data Management Trends & Techniques
 
How to Speed up your Database
How to Speed up your DatabaseHow to Speed up your Database
How to Speed up your Database
 
Hazelcast HUGL
Hazelcast HUGLHazelcast HUGL
Hazelcast HUGL
 
Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast
 
Clustering your Application with Hazelcast
Clustering your Application with HazelcastClustering your Application with Hazelcast
Clustering your Application with Hazelcast
 

Kürzlich hochgeladen

GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 

Kürzlich hochgeladen (20)

GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 

Hazelcast for Terracotta Users

  • 1. From Terracotta To Hazelcast Introduction on Hazelcast for Terracotta Users © 2014 Hazelcast Inc. AUTUMN 2014
  • 2. About me © 2014 Hazelcast Inc. Rahul Gupta @wildnez ! Senior Solutions Architect for Hazelcast Worked with Terracotta and Coherence Worked for Major Investment Banks Java Programmer since 1996 Started programming in VHDL and later on 8048, 80286 CPU 2
  • 3. How this is going down © 2014 Hazelcast Inc. 3 • Limitations of Terracotta • What is Hazelcast • Migration • Important Features
  • 4. Limitations of Terracotta ! • Only an in-memory data store ! • Complex APIs to use distributed collections ! • No capabilities of processing data in memory ! • Data needs to be fetched by the application resulting in network hops ! • Inflexible - Only Client-Server architecture ! • Dedicated environment for backup, Extra Server Licenses (Passive/Mirror) ! • Requires dedicated environment ! • Requires downtime to scale © 2014 Hazelcast Inc. 4
  • 5. Hazelcast overcomes the limitations • True IMDG space © 2014 Hazelcast Inc. – In-Memory Distributed Data Caching » Native Memory – In-Memory Parallel Data Processing » Distributed ExecutorService » EntryProcessors – In-Memory Map-Reduce ! • Distributed Pub-Sub Messaging Model ! • Simple Access to Distributed Collections 5
  • 6. Hazelcast overcomes the limitations • Highly Flexible Deployments © 2014 Hazelcast Inc. – Client-Server » Servers run in a separate tier in dedicated environment » Does not require dedicated infrastructure for running backup – Embedded » Hazelcast node runs within the application JVM » Application nodes made distributed by Hazelcast running within their JVM » Does not require dedicated environment 6
  • 7. Hazelcast overcomes the limitations • Backups also serve as Main nodes ! • No extra licenses for backup ! • Scales on the fly ! • No downtime required to add/remove nodes © 2014 Hazelcast Inc. 7
  • 8. Configuring & forming a cluster © 2014 Hazelcast Inc. 8
  • 9. Forming a Cluster • Hazelcast Clusters run on JVM • Hazelcast discovers other instances via Multicast (Default) • Use TCP/IP lists when Multicast not possible • Segregate Clusters on same network via configuration • Hazelcast can form clusters on Amazon EC2. © 2014 Hazelcast Inc. 9
  • 10. Hazelcast Configuration - Server • Only one jar - look for hazelcast-all-x.x.x.jar ! • Hazelcast searches for hazelcast.xml on class path ! • Will use hazelcast-default.xml for everything else. ! • Hazelcast can be configured via XML,API or Spring ! • Configure Networks, Data Structures, Indexes,Compute © 2014 Hazelcast Inc. 10
  • 11. Form a cluster 1. Sample hazelcast.xml looks like this © 2014 Hazelcast Inc. 11
  • 12. TOP TIP • The <group> configuration element is your friend. ! • It will help you isolate your cluster on the multicast network. ! • Don’t make the mistake of joining another developers cluster or worse still a Production Cluster! © 2014 Hazelcast Inc. 12
  • 13. Configuration via API 1. Add GroupConfig to the Config instance. © 2014 Hazelcast Inc. 13
  • 14. TOP TIP • You can run multiple Hazelcast instances in one JVM. ! • Handy for unit testing. ! © 2014 Hazelcast Inc. 14
  • 15. Configure Cluster to use TCP/IP 1. Edit multicast enabled = false 2. Add tcp-ip element with your ip address © 2014 Hazelcast Inc. 15
  • 16. Client Configuration © 2014 Hazelcast Inc. 16
  • 17. Hazelcast Configuration - Client • Hazelcast searches for hazelcast-client.xml on class path • Full API stack - Client API same as Server API • Clients in Java, C#, C++, Memcache, REST © 2014 Hazelcast Inc. 17
  • 18. Starting as a Client or Cluster JVM © 2014 Hazelcast Inc. 18 Notice Client and Cluster return same HazelcastInstance reference.
  • 19. Code Migration © 2014 Hazelcast Inc. 19
  • 20. Migration - Terracotta to Hazelcast • Terracotta implementation of cache puts/gets: ! ! ! ! • Replace Terracotta implementation by Hazelcast code: © 2014 Hazelcast Inc. 20
  • 21. Migration - Terracotta to Hazelcast • Terracotta implementation of Blocking Queue(notice the complex APIs): ! ! ! ! • Replace Terracotta by Hazelcast Queue (notice the simplicity): © 2014 Hazelcast Inc. 21
  • 22. Topologies © 2014 Hazelcast Inc. 22
  • 23. Hazelcast Topologies • Traditional Client -> Server (Client -> Cluster) ! • Clients do not take part in standard cluster coms. ! • Consider Client -> Cluster topology to segregate service from storage. ! • Smart Clients connect to all Clusters nodes. Operations go directly to node holding data. ! • Embedded model, for example in a J2EE container. service and storage within one JVM. © 2014 Hazelcast Inc. 23
  • 24. Terracotta Cluster © 2014 Hazelcast Inc. 24
  • 25. Embedded Hazelcast © 2014 Hazelcast Inc. 25
  • 26. Client Server -> (Client -> Cluster) © 2014 Hazelcast Inc. 26
  • 27. Distributed Collections © 2014 Hazelcast Inc. 27
  • 28. Maps © 2014 Hazelcast Inc. 28
  • 29. Distributed Maps - IMap • Conforms to the java.util.Map interface ! • Conforms to the java.util.ConcurrentMap interface ! • Hazelcast IMap interface provides extra features EntryListeners Aggregators Predicate Queries Locking Eviction © 2014 Hazelcast Inc. 29
  • 30. Wildcard Configuration • Hazelcast support wildcards for config. © 2014 Hazelcast Inc. 30 • Beware of ambiguous config though. • Hazelcast doesn’t pick best match and what it picks is random not in the order it appears in config.
  • 31. Properties • Hazelcast supports property replacement in XML config © 2014 Hazelcast Inc. 31 • Uses System Properties by default • A Properties Loader can be configured
  • 32. Near Cache • Terracotta L1 Cache -> Hazelcast Near Cache ! • Highly recommended for read-mostly maps © 2014 Hazelcast Inc. 32
  • 33. Replicated Map © 2014 Hazelcast Inc. 33 • Does not partition data. • Copies Map Entry to every Cluster JVM. ! • Consider for immutable slow moving data like config. ! • ReplicatedMap interface supports EntryListeners. !
  • 34. Data Distribution and Resource Management © 2014 Hazelcast Inc. 34
  • 35. Data Distribution • Data (primary + backup) is distributed in cluster using partitions ! • 271 default partitions ! • Partitions are divided among running cluster JVMs. ! • Discovery of resident partition performed by the client before sending out update/get calls ! • In smart-client setup, requests go directly to the host node ! • Hazelcast places a backup of the Map Entry on another partition as part of the Map.put © 2014 Hazelcast Inc. 35
  • 36. Data Distribution • The backup operation can be sync (default) or async to the Map.put ! • Each node acts as Primary and Backup compare to Active-Passive on dedicated resources setup in Terracotta - efficient use of resources ! • When cluster JVM enters or leaves, cluster partitions are rebalanced ! • In event of a node failure - – Primary data is retrieved from backup and distributed across remaining nodes in cluster – New backup is created on good nodes © 2014 Hazelcast Inc. 36
  • 37. Data Distribution © 2014 Hazelcast Inc. 37 Fixed number of partitions (default 271) Each key falls into a partition partitionId = hash(keyData)%PARTITION_COUNT Partition ownerships are reassigned upon membership A B C
  • 38. New Node Added A B C D © 2014 Hazelcast Inc.
  • 39. Migration A B C D © 2014 Hazelcast Inc.
  • 40. Migration A B C D © 2014 Hazelcast Inc.
  • 41. Migration A B C D © 2014 Hazelcast Inc.
  • 42. Migration A B C D © 2014 Hazelcast Inc.
  • 43. Migration A B C D © 2014 Hazelcast Inc.
  • 44. Migration A B C D © 2014 Hazelcast Inc.
  • 45. Migration Complete A B C D © 2014 Hazelcast Inc. Crash
  • 46. Fault Tolerance & Recovery © 2014 Hazelcast Inc. 46
  • 47. Node Crashes A B C D © 2014 Hazelcast Inc. Crash
  • 48. Backups are Restored A B C D © 2014 Hazelcast Inc. Crash
  • 49. Backups are Restored A B C D © 2014 Hazelcast Inc. Crash
  • 50. Backups are Restored A B C D © 2014 Hazelcast Inc. Crash
  • 51. Backups are Restored A B C D © 2014 Hazelcast Inc. Crash
  • 52. Data is Recovered from backup A B C D © 2014 Hazelcast Inc. Crash
  • 53. Data is Recovered from backup A B C D © 2014 Hazelcast Inc. Crash
  • 54. Backup for Recovered Data A B C D © 2014 Hazelcast Inc. Crash
  • 55. Backup for Recovered Data A B C D © 2014 Hazelcast Inc. Crash
  • 56. Backup for Recovered Data A B C D © 2014 Hazelcast Inc. Crash
  • 57. All Safe © 2014 Hazelcast Inc. A C D
  • 58. In Memory Format & Serialization © 2014 Hazelcast Inc. 58
  • 59. In Memory Format • Flexibility in data store format compared to Terracotta’s binary only • By default, data in memory is binary (serialised) format. • Local Processing on a node has to keep deserialising. • Use OBJECT if local processing (entry processor,executors) • Use BINARY if get(ing) data over the network © 2014 Hazelcast Inc. 59
  • 60. Serialization © 2014 Hazelcast Inc. 60 • Custom Serialization as against “Serializable” only option in Terracotta – DataSerializable • Fine grained control over serialization • Uses Reflection to create class instance • “implements DataSerializable” – public void writeData(ObjectDataOutput out) – public void readData(ObjectDataInput in) – IdentifiedDataSerializable • Better version of DataSerializable • Avoids Reflection - faster serialization • extends DataSerializable • Two new methods - – int getId() - used instead of classname – int getFactoryId() - used to load the class given to Id
  • 61. Distributed Compute © 2014 Hazelcast Inc. 61
  • 62. Distributed Executor Service © 2014 Hazelcast Inc. 62
  • 63. Distributed Executor © 2014 Hazelcast Inc. 63 • IExectorService extends java.util.concurrent.ExecutorService • Send a Runnable or Callable into the Cluster • Targetable Execution All Members Member MemberSelector KeyOwner • sync/async blocking based on Futures • Or ExecutionCallback notifies onResponse !
  • 64. Distributed Executor • If System Resources permit you can scale up the number of threads the ExecutorService uses. © 2014 Hazelcast Inc. 64 !! ! !
  • 65. Distributed Executor © 2014 Hazelcast Inc. 65 ! ! • Each Member creates its own work queue. • Tasks are not partitioned or load balanced. • If member dies while task is enqueue on member it is lost. • You need to lock any data you access, but beware of Deadlocks! !
  • 66. EntryProcessor © 2014 Hazelcast Inc. 66
  • 67. EntryProcessor • A Distributed Map Entry Processor Function • Provides locking guarantees • Work directly on the Entry object in a node • Executed on the Partition Thread rather than the Executor • Submitted via the IMap • Best to apply delta updates without moving the object across the network © 2014 Hazelcast Inc. 67
  • 68. EntryProcessor © 2014 Hazelcast Inc. 68 • EntryProcessor also mutates the Backup copy • Use the AbstractEntryProcesssor for default backup behaviour • Implement EntryProcessor directly to provide your own Backup behaviour, for example sending delta only ! • Only alternative to Terracotta DSO
  • 69. EntryProcessor © 2014 Hazelcast Inc. 69
  • 70. EntryProcessor © 2014 Hazelcast Inc. 70 • Other tasks run on Partition Thread (Puts, Gets) • It is important to yield the EntryProcessor • hazelcast.entryprocessor.batch.max.size: Defaults to 10.000 • Hazelcast will not interrupt a running operation it only yields when the current Key has been processed.
  • 71. In-memory Map Reduce © 2014 Hazelcast Inc. 71
  • 72. MAP Reduce © 2014 Hazelcast Inc. 72 • In-memory Map/Reduce compared to disk bound M/R • Similar paradigm to Hadoop Map/Reduce • Familiar nomenclature for ease of understanding and use – JobTracker – Job – Mapper – CombinerFactory – Reducer – Collator
  • 73. Distributed Aggregation © 2014 Hazelcast Inc. 73
  • 74. Aggregators © 2014 Hazelcast Inc. 74 • Ready-to-use in-memory data aggregation algorithms • Implemented on top of Hazelcast MapReduce framework • More convenient than MR for large set of standard operations • Work on both - IMap and MultiMap • Types of aggregation: – Average, Sum, Min, Max, DistinctValues, Count
  • 75. Querying © 2014 Hazelcast Inc. 75
  • 76. Querying with Predicates • Rich Predicate API that can be run against IMap, similar to criterion based Terracotta Search Collection<V> IMap.values(Predicate p) Set<K> IMap.keySet(Predicate p) Set<Map.Entry<K,V>> IMap.entrySet(Predicate p) Set<K> IMap.localKeySet(Predicate p) © 2014 Hazelcast Inc. 76 !!
  • 77. Querying with Predicates © 2014 Hazelcast Inc. 77 notEqual instanceOf like (%,_) greaterThan greaterEqual lessThan lessEqual between in isNot regex
  • 78. Querying with Predicates © 2014 Hazelcast Inc. 78 • Create your own Predicates !!
  • 79. SQL like queries © 2014 Hazelcast Inc. 79 • SQLPredicate class. • Runs only on Values. • Converts the String to a set of concrete Predicates. !!
  • 80. Indexes © 2014 Hazelcast Inc. 80 • Prevent full Map scans. • Indexes can be ordered or unordered. • Indexes can work along the Object Graph (x.y.z). • When indexing non primitives they must implement Comparable. • Indexes can be created at runtime. !!
  • 81. Conclusion © 2014 Hazelcast Inc. 81
  • 82. Conclusion • Hazelcast is easy to use ! • Easy to migrate from Terracotta ! • Familiar naming convention ! • Lot more features and use cases than just a data store ! • On the fly scale ! • Zero downtime ! • No single point of failure © 2014 Hazelcast Inc. 82
  • 83. © 2014 Hazelcast Inc. Thank You ! @wildnez ! rahul@hazelcast.com 83