SlideShare a Scribd company logo
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

More Related Content

What's hot

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
 
Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018
Rahul 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.16
Comsysto Reply GmbH
 
Best Practices for Virtualizing Hadoop
Best Practices for Virtualizing HadoopBest Practices for Virtualizing Hadoop
Best Practices for Virtualizing Hadoop
DataWorks Summit
 
Farming hadoop in_the_cloud
Farming hadoop in_the_cloudFarming hadoop in_the_cloud
Farming hadoop in_the_cloud
Steve 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 Hadoop
Hazelcast
 
Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1
Johnny 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 Cassandra
Johnny Miller
 
Distributed caching-computing v3.8
Distributed caching-computing v3.8Distributed caching-computing v3.8
Distributed caching-computing v3.8
Rahul Gupta
 
Big data on virtualized infrastucture
Big data on virtualized infrastuctureBig data on virtualized infrastucture
Big data on virtualized infrastucture
DataWorks 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 Enterprise
Cloudera, Inc.
 
Hive - 1455: Cloud Storage
Hive - 1455: Cloud StorageHive - 1455: Cloud Storage
Hive - 1455: Cloud Storage
Hortonworks
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsScalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns
Jonas Bonér
 
Postgres Plus Cloud Database on OpenStack
Postgres Plus Cloud Database on OpenStackPostgres Plus Cloud Database on OpenStack
Postgres Plus Cloud Database on OpenStack
Kamesh 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 grids
Max Alexejev
 
Admission Control in Impala
Admission Control in ImpalaAdmission Control in Impala
Admission Control in Impala
Cloudera, 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 Ignite
Joseph Kuo
 
Best Practices for Virtualizing Apache Hadoop
Best Practices for Virtualizing Apache HadoopBest Practices for Virtualizing Apache Hadoop
Best Practices for Virtualizing Apache Hadoop
Hortonworks
 

What's hot (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
 

Viewers also liked

Think Distributed: The Hazelcast Way
Think Distributed: The Hazelcast WayThink Distributed: The Hazelcast Way
Think Distributed: The Hazelcast Way
Rahul Gupta
 
Hazelcast
HazelcastHazelcast
Hazelcast
Jeevesh Pandey
 
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
Christoph Engelbert
 
Hazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGridHazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGrid
Christoph Engelbert
 
Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMS
uzquiano
 
HighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data GridsHighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data Grids
Alexey Kharlamov
 
Phoenix for Rubyists
Phoenix for RubyistsPhoenix for Rubyists
Phoenix for Rubyists
Mike 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 8
José Paumard
 
Алексей Николаенков, Devexperts
Алексей Николаенков, DevexpertsАлексей Николаенков, Devexperts
Алексей Николаенков, Devexperts
Nata_Churda
 
Code review at large scale
Code review at large scaleCode review at large scale
Code review at large scale
Mikalai Alimenkou
 
Amazon cloud – готовим вместе
Amazon cloud – готовим вместеAmazon cloud – готовим вместе
Amazon cloud – готовим вместе
Vitebsk Miniq
 
ЖК Зорге 9
ЖК Зорге 9ЖК Зорге 9
ЖК Зорге 9
IRCIT.Uspeshnyy
 
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
José 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 8
José 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
Очень вкусный фрукт Guava
Egor 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 Ugly
Mikalai 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 bateau
José Paumard
 
Going reactive in java
Going reactive in javaGoing reactive in java
Going reactive in java
José Paumard
 

Viewers also liked (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
 

Similar to Hazelcast for Terracotta Users

Hazelcast Essentials
Hazelcast EssentialsHazelcast Essentials
Hazelcast Essentials
Rahul Gupta
 
Coherence Overview - OFM Canberra July 2014
Coherence Overview - OFM Canberra July 2014Coherence Overview - OFM Canberra July 2014
Coherence Overview - OFM Canberra July 2014
Joelith
 
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
JAXLondon2014
 
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
Rahul Gupta
 
Postgres on OpenStack
Postgres on OpenStackPostgres on OpenStack
Postgres on OpenStack
EDB
 
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
Particular Software
 
Hello OpenStack, Meet Hadoop
Hello OpenStack, Meet HadoopHello OpenStack, Meet Hadoop
Hello OpenStack, Meet Hadoop
DataWorks Summit
 
Openstack Summit HK - Ceph defacto - eNovance
Openstack Summit HK - Ceph defacto - eNovanceOpenstack Summit HK - Ceph defacto - eNovance
Openstack Summit HK - Ceph defacto - eNovance
eNovance
 
YARN
YARNYARN
Kubernetes Storage Webinar.pptx
Kubernetes Storage Webinar.pptxKubernetes Storage Webinar.pptx
Kubernetes Storage Webinar.pptx
Enrico 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 Container
Jangseon 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 Shop
Jeff 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 Capacity
Avere 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 dive
xKinAnx
 
Geek Nights Hong Kong
Geek Nights Hong KongGeek Nights Hong Kong
Geek Nights Hong Kong
Rahul 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 NorthWest
ke4qqq
 
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 - Varrow
Andrew 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
 

Similar to 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)
 

More from 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
 
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
Hazelcast
 
JCache - It's finally here
JCache -  It's finally hereJCache -  It's finally here
JCache - It's finally here
Hazelcast
 
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
Hazelcast
 
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
Hazelcast
 
WAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning TalkWAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning Talk
Hazelcast
 
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
Hazelcast
 
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
Hazelcast
 
JAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGsJAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGs
Hazelcast
 
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
Hazelcast
 
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
Hazelcast
 
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
Hazelcast
 
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
Hazelcast
 
Jfokus - Hazlecast
Jfokus - HazlecastJfokus - Hazlecast
Jfokus - Hazlecast
Hazelcast
 
In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014
Hazelcast
 
In-memory Data Management Trends & Techniques
In-memory Data Management Trends & TechniquesIn-memory Data Management Trends & Techniques
In-memory Data Management Trends & Techniques
Hazelcast
 
How to Speed up your Database
How to Speed up your DatabaseHow to Speed up your Database
How to Speed up your Database
Hazelcast
 
Hazelcast HUGL
Hazelcast HUGLHazelcast HUGL
Hazelcast HUGL
Hazelcast
 
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 Hazelcast
Hazelcast
 

More from 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
 

Recently uploaded

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
Ayan Halder
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 

Recently uploaded (20)

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 

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