SlideShare uma empresa Scribd logo
1 de 82
Thinking Distributed: The Hazelcast
Way
RAHUL GUPTA
SR SOLUTIONS ARCHITECT
About Me
Senior Solutions Architect
Worked with Terracotta
In-memory Distributed Systems since 2009
Java Programmer since 1998
rahul@hazelcast.com
Rahul Gupta
follow me @wildnez
1010110010000101001
1010110010001110101001
10111001001
10101100100001111010100
Challenges of Big
Data Management
Why Hazelcast?
• Scale-out Computing enables cluster capacity to be increased
or decreased on-demand
• Resilience with automatic recovery from member failures
without losing data while minimizing performance impact on
running applications
• Programming Model provides a way for developers to easily
program a cluster application as if it is a single process
• Fast Application Performance enables very large data sets to be
held in main memory for real-time performance
Ecosystem Traction
Dozens of Commercial and Open Source Projects Embed Hazelcast
01001
10101
01010
In Memory
Data Computing
In Memory
Data Messaging++In Memory
Data Storage
In Memory Data Grid
Business Systems
A B C
RDBMS Mainframe
MongoDB
NoSQL
REST
Scale
Hazelcast
In-Memory Caching
java.util.concurrent.ConcurrentMap
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
public static void main(String[] args) {
ConcurrentMap<Integer, String> map = new ConcurrentHashMap<>();
map.put(1, "Paris");
map.put(2, "London");
map.put(3, "San Francisco");
String oldValue = map.remove(2);
}
Distributed Map
import java.util.concurrent.ConcurrentMap;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
public static void main(String[] args) {
HazelcastInstance h = Hazelcast.newHazelcastInstance();
ConcurrentMap<Integer, String> map = h.getMap("myMap");
map.put(1, "Paris");
map.put(2, "London");
map.put(3, "San Francisco");
String oldValue = map.remove(2);
}
DEMO
Persistence API
public class MapStorage
implements MapStore<String, User>, MapLoader<String, User> {
// Some methods missing ...
@Override public User load(String key) { return loadValueDB(key); }
@Override public Set<String> loadAllKeys() { return loadKeysDB(); }
@Override public void delete(String key) { deleteDB(key); }
@Override public void store(String key, User value) {
storeToDatabase(key, value);
}
}
<map name="users">
<map-store enabled="true">
<class-name>com.hazelcast.example.MapStorage</class-name>
<write-delay-seconds>0</write-delay-seconds>
</map-store>
</map>
JCache API
// Retrieve the CachingProvider which is automatically baced by
// the chosen Hazelcast server or client provider
CachingProvider cachingProvider = Caching.getCachingProvider();
// Create a CacheManager
CacheManager cacheManager = cachingProvider.getCacheManager();
// Cache<String, String> cache = cacheManager
// .getCache( name, String.class, String.class );
// Create a simple but typesafe configuration for the cache
CompleteConfiguration<String, String> config =
new MutableConfiguration<String, String>()
.setTypes( String.class, String.class );
JCache API
// Create and get the cache
Cache<String, String> cache = cacheManager
.createCache( "example", config );
// Alternatively to request an already existing cache
Cache<String, String> cache = cacheManager
.getCache( name, String.class, String.class );
// Put a value into the cache
cache.put( "world", "Hello World" );
// Retrieve the value again from the cache
String value = cache.get( "world" );
System.out.println( value );
Eviction
• Unless deleted, entries remain in the map.
• Use eviction policies to prevent OOM situations.
• Eviction Triggers run LFU or LRU.
time-to-live
max-idle-seconds
max-size (PER_NODE(number of entries),
PER_PARTITION(number of entries),
USED_HEAP_SIZE(mb),
USED_HEAP_PERCENTAGE(mb))
• Setting eviction-percentage removes that % of entries when eviction is
triggered.
Features Description
MultiMap Store multiple values against one Key
Replicated Map Cluster wide replication, all entries on all nodes. Good for read heavy use
cases
Near Cache Map Entries on Client/Application local memory
RingBuffer Stores data in a ring-like structure, like a circular array with given capacity
More Distributed Structures
Java Collection API: Map, List, Set, Queue
Jcache
High Density Memory Store
Hibernate 2nd Level Cache
Web Session Replication: Tomcat, Jetty
Predicate API: Indexes, SQL Query
Persistence: Map/Queue Store & Loader. Write Behind/Through
Spring Compliance
Transactions: Local & XA
WAN & DR Replication
IM Data Store (Caching) Features
Java: Will it make the cut?
Garbage Collection limits heap usage. G1 and
Balanced aim for <100ms at 10GB.
Unused
Memory
64GB
4GB 4s
Heap
Java Apps Memory Bound
GC Pause
Time
Available
Memory
GC
Off-Heap Storage
No low-level CPU access
Java is challenged as an infrastructure language
despite its newly popular usage for this
Heap
GC Pause
64 Gb
JVM
4 Gb JVM 1
4 Gb JVM 2
4 Gb JVM 3
4 Gb JVM 4
4 Gb JVM 5
4 Gb JVM 16
GC Pause
0 GB
64 GB
64 Gb in-memory data
time
Standard Impediments of Caching
GC Pause
64 Gb
JVM
4 Gb JVM 1
4 Gb JVM 2
4 Gb JVM 3
4 Gb JVM 4
4 Gb JVM 5
4 Gb JVM 16
GC Pause
0 Gb
64 Gb
64 Gb in-memory data
time
64 Gb
HD
2 Gb JVM
GC Pause
HD Memory
Caching with HD Memory
On-Heap Memory Store
(Objects Stored as Objects)
High-Density Memory Store
(Objects Serialized and Stored as
Bytes)
s.m.Unsafe s.m.Unsafe
2-4GB
(Limited by Garbage
Collection)
0-1TB
(Limited by
Machine RAM)
Memory Stores
•Member
•Client
(Near Cache)
RAM in JVM Process
APIs
JCache
(ICache)
Map
(IMap)
HD Memory
On Heap Vs. High-Density
Memory Management
On Heap Memory HD Memory
0 MB HD 3.3 GB
3.9 GB Heap Storage 0.6 GB
9 (4900 ms) Major GC 0 (0 ms)
31 (4200 ms) Minor GC 356 (349 ms)
Node Used
Heap
Total
Heap
Max.
Heap
Heap Usage
Percentage
Used Heap: 0.2 GB
192.168.1.10:5701 57 MB 229 MB 910 MB 6.28%
Memory Utilization
Home Offheap-test
Node Used Heap: 3.9 GB
192.168.1.10:5701 3933 MB 4658MB 4653MB 84.45%
Memory Utilization
Home
Used
Heap
Total
Heap
Max.
Heap
Heap Usage
Percentage
Example: On Heap Memory Example: HD Memory
Hazelcast Servers
Hazelcast Server
JVM [Memory]
A B C
Business Logic
Data Data Data
CE = Compute Engine
Result
Business / Processing Logic
Result
TCP / IP
Client Client
Distributed Computing
IM Distributed Computing Feature
HD
Cache
Dist.
Compute
Dist.
Message
Java Concurrency API
(Lock, Semaphore, AtomicLong, AtomicReference, Executor Service, Blocking Queue)
Entry and Item Listeners
Entry Processor
Aggregators
Map/Reduce
Data Affinity
Continues Query
Map Interceptors
Delta Update
Executor Service API
public interface com.hazelcast.core.IExecutorService
extends java.util.concurrent.ExecutorService
HazelcastInstance hz = getHazelcastInstance();
//java.util.concurrent.ExecutorService implementation
IExecutorService es = hz.getExecutorService("name");
es.executeOnAllMembers(buildRunnable());
es.executeOnKeyOwner(buildRunnable(), "Peter");
es.execute(buildRunnable());
Map<..> futures = es.submitToAllMembers(buildCallable());
Future<..> future = es.submitToKeyOwner(buildCallable(), "Peter");
es.submitToAllMembers(buildCallable(), buildCallback());
es.submitToKeyOwner(buildCallable(), "Peter", buildCallback());
EntryProcessor API
Lock API
HazelcastInstance hz = getHazelcastInstance();
// Distributed Reentrant
L​ock l​ock = hz.getLock("myLock");
l​ock.lock();
try {
// Do something
} finally {
l​ock.unlock();
}
Distributed Lock
Lock API
Pessimistic Locking (IMap)
Lock API
Optimistic Locking
Map/Reduce API
HazelcastInstance hz = getHazelcastInstance();
Map users = hz.getMap("users");
JobTracker tracker = hz.getJobTracker("default");
KeyValueSource source = KeyValueSource.fromMap(users);
Job job = tracker.newJob(source);
ICompleteFuture future = job.mapper(new MyMapper())
.reducer(new MyReducer())
.submit();
Map result = future.get();
Aggregations API
HazelcastInstance hz = getHazelcastInstance();
Map users = hz.getMap("users");
int sum = users.aggregate(
Supplier.all((user) -> user.getSalary()),
Aggregations.longSum()
);
Hazelcast Distributed
Topic Bus
Hazelcast
Topic
Hazelcast
Node 1
Hazelcast
Node 2
Hazelcast
Node 3
MSG
Subscribes
Delivers
Subscribes
Delivers
Distributed Messaging
Queue
Topic (Pub/Sub)
Event Listeners
Ring Buffers
IM Distributed Messaging Features
HD
Cache
Dist.
Compute
Dist.
Message
Queue API
interface com.hazelcast.core.IQueue<E>
extends java.util.concurrent.BlockingQueue
HazelcastInstance hz = getHazelcastInstance();
//java.util.concurrent.BlockingQueue implementation
IQueue<Task> queue = hz.getQueue("tasks");
queue.offer(newTask());
queue.offer(newTask(), 500, TimeUnit.MILLISECONDS);
Task task = queue.poll();
Task task = queue.poll(100, TimeUnit.MILLISECONDS);
Task task = queue.take();
Topic API
public class Example implements MessageListener<String> {
public void sendMessage {
HazelcastInstance hz = getHazelcastInstance();
ITopic<String> topic = hz.getTopic("topic");
topic.addMessageListener(this);
topic.publish("Hello World");
}
@Override
public void onMessage(Message<String> message) {
System.out.println("Got message: " + message.getMessageObject());
}
}
Data Distribution and Resilience
37
Distributed Maps
Fixed number of partitions (default 271)
Each key falls into a partition
partitionId = hash(keyData)%PARTITION_COUNT
Partition ownerships are reassigned upon membership change
A B C
New Node Added
DA B C
Migration
DA B C
Migration
DA B C
Migration
DA B C
Migration
DA B C
Migration
DA B C
Migration
DA B C
Migration Complete
DA B C
Data Safety on Node Failure
47
Node Crashes
DA B C
Backups Are Restored
DA B C
Backups Are Restored
DA B C
Backups Are Restored
DA B C
Backups Are Restored
DA B C
Backups Are Restored
DA B C
Backups Are Restored
DA B C
Backups Are Restored
DA B C
Backups Are Restored
DA B C
Recovery Is Complete
DA C
Deployment Strategies
Deployment Options
Great for early stages of rapid
application development and iteration
Necessary for scale up or scale out
deployments – decouples
upgrading of clients and cluster for
long term TCO
Embedded Hazelcast
Hazelcast Node
1
Applications
Java API
Client-Server Mode
Hazelcast
Node 3
Java API
Applications
Java API
Applications
Java API
Applications
Hazelcast
Node 2
Hazelcast
Node 1
Hazelcast Node
2
Applications
Java API
Hazelcast Node
3
Applications
Java API
Easy API
// Creating a new Hazelcast node
HazelcastInstance hz = Hazelcast.newHazelcastInstance();
// Getting a Map, Queue, Topic, ...
Map map = hz.getMap("my-map");
Queue queue = hz.getQueue("my-queue");
ITopic topic = hz.getTopic("my-topic");
//Creating a Hazelcast Client
HazelcastInstance client = HazelcastClient.newHazelcastClient();
// Shutting down the node
hz.shutdown();
Roadmap and Latest
Hazelcast High Level Roadmap
Hi-Density Caching
In-Memory Data Grid
2014 2015 2016
HD Memory | Advance Messaging
PaaS | Extensions | Integrations | JET
Scalability | Resiliency | Elastic Memory | In-Memory Computing
Advance In-memory Computing Platform
© 2016 Hazelcast Inc. Confidential & Proprietary 63
Hazelcast 3.7 Release
© 2016 Hazelcast Inc. Confidential & Proprietary 64
Features Description
Modularity In 3.7, Hazelcast is converted to a modular system based around extension points. So clients,
Cloud Discovery providers and integrations to third party systems like Hibernate etc will be
released independently. 3.7 will then ship with the latest stable versions of each.
Redesign of Partition Migration More robust partition migration to round out some edge cases.
Graceful Shutdown
Improvements
More robust shutdown with partition migration on shutdown of a member
Higher Networking Performance A further 30% improvement in performance across the cluster by eliminating notifyAll() calls.
Map.putAll() Performance
Speedup
Implement member batching.
Rule Based Query Optimizer Make queries significantly faster by using static transformations of queries.
Azul Certification Run Hazelcast on Azul Zing for Java 6, 7 or 8 for less variation of latencies due to GC.
Solaris Sparc Support Align HD Memory backed data structure's layouts so that platforms, such as SPARC work.
Verify SPARC using our lab machine.
New Features for JCache Simple creation similar to other Hazelcast Data Structures. E.g.
Command Line Interface New command line interface for common operations performed by Operations.
Non-blocking Vert.x integration New async methods in Map and integration with Vert.x to use them.
New Hazelcast 3.7 Features
© 2016 Hazelcast Inc. Confidential & Proprietary 65
Features Description
Scala integration for Hazelcast members and Hazelcast client. Implements all Hazelcast
features. Wraps the Java client for client mode and in embedded mode uses the Hazelcast
member directly.
Node.js Native client implementation using the Hazelcast Open Client protocol. Basic feature support.
Python Native client implementation using the Hazelcast Open Client protocol. Supports most Hazelcast
features.
Clojure Clojure integration for Hazelcast members and Hazelcast client. Implements some Hazelcast
features. Wraps the Java client for client mode and in embedded mode uses the Hazelcast
member directly.
New Hazelcast 3.7 Clients and Languages
© 2016 Hazelcast Inc. Confidential & Proprietary 66
Features Description
Azure Marketplace Ability to start Hazelcast instances on Docker environments easily. Provides Hazelcast,
Hazelcast Enterprise and Management Center.
Azure Cloud Provider Discover Provider for member discovery using Kubernetes. (Plugin)
AWS Marketplace Deploy Hazelcast, Hazelcast Management Center and Hazelcast Enterprise clusters straight
from the Marketplace.
Consul Cloud Provider Discover Provider for member discovery for Consul (Plugin)
Etcd Cloud Provider Discover Provider for member discovery for Etcd (Plugin)
Zookeeper Cloud Provider Discover Provider for member discovery for Zookeeper (Plugin)
Eureka Cloud Provider Discover Provider for member discovery for Eureka 1 from Netflix. (Plugin)
Docker Enhancements Docker support for cloud provider plugins
New Hazelcast 3.7 Cloud Features
Hazelcast Platform: Hazelcast Everywhere
Hazelcast on Cloud
Features Description
Amazon EC2 EC2 Auto discovery – upgraded with Discovery SPI
Microsoft Azure Available on Azure Marketplace
Pivotal Cloud Foundry Only distributed IMDG to provide on-demand service broker and disk
based persistence
OpenShift Native compliancy
Hazelcast on Cloud – IaaS, PaaS
Hazelcast on Cloud – SaaS, IaaS, PaaS
Other off-the-shelf cloud based compliancy
• OpenStack
• Google Compute Engine
• Google Platform Services
• jClouds
• Discovery SPI – Everything Everywhere
What’s Hazelcast Jet?
• General purpose distributed data processing
framework
• Based on Direct Acyclic Graph to model data
flow
• Built on top of Hazelcast
• Comparable to Apache Spark or Apache Flink
7
2
DAG
7
3
Job Execution
7
4
7
5
Hazelcast Services
Service Offerings
Hazelcast (Apache Licensed)
• Professional Subscription – 24x7 support*
Hazelcast Enterprise Support
• Available with Hazelcast Enterprise software subscription - 24x7 support*
Additional Services
• Development Support Subscription – 8x5 support*
• Simulator TCK
• Training
• Expert Consulting
• Development Partner Program
* All subscriptions include Management Center
© 2016 Hazelcast Inc. Confidential & Proprietary 77
Support Subscriptions
What’s Included
100% SUCCESS RATE ON CUSTOMER ISSUES:
“As usual, the response was timely beyond
expectations, and very good technical content
returned. Exemplary support, hard to find in
any company…”
- Fortune 100 Financial Services Customer
ENTERPRISE HD ENTERPRISE PROFESSIONAL OPEN SOURCE
SUPPORT WINDOW 24/7 24/7 24/7
RESPONSE TIME FOR CRITIAL ISSUES 1 Hour 1 Hour 2 Hours
SUPPORTED SOFTWARE
Hazelcast &
Hazelcast Enterprise
Hazelcast &
Hazelcast Enterprise
Hazelcast
SUPPORT CONTACTS 4 4 2
SUPPORT CHANNELS Email, IM & Phone Email, IM & Phone Email, IM & Phone
PATCH LEVEL FIXES   
REMOTE MEETINGS (via GoToMeeting)   
CODE REVIEW (with a Senior Solutions Architect) 2 Hours 2 Hours 2 Hours
QUARTERLY REVIEW OF FEATURE REQUES*  
QUARTERLY REVIEW OF HAZELCAST ROADMAP*  
© 2016 Hazelcast Inc. Confidential & Proprietary
7
8
Best In Class Support
 Support from the Engineers who wrote
the code
 SLA Driven – 100% attainment of
support response time
 Follow the Sun
 Portal, Email and Phone access
 Go Red, Go Green. Reproduction of
issues on Simulator. Proof of fix on
Simulator.
 Periodic Technical Reviews
 Meet your production schedule and
corporate compliance requirements
 Ensure the success of your
development team with training and
best practices
7
9
Hazelcast Support Coverage
India
Turkey
London
U.S.
© 2016 Hazelcast Inc. Confidential & Proprietary 80
Support Testimonials
© 2016 Hazelcast Inc. Confidential & Proprietary 81
Release Lifecycle
• Regular Feature release each 4-5 months, e.g. 3.3, 3.4, 3.5
• Maintenance release approximately each month with bug fixes based
on the current feature release, e.g. 3.4.1
• For older versions, patch releases made available to fix issues
• Release End of Life per support contract
Thank you

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

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
 
Introduction to hazelcast
Introduction to hazelcastIntroduction to hazelcast
Introduction to hazelcast
 
Hazelcast
HazelcastHazelcast
Hazelcast
 
Distributed applications using Hazelcast
Distributed applications using HazelcastDistributed applications using Hazelcast
Distributed applications using Hazelcast
 
Hazelcast 101
Hazelcast 101Hazelcast 101
Hazelcast 101
 
HazelCast
HazelCastHazelCast
HazelCast
 
Spring Meetup Paris - Getting Distributed with Hazelcast and Spring
Spring Meetup Paris - Getting Distributed with Hazelcast and SpringSpring Meetup Paris - Getting Distributed with Hazelcast and Spring
Spring Meetup Paris - Getting Distributed with Hazelcast and Spring
 
Distributed caching and computing v3.7
Distributed caching and computing v3.7Distributed caching and computing v3.7
Distributed caching and computing v3.7
 
Groovy concurrency
Groovy concurrencyGroovy concurrency
Groovy concurrency
 
Scaling Hibernate with Terracotta
Scaling Hibernate with TerracottaScaling Hibernate with Terracotta
Scaling Hibernate with Terracotta
 
Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018Hazelcast Jet - January 08, 2018
Hazelcast Jet - January 08, 2018
 
Caching In The Cloud
Caching In The CloudCaching In The Cloud
Caching In The Cloud
 
DataStax | Data Science with DataStax Enterprise (Brian Hess) | Cassandra Sum...
DataStax | Data Science with DataStax Enterprise (Brian Hess) | Cassandra Sum...DataStax | Data Science with DataStax Enterprise (Brian Hess) | Cassandra Sum...
DataStax | Data Science with DataStax Enterprise (Brian Hess) | Cassandra Sum...
 
Distributed caching-computing v3.8
Distributed caching-computing v3.8Distributed caching-computing v3.8
Distributed caching-computing v3.8
 
DataStax | Best Practices for Securing DataStax Enterprise (Matt Kennedy) | C...
DataStax | Best Practices for Securing DataStax Enterprise (Matt Kennedy) | C...DataStax | Best Practices for Securing DataStax Enterprise (Matt Kennedy) | C...
DataStax | Best Practices for Securing DataStax Enterprise (Matt Kennedy) | C...
 
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
 
Scaling Your Cache
Scaling Your CacheScaling Your Cache
Scaling Your Cache
 
Processing 50,000 events per second with Cassandra and Spark
Processing 50,000 events per second with Cassandra and SparkProcessing 50,000 events per second with Cassandra and Spark
Processing 50,000 events per second with Cassandra and Spark
 
Cassandra Tuning - above and beyond
Cassandra Tuning - above and beyondCassandra Tuning - above and beyond
Cassandra Tuning - above and beyond
 
Hadoop engineering bo_f_final
Hadoop engineering bo_f_finalHadoop engineering bo_f_final
Hadoop engineering bo_f_final
 

Destaque

Hazelcast for Terracotta Users
Hazelcast for Terracotta UsersHazelcast for Terracotta Users
Hazelcast for Terracotta Users
Hazelcast
 

Destaque (19)

Hazelcast
HazelcastHazelcast
Hazelcast
 
Hazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGridHazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGrid
 
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and IgniteJCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
 
[OracleCode SF] In memory analytics with apache spark and hazelcast
[OracleCode SF] In memory analytics with apache spark and hazelcast[OracleCode SF] In memory analytics with apache spark and hazelcast
[OracleCode SF] In memory analytics with apache spark and hazelcast
 
Hazelcast For Beginners (Paris JUG-1)
Hazelcast For Beginners (Paris JUG-1)Hazelcast For Beginners (Paris JUG-1)
Hazelcast For Beginners (Paris JUG-1)
 
Hazelcast for Terracotta Users
Hazelcast for Terracotta UsersHazelcast for Terracotta Users
Hazelcast for Terracotta Users
 
Anypoint mq (mulesoft) pub sub model
Anypoint mq (mulesoft)  pub sub modelAnypoint mq (mulesoft)  pub sub model
Anypoint mq (mulesoft) pub sub model
 
Squeezing Performance out of Hazelcast
Squeezing Performance out of HazelcastSqueezing Performance out of Hazelcast
Squeezing Performance out of Hazelcast
 
Oracle Coherence
Oracle CoherenceOracle Coherence
Oracle Coherence
 
Oracle Coherence: in-memory datagrid
Oracle Coherence: in-memory datagridOracle Coherence: in-memory datagrid
Oracle Coherence: in-memory datagrid
 
Distributed Computing in Hazelcast - Geekout 2014 Edition
Distributed Computing in Hazelcast - Geekout 2014 EditionDistributed Computing in Hazelcast - Geekout 2014 Edition
Distributed Computing in Hazelcast - Geekout 2014 Edition
 
Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast Devoxx 2013 - Hazelcast
Devoxx 2013 - Hazelcast
 
Hazelcast
HazelcastHazelcast
Hazelcast
 
Distributed computing with Hazelcast - JavaOne 2014
Distributed computing with Hazelcast - JavaOne 2014Distributed computing with Hazelcast - JavaOne 2014
Distributed computing with Hazelcast - JavaOne 2014
 
Hadoop Tutorial
Hadoop TutorialHadoop Tutorial
Hadoop Tutorial
 
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
 
Phoenix for Rubyists
Phoenix for RubyistsPhoenix for Rubyists
Phoenix for Rubyists
 
HighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data GridsHighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data Grids
 

Semelhante a Think Distributed: The Hazelcast Way

Semelhante a Think Distributed: The Hazelcast Way (20)

An Engineer's Intro to Oracle Coherence
An Engineer's Intro to Oracle CoherenceAn Engineer's Intro to Oracle Coherence
An Engineer's Intro to Oracle Coherence
 
Java In-Process Caching - Performance, Progress and Pittfalls
Java In-Process Caching - Performance, Progress and PittfallsJava In-Process Caching - Performance, Progress and Pittfalls
Java In-Process Caching - Performance, Progress and Pittfalls
 
Java In-Process Caching - Performance, Progress and Pitfalls
Java In-Process Caching - Performance, Progress and PitfallsJava In-Process Caching - Performance, Progress and Pitfalls
Java In-Process Caching - Performance, Progress and Pitfalls
 
Where is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by exampleWhere is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by example
 
State of Java Elasticity. Tuning Java Efficiency - GIDS.JAVA LIVE 2020
State of Java Elasticity. Tuning Java Efficiency - GIDS.JAVA LIVE 2020State of Java Elasticity. Tuning Java Efficiency - GIDS.JAVA LIVE 2020
State of Java Elasticity. Tuning Java Efficiency - GIDS.JAVA LIVE 2020
 
JCache Using JCache
JCache Using JCacheJCache Using JCache
JCache Using JCache
 
Built-in query caching for all PHP MySQL extensions/APIs
Built-in query caching for all PHP MySQL extensions/APIsBuilt-in query caching for all PHP MySQL extensions/APIs
Built-in query caching for all PHP MySQL extensions/APIs
 
Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMS
 
Docker & ECS: Secure Nearline Execution
Docker & ECS: Secure Nearline ExecutionDocker & ECS: Secure Nearline Execution
Docker & ECS: Secure Nearline Execution
 
인피니스팬데이터그리드따라잡기 (@JCO 2014)
인피니스팬데이터그리드따라잡기 (@JCO 2014)인피니스팬데이터그리드따라잡기 (@JCO 2014)
인피니스팬데이터그리드따라잡기 (@JCO 2014)
 
Solid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupSolid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User Group
 
CloudStack Meetup London - Primary Storage Presentation by SolidFire
CloudStack Meetup London - Primary Storage Presentation by SolidFire CloudStack Meetup London - Primary Storage Presentation by SolidFire
CloudStack Meetup London - Primary Storage Presentation by SolidFire
 
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaKerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
 
Infinispan Data Grid Platform
Infinispan Data Grid PlatformInfinispan Data Grid Platform
Infinispan Data Grid Platform
 
인피니스팬 데이터그리드 플랫폼
인피니스팬 데이터그리드 플랫폼인피니스팬 데이터그리드 플랫폼
인피니스팬 데이터그리드 플랫폼
 
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
 
Caching in applications still matters
Caching in applications still mattersCaching in applications still matters
Caching in applications still matters
 
Using JCache to speed up your apps
Using JCache to speed up your appsUsing JCache to speed up your apps
Using JCache to speed up your apps
 
Amazon elastic map reduce
Amazon elastic map reduceAmazon elastic map reduce
Amazon elastic map reduce
 
Troubleshooting Memory Problems in Java Applications
Troubleshooting Memory Problems in Java ApplicationsTroubleshooting Memory Problems in Java Applications
Troubleshooting Memory Problems in Java Applications
 

Último

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 

Último (20)

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 

Think Distributed: The Hazelcast Way

  • 1. Thinking Distributed: The Hazelcast Way RAHUL GUPTA SR SOLUTIONS ARCHITECT
  • 2. About Me Senior Solutions Architect Worked with Terracotta In-memory Distributed Systems since 2009 Java Programmer since 1998 rahul@hazelcast.com Rahul Gupta follow me @wildnez
  • 4. Why Hazelcast? • Scale-out Computing enables cluster capacity to be increased or decreased on-demand • Resilience with automatic recovery from member failures without losing data while minimizing performance impact on running applications • Programming Model provides a way for developers to easily program a cluster application as if it is a single process • Fast Application Performance enables very large data sets to be held in main memory for real-time performance
  • 5.
  • 6. Ecosystem Traction Dozens of Commercial and Open Source Projects Embed Hazelcast
  • 7. 01001 10101 01010 In Memory Data Computing In Memory Data Messaging++In Memory Data Storage In Memory Data Grid
  • 8. Business Systems A B C RDBMS Mainframe MongoDB NoSQL REST Scale Hazelcast In-Memory Caching
  • 9. java.util.concurrent.ConcurrentMap import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; public static void main(String[] args) { ConcurrentMap<Integer, String> map = new ConcurrentHashMap<>(); map.put(1, "Paris"); map.put(2, "London"); map.put(3, "San Francisco"); String oldValue = map.remove(2); }
  • 10. Distributed Map import java.util.concurrent.ConcurrentMap; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; public static void main(String[] args) { HazelcastInstance h = Hazelcast.newHazelcastInstance(); ConcurrentMap<Integer, String> map = h.getMap("myMap"); map.put(1, "Paris"); map.put(2, "London"); map.put(3, "San Francisco"); String oldValue = map.remove(2); }
  • 11. DEMO
  • 12. Persistence API public class MapStorage implements MapStore<String, User>, MapLoader<String, User> { // Some methods missing ... @Override public User load(String key) { return loadValueDB(key); } @Override public Set<String> loadAllKeys() { return loadKeysDB(); } @Override public void delete(String key) { deleteDB(key); } @Override public void store(String key, User value) { storeToDatabase(key, value); } } <map name="users"> <map-store enabled="true"> <class-name>com.hazelcast.example.MapStorage</class-name> <write-delay-seconds>0</write-delay-seconds> </map-store> </map>
  • 13. JCache API // Retrieve the CachingProvider which is automatically baced by // the chosen Hazelcast server or client provider CachingProvider cachingProvider = Caching.getCachingProvider(); // Create a CacheManager CacheManager cacheManager = cachingProvider.getCacheManager(); // Cache<String, String> cache = cacheManager // .getCache( name, String.class, String.class ); // Create a simple but typesafe configuration for the cache CompleteConfiguration<String, String> config = new MutableConfiguration<String, String>() .setTypes( String.class, String.class );
  • 14. JCache API // Create and get the cache Cache<String, String> cache = cacheManager .createCache( "example", config ); // Alternatively to request an already existing cache Cache<String, String> cache = cacheManager .getCache( name, String.class, String.class ); // Put a value into the cache cache.put( "world", "Hello World" ); // Retrieve the value again from the cache String value = cache.get( "world" ); System.out.println( value );
  • 15. Eviction • Unless deleted, entries remain in the map. • Use eviction policies to prevent OOM situations. • Eviction Triggers run LFU or LRU. time-to-live max-idle-seconds max-size (PER_NODE(number of entries), PER_PARTITION(number of entries), USED_HEAP_SIZE(mb), USED_HEAP_PERCENTAGE(mb)) • Setting eviction-percentage removes that % of entries when eviction is triggered.
  • 16. Features Description MultiMap Store multiple values against one Key Replicated Map Cluster wide replication, all entries on all nodes. Good for read heavy use cases Near Cache Map Entries on Client/Application local memory RingBuffer Stores data in a ring-like structure, like a circular array with given capacity More Distributed Structures
  • 17. Java Collection API: Map, List, Set, Queue Jcache High Density Memory Store Hibernate 2nd Level Cache Web Session Replication: Tomcat, Jetty Predicate API: Indexes, SQL Query Persistence: Map/Queue Store & Loader. Write Behind/Through Spring Compliance Transactions: Local & XA WAN & DR Replication IM Data Store (Caching) Features
  • 18. Java: Will it make the cut? Garbage Collection limits heap usage. G1 and Balanced aim for <100ms at 10GB. Unused Memory 64GB 4GB 4s Heap Java Apps Memory Bound GC Pause Time Available Memory GC Off-Heap Storage No low-level CPU access Java is challenged as an infrastructure language despite its newly popular usage for this Heap
  • 19. GC Pause 64 Gb JVM 4 Gb JVM 1 4 Gb JVM 2 4 Gb JVM 3 4 Gb JVM 4 4 Gb JVM 5 4 Gb JVM 16 GC Pause 0 GB 64 GB 64 Gb in-memory data time Standard Impediments of Caching
  • 20. GC Pause 64 Gb JVM 4 Gb JVM 1 4 Gb JVM 2 4 Gb JVM 3 4 Gb JVM 4 4 Gb JVM 5 4 Gb JVM 16 GC Pause 0 Gb 64 Gb 64 Gb in-memory data time 64 Gb HD 2 Gb JVM GC Pause HD Memory Caching with HD Memory
  • 21. On-Heap Memory Store (Objects Stored as Objects) High-Density Memory Store (Objects Serialized and Stored as Bytes) s.m.Unsafe s.m.Unsafe 2-4GB (Limited by Garbage Collection) 0-1TB (Limited by Machine RAM) Memory Stores •Member •Client (Near Cache) RAM in JVM Process APIs JCache (ICache) Map (IMap) HD Memory
  • 22. On Heap Vs. High-Density Memory Management On Heap Memory HD Memory 0 MB HD 3.3 GB 3.9 GB Heap Storage 0.6 GB 9 (4900 ms) Major GC 0 (0 ms) 31 (4200 ms) Minor GC 356 (349 ms) Node Used Heap Total Heap Max. Heap Heap Usage Percentage Used Heap: 0.2 GB 192.168.1.10:5701 57 MB 229 MB 910 MB 6.28% Memory Utilization Home Offheap-test Node Used Heap: 3.9 GB 192.168.1.10:5701 3933 MB 4658MB 4653MB 84.45% Memory Utilization Home Used Heap Total Heap Max. Heap Heap Usage Percentage Example: On Heap Memory Example: HD Memory
  • 23. Hazelcast Servers Hazelcast Server JVM [Memory] A B C Business Logic Data Data Data CE = Compute Engine Result Business / Processing Logic Result TCP / IP Client Client Distributed Computing
  • 24. IM Distributed Computing Feature HD Cache Dist. Compute Dist. Message Java Concurrency API (Lock, Semaphore, AtomicLong, AtomicReference, Executor Service, Blocking Queue) Entry and Item Listeners Entry Processor Aggregators Map/Reduce Data Affinity Continues Query Map Interceptors Delta Update
  • 25. Executor Service API public interface com.hazelcast.core.IExecutorService extends java.util.concurrent.ExecutorService HazelcastInstance hz = getHazelcastInstance(); //java.util.concurrent.ExecutorService implementation IExecutorService es = hz.getExecutorService("name"); es.executeOnAllMembers(buildRunnable()); es.executeOnKeyOwner(buildRunnable(), "Peter"); es.execute(buildRunnable()); Map<..> futures = es.submitToAllMembers(buildCallable()); Future<..> future = es.submitToKeyOwner(buildCallable(), "Peter"); es.submitToAllMembers(buildCallable(), buildCallback()); es.submitToKeyOwner(buildCallable(), "Peter", buildCallback());
  • 27. Lock API HazelcastInstance hz = getHazelcastInstance(); // Distributed Reentrant L​ock l​ock = hz.getLock("myLock"); l​ock.lock(); try { // Do something } finally { l​ock.unlock(); } Distributed Lock
  • 30. Map/Reduce API HazelcastInstance hz = getHazelcastInstance(); Map users = hz.getMap("users"); JobTracker tracker = hz.getJobTracker("default"); KeyValueSource source = KeyValueSource.fromMap(users); Job job = tracker.newJob(source); ICompleteFuture future = job.mapper(new MyMapper()) .reducer(new MyReducer()) .submit(); Map result = future.get();
  • 31. Aggregations API HazelcastInstance hz = getHazelcastInstance(); Map users = hz.getMap("users"); int sum = users.aggregate( Supplier.all((user) -> user.getSalary()), Aggregations.longSum() );
  • 32. Hazelcast Distributed Topic Bus Hazelcast Topic Hazelcast Node 1 Hazelcast Node 2 Hazelcast Node 3 MSG Subscribes Delivers Subscribes Delivers Distributed Messaging
  • 33. Queue Topic (Pub/Sub) Event Listeners Ring Buffers IM Distributed Messaging Features HD Cache Dist. Compute Dist. Message
  • 34. Queue API interface com.hazelcast.core.IQueue<E> extends java.util.concurrent.BlockingQueue HazelcastInstance hz = getHazelcastInstance(); //java.util.concurrent.BlockingQueue implementation IQueue<Task> queue = hz.getQueue("tasks"); queue.offer(newTask()); queue.offer(newTask(), 500, TimeUnit.MILLISECONDS); Task task = queue.poll(); Task task = queue.poll(100, TimeUnit.MILLISECONDS); Task task = queue.take();
  • 35. Topic API public class Example implements MessageListener<String> { public void sendMessage { HazelcastInstance hz = getHazelcastInstance(); ITopic<String> topic = hz.getTopic("topic"); topic.addMessageListener(this); topic.publish("Hello World"); } @Override public void onMessage(Message<String> message) { System.out.println("Got message: " + message.getMessageObject()); } }
  • 36.
  • 37. Data Distribution and Resilience 37
  • 38. Distributed Maps Fixed number of partitions (default 271) Each key falls into a partition partitionId = hash(keyData)%PARTITION_COUNT Partition ownerships are reassigned upon membership change A B C
  • 47. Data Safety on Node Failure 47
  • 59. Deployment Options Great for early stages of rapid application development and iteration Necessary for scale up or scale out deployments – decouples upgrading of clients and cluster for long term TCO Embedded Hazelcast Hazelcast Node 1 Applications Java API Client-Server Mode Hazelcast Node 3 Java API Applications Java API Applications Java API Applications Hazelcast Node 2 Hazelcast Node 1 Hazelcast Node 2 Applications Java API Hazelcast Node 3 Applications Java API
  • 60. Easy API // Creating a new Hazelcast node HazelcastInstance hz = Hazelcast.newHazelcastInstance(); // Getting a Map, Queue, Topic, ... Map map = hz.getMap("my-map"); Queue queue = hz.getQueue("my-queue"); ITopic topic = hz.getTopic("my-topic"); //Creating a Hazelcast Client HazelcastInstance client = HazelcastClient.newHazelcastClient(); // Shutting down the node hz.shutdown();
  • 62. Hazelcast High Level Roadmap Hi-Density Caching In-Memory Data Grid 2014 2015 2016 HD Memory | Advance Messaging PaaS | Extensions | Integrations | JET Scalability | Resiliency | Elastic Memory | In-Memory Computing Advance In-memory Computing Platform
  • 63. © 2016 Hazelcast Inc. Confidential & Proprietary 63 Hazelcast 3.7 Release
  • 64. © 2016 Hazelcast Inc. Confidential & Proprietary 64 Features Description Modularity In 3.7, Hazelcast is converted to a modular system based around extension points. So clients, Cloud Discovery providers and integrations to third party systems like Hibernate etc will be released independently. 3.7 will then ship with the latest stable versions of each. Redesign of Partition Migration More robust partition migration to round out some edge cases. Graceful Shutdown Improvements More robust shutdown with partition migration on shutdown of a member Higher Networking Performance A further 30% improvement in performance across the cluster by eliminating notifyAll() calls. Map.putAll() Performance Speedup Implement member batching. Rule Based Query Optimizer Make queries significantly faster by using static transformations of queries. Azul Certification Run Hazelcast on Azul Zing for Java 6, 7 or 8 for less variation of latencies due to GC. Solaris Sparc Support Align HD Memory backed data structure's layouts so that platforms, such as SPARC work. Verify SPARC using our lab machine. New Features for JCache Simple creation similar to other Hazelcast Data Structures. E.g. Command Line Interface New command line interface for common operations performed by Operations. Non-blocking Vert.x integration New async methods in Map and integration with Vert.x to use them. New Hazelcast 3.7 Features
  • 65. © 2016 Hazelcast Inc. Confidential & Proprietary 65 Features Description Scala integration for Hazelcast members and Hazelcast client. Implements all Hazelcast features. Wraps the Java client for client mode and in embedded mode uses the Hazelcast member directly. Node.js Native client implementation using the Hazelcast Open Client protocol. Basic feature support. Python Native client implementation using the Hazelcast Open Client protocol. Supports most Hazelcast features. Clojure Clojure integration for Hazelcast members and Hazelcast client. Implements some Hazelcast features. Wraps the Java client for client mode and in embedded mode uses the Hazelcast member directly. New Hazelcast 3.7 Clients and Languages
  • 66. © 2016 Hazelcast Inc. Confidential & Proprietary 66 Features Description Azure Marketplace Ability to start Hazelcast instances on Docker environments easily. Provides Hazelcast, Hazelcast Enterprise and Management Center. Azure Cloud Provider Discover Provider for member discovery using Kubernetes. (Plugin) AWS Marketplace Deploy Hazelcast, Hazelcast Management Center and Hazelcast Enterprise clusters straight from the Marketplace. Consul Cloud Provider Discover Provider for member discovery for Consul (Plugin) Etcd Cloud Provider Discover Provider for member discovery for Etcd (Plugin) Zookeeper Cloud Provider Discover Provider for member discovery for Zookeeper (Plugin) Eureka Cloud Provider Discover Provider for member discovery for Eureka 1 from Netflix. (Plugin) Docker Enhancements Docker support for cloud provider plugins New Hazelcast 3.7 Cloud Features
  • 69. Features Description Amazon EC2 EC2 Auto discovery – upgraded with Discovery SPI Microsoft Azure Available on Azure Marketplace Pivotal Cloud Foundry Only distributed IMDG to provide on-demand service broker and disk based persistence OpenShift Native compliancy Hazelcast on Cloud – IaaS, PaaS
  • 70. Hazelcast on Cloud – SaaS, IaaS, PaaS Other off-the-shelf cloud based compliancy • OpenStack • Google Compute Engine • Google Platform Services • jClouds • Discovery SPI – Everything Everywhere
  • 71.
  • 72. What’s Hazelcast Jet? • General purpose distributed data processing framework • Based on Direct Acyclic Graph to model data flow • Built on top of Hazelcast • Comparable to Apache Spark or Apache Flink 7 2
  • 76. Service Offerings Hazelcast (Apache Licensed) • Professional Subscription – 24x7 support* Hazelcast Enterprise Support • Available with Hazelcast Enterprise software subscription - 24x7 support* Additional Services • Development Support Subscription – 8x5 support* • Simulator TCK • Training • Expert Consulting • Development Partner Program * All subscriptions include Management Center
  • 77. © 2016 Hazelcast Inc. Confidential & Proprietary 77 Support Subscriptions What’s Included 100% SUCCESS RATE ON CUSTOMER ISSUES: “As usual, the response was timely beyond expectations, and very good technical content returned. Exemplary support, hard to find in any company…” - Fortune 100 Financial Services Customer ENTERPRISE HD ENTERPRISE PROFESSIONAL OPEN SOURCE SUPPORT WINDOW 24/7 24/7 24/7 RESPONSE TIME FOR CRITIAL ISSUES 1 Hour 1 Hour 2 Hours SUPPORTED SOFTWARE Hazelcast & Hazelcast Enterprise Hazelcast & Hazelcast Enterprise Hazelcast SUPPORT CONTACTS 4 4 2 SUPPORT CHANNELS Email, IM & Phone Email, IM & Phone Email, IM & Phone PATCH LEVEL FIXES    REMOTE MEETINGS (via GoToMeeting)    CODE REVIEW (with a Senior Solutions Architect) 2 Hours 2 Hours 2 Hours QUARTERLY REVIEW OF FEATURE REQUES*   QUARTERLY REVIEW OF HAZELCAST ROADMAP*  
  • 78. © 2016 Hazelcast Inc. Confidential & Proprietary 7 8 Best In Class Support  Support from the Engineers who wrote the code  SLA Driven – 100% attainment of support response time  Follow the Sun  Portal, Email and Phone access  Go Red, Go Green. Reproduction of issues on Simulator. Proof of fix on Simulator.  Periodic Technical Reviews  Meet your production schedule and corporate compliance requirements  Ensure the success of your development team with training and best practices
  • 80. © 2016 Hazelcast Inc. Confidential & Proprietary 80 Support Testimonials
  • 81. © 2016 Hazelcast Inc. Confidential & Proprietary 81 Release Lifecycle • Regular Feature release each 4-5 months, e.g. 3.3, 3.4, 3.5 • Maintenance release approximately each month with bug fixes based on the current feature release, e.g. 3.4.1 • For older versions, patch releases made available to fix issues • Release End of Life per support contract