SlideShare a Scribd company logo
The In-Memory Data Grid
Photo by Franki Chamaki on Unsplash
About me ...
- Passionate software engineer
- Focused mainly on JVM
- Interested in all software development phases
- Having erethic opinions
- Non politically correct, but just correct …
- Personal belief: “living in a distributed and reactive full of actors system”
Posting on:
Agenda
1. What is In-Memory Data Grid (IMDG) ?
2. Hazelcast IMDG
3. Cluster Discovery
4. Partitioning and Replication
5. Data Structure Overview
6. User-Code Deployment & Hazelcast-Spring
7. Demo time!
What is an In-Memory Data Grid (IMDG) ?
A Data Grid is a system of multiple servers that work together to manage
information and related operations in a distributed environment.
What is an In-Memory Data Grid (IMDG) ?
A Data Grid is a system of multiple servers that work together to manage
information and related operations in a distributed environment.
The servers from the grid can be located in the same location or distributed
across multiple data centers.
What is an In-Memory Data Grid (IMDG) ?
A Data Grid is a system of multiple servers that work together to manage
information and related operations in a distributed environment.
The servers from the grid can be located in the same location or distributed across
multiple data centers.
An In-Memory Data Grid is a grid that stores data entirely into RAM.
What is an In-Memory Data Grid (IMDG) ?
What is an In-Memory Data Grid (IMDG) ?
Why to use an In-Memory Data Grid?
Performance
● Access data 1000x faster
than a database
● Low latency for batch and
stream processing
Why to use an In-Memory Data Grid?
Performance Data structure/Handling
● Access data 1000x faster
than a database
● Low latency for batch and
stream processing
● Non-relational key-value
● ACID compliance
Why to use an In-Memory Data Grid?
Performance Data structure/Handling Operations
● Access data 1000x faster
than a database
● Low latency for batch and
stream processing
● Non-relational key-value
● ACID compliance
● Scalability
● Redundancy for HA
When to use an In-Memory Data Grid?
Data Cache
● Eliminates data store
bottlenecks
● Eliminates slow network
connections
● Long-running blocking
calculations
When to use an In-Memory Data Grid?
Data Cache Data Service Fabric
● Eliminates data store
bottlenecks
● Eliminates slow network
connections
● Long-running blocking
calculations
● Real-time integration
● Compute grid
● Message broker
When to use an In-Memory Data Grid?
Data Cache Data Service Fabric Examples
● Eliminates data store
bottlenecks
● Eliminates slow network
connections
● Long-running blocking
calculations
● Real-time integration
● Compute grid
● Message broker
● Analytics (Risk,
Fraud-detection)
● Trading Systems (FX
Trading, Stock Exchange)
● eCommerce
● Online Gaming
Basic operations of an In-Memory Data Grid
Cluster
● Distributed data
● Highly scalable
● Fault tolerance
Basic operations of an In-Memory Data Grid
Cluster Discovery
● Distributed data
● Highly scalable
● Fault tolerance
● Form
● Join
● Find
Basic operations of an In-Memory Data Grid
Cluster Discovery Data Distribution
● Distributed data
● Highly scalable
● Fault tolerance
● Form
● Join
● Find
● Replication/Mirroring
● Partitioning/Sharding
Replication and Partitioning
Replication - all the data is replicated (synchronously or asynchronously) to
every node in the cluster.
Replication and Partitioning
Replication - all the data is replicated (synchronously or asynchronously) to
every node in the cluster.
examples: a cluster of a relational database (MySQL, Oracle, etc.) leveraging
the master/leader-slave/follower model
Replication and Partitioning
Replication - all the data is replicated (synchronously or asynchronously) to
every node in the cluster.
examples: a cluster of a relational database (MySQL, Oracle, etc.) leveraging
the master/leader-slave/follower model
- Synchronous replication: writes need to be confirmed by a configurable
number of slaves/followers before the master/leader reports success (ACKs).
- Asynchronous replication: the master/leader reports success immediately
after a write was committed to its own disk/memory; followers apply the
changes in their own pace.
Replication and Partitioning
Partitioning/Sharding - is the most scalable distributed mode and relies on
keeping data in multiple disjoint distributed collections on different nodes,
leveraging 3 partitioning strategies: range, hash and custom partitioning.
Replication and Partitioning
Partitioning/Sharding - is the most scalable distributed mode and relies on keeping
data in multiple disjoint distributed collections on different nodes, leveraging 3
partitioning strategies: range, hash and custom partitioning.
examples: most NoSQL databases (Cassandra, MongoDB, etc.), Kafka uses
partitions
Replication and Partitioning
Partitioning/Sharding - is the most scalable distributed mode and relies on keeping data in multiple
disjoint distributed collections on different nodes, leveraging 3 partitioning strategies: range, hash and
custom partitioning.
examples: most NoSQL databases (Cassandra, MongoDB, etc.), Kafka uses partitions
- Range partitioning: takes into account the natural order of keys to split the dataset in the required
number of partitions; ex: MySQL partitions.
- Hash partitioning: calculates a hash over the each item key and then produces the modulo of this
hash to determine the new partition; ex: Cassandra consistent hashing algorithm.
- Custom partitioning: exploits locally or uniqueness properties of the data to calculate the
appropriate partition to store the data to; ex: pre-hashed data like git commits or location
specific data like all records from Europe
Replication vs Partitioning
Cons
Cons
Pros
Pros
Pros
Pros
Workload scalability
High availability
Failure recovery
Replication vs Partitioning
Replication Cons
Cons
Pros
Pros
Pros
Pros
Workload scalability
High availability
Failure recovery
Cons
Replication negative
performance impact
Data inconsistency
Memory scalability
issues
Replication vs Partitioning
Replication Cons
Cons
Pros
Pros
Pros
Pros
Workload scalability
High availability
Failure recovery
Cons
Replication negative
performance impact
Data inconsistency
Memory scalability
issues
Pros
Workload scalability
Failure recovery
Memory scalability
Good synchronization
performance
Replication vs Partitioning
Replication Cons
Cons
Pros
Pros
Pros
Pros
Workload scalability
High availability
Failure recovery
Cons
Replication negative
performance impact
Data inconsistency
Memory scalability
issues
Pros
Workload scalability
Failure recovery
Memory scalability
Good synchronization
performance
Cons
Migration negative
performance impact
Large memory
requirements
Deployment options
Embedded IMDG Client-Server
Hazelcast IMDG -
Characteristics
Why to choose Hazelcast IMDG?
Market Leader
● Hazelcast IMDG is
market leader
among In-Memory
Data Grid
solutions
Why to choose Hazelcast IMDG?
Market Leader Rich API
● Hazelcast IMDG is
market leader
among In-Memory
Data Grid
solutions
● APIs in various
programming
languages: Java,
C#.NET, Python,
etc.
● Powerful features
● Huge user base -
open source project
Why to choose Hazelcast IMDG?
Market Leader Rich API Ease of use
● Hazelcast IMDG is
market leader
among In-Memory
Data Grid
solutions
● APIs in various
programming
languages: Java,
C#.NET, Python,
etc.
● Powerful features
● Huge user base -
open source project
● Simple to use key-value
data store
● Standard data
structures: Map, List,
Queue, etc.
● Clients for many
programming
languages
● Redundancy/fail-over/sc
aling built-in
Why to choose Hazelcast IMDG?
Market Leader Rich API Ease of use Distributed data store
& computation system
● Hazelcast IMDG is
market leader
among In-Memory
Data Grid
solutions
● APIs in various
programming
languages: Java,
C#.NET, Python,
etc.
● Powerful features
● Huge user base -
open source project
● Simple to use key-value
data store
● Standard data
structures: Map, List,
Queue, etc.
● Clients for many
programming
languages
● Redundancy/fail-over/
scaling built-in
● Distributed data
store
● Distributed
computation near
stored data
Business scenario and HLA - overview
Business scenario:
● We will use Hazelcast IMDG for
developing a Foreign Exchange
Quotation Management System.
The system is consisting of:
● Two Spring Boot microservices:
market-client and trader-cli which are
basically Hazelcast clients and are
communicating with the grid via APIs.
● One Spring Boot microservice called
processing-unit which is basically a
Hazelcast server member that will join the
cluster when started.
Hazelcast features used
Deployment model:
● Client-Server
Cluster discovery mechanism:
● TCP/IP unicast discovery
Data structures used:
● Replicated Map
● Partitioned Map
Client-Server Deployment Model
Hazelcast Client Hazelcast Cluster Member
For creating a Hazelcast Client Java application we
must add the following dependencies:
● Prior to Hazelcast 4.x:
○ com.hazelcast:hazelcast:3.x
○ com.hazelcast:hazelcast-client:3.x
● For projects which are using Hazelcast 4.x:
○ com.hazelcast:hazelcast:4.x
For creating a Hazelcast Cluster Member Java
application we must add the following dependency:
○ com.hazelcast:hazelcast:${version}
Hazelcast Cluster Discovery
There are multiple ways to establish a discovery mechanism inside our Hazelcast
cluster:
● TCP/IP multicast
● TCP/IP unicast
● Discovery plugins or cloud: Eureka, ZooKeeper, K8s, OpenShift, Pivotal
Cloud Foundry (PCF), Google Cloud Platform (GCP), AWS, Azure
● Custom discovery mechanism via Discovery SPI
Hazelcast Cluster Discovery
In our cluster members we use TCP/IP unicast discovery.
In com.freesoft.fx.trading.processingunit.infrastructure.imdg.HazelcastConfiguration.java:
Hazelcast Replicated Map
In the processing-unit Hazelcast Cluster Member Java application we are using
a replicated map data structure for storing the quote prices published by the
market-client.
The map must have a name, which in our case is “QUOTES_MAP” and is stored
in binary format in each cluster member instance.
Hazelcast Replicated Map
The necessary configuration for using a Replicated Map can be found in
com.freesoft.fx.trading.processingunit.infrastructure.imdg.HazelcastConfiguration.java file.
Hazelcast Partitioned Map
In the processing-unit Hazelcast Cluster Member Java application we are using
a partitioned map data structure for storing all commands (Buy and Sell)
published by each trader (trader-cli microservice).
Hazelcast uses a hash partitioning for distributing the data across all cluster
members.
Hazelcast Partitioned Map
The necessary configuration for using a Partitioned Map can be found in
com.freesoft.fx.trading.processingunit.infrastructure.imdg.HazelcastConfiguration.java file.
User code deployment
& Hazelcast-Spring
User code deployment
● Not enabled by default
● Allows us to load client classes inside cluster members
● There are necessary configurations that must be done in both
the client and the cluster member
User code deployment
Client configuration
User code deployment
Client configuration Cluster member configuration
Hazelcast-Spring
● com.hazelcast:hazelcast-spring:${version}
Hazelcast-Spring
● com.hazelcast:hazelcast-spring:${version}
● Dependency Inversion Principle
Hazelcast-Spring
● com.hazelcast:hazelcast-spring:${version}
● Dependency Inversion Principle
● @SpringAware
Hazelcast-Spring
● com.hazelcast:hazelcast-spring:${version}
● Dependency Inversion Principle
● @SpringAware
User-code deployment & Hazelcast-Spring
User-code deployment & Hazelcast-Spring
User-code deployment & Hazelcast-Spring
User-code deployment & Hazelcast-Spring
User-code deployment & Hazelcast-Spring
User-code deployment & Hazelcast-Spring
User-code deployment & Hazelcast-Spring
User-code deployment & Hazelcast-Spring
Demo Time!
Source code:
Hazelcast post on Medium!
Thank you !
● Don’t forget to follow me on @dinabogdan03
● Don’t forget to read my articles on @bogdan.dina03
● Join Bucharest Apache Kafka meetup group !!!
Ad

More Related Content

What's hot (20)

Navigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skiesNavigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skies
shnkr_rmchndrn
 
SQL, NoSQL, BigData in Data Architecture
SQL, NoSQL, BigData in Data ArchitectureSQL, NoSQL, BigData in Data Architecture
SQL, NoSQL, BigData in Data Architecture
Venu Anuganti
 
Welcome | MariaDB today and our vision for the future
Welcome | MariaDB today and our vision for the futureWelcome | MariaDB today and our vision for the future
Welcome | MariaDB today and our vision for the future
MariaDB plc
 
NoSQL Data Architecture Patterns
NoSQL Data ArchitecturePatternsNoSQL Data ArchitecturePatterns
NoSQL Data Architecture Patterns
Maynooth University
 
Gcp data engineer
Gcp data engineerGcp data engineer
Gcp data engineer
Narendranath Reddy T
 
Accelerating Machine Learning Pipelines with Alluxio at Alluxio Meetup 2016
Accelerating Machine Learning Pipelines with Alluxio at Alluxio Meetup 2016Accelerating Machine Learning Pipelines with Alluxio at Alluxio Meetup 2016
Accelerating Machine Learning Pipelines with Alluxio at Alluxio Meetup 2016
Alluxio, Inc.
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimization
MariaDB plc
 
Chapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choicesChapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choices
Maynooth University
 
Develop Scalable Applications with DataStax Drivers (Alex Popescu, Bulat Shak...
Develop Scalable Applications with DataStax Drivers (Alex Popescu, Bulat Shak...Develop Scalable Applications with DataStax Drivers (Alex Popescu, Bulat Shak...
Develop Scalable Applications with DataStax Drivers (Alex Popescu, Bulat Shak...
DataStax
 
Data Virtualization in the Cloud: Accelerating Data Virtualization Adoption
Data Virtualization in the Cloud: Accelerating Data Virtualization AdoptionData Virtualization in the Cloud: Accelerating Data Virtualization Adoption
Data Virtualization in the Cloud: Accelerating Data Virtualization Adoption
Denodo
 
Comparison between mongo db and cassandra using ycsb
Comparison between mongo db and cassandra using ycsbComparison between mongo db and cassandra using ycsb
Comparison between mongo db and cassandra using ycsb
sonalighai
 
Triangle MySQL User Group MySQL Fabric Presentation Feb 12th, 2015
Triangle MySQL User Group MySQL Fabric Presentation Feb 12th, 2015Triangle MySQL User Group MySQL Fabric Presentation Feb 12th, 2015
Triangle MySQL User Group MySQL Fabric Presentation Feb 12th, 2015
Dave Stokes
 
Cassandra
CassandraCassandra
Cassandra
Upaang Saxena
 
Horizon for Big Data
Horizon for Big DataHorizon for Big Data
Horizon for Big Data
Schubert Zhang
 
سکوهای ابری و مدل های برنامه نویسی در ابر
سکوهای ابری و مدل های برنامه نویسی در ابرسکوهای ابری و مدل های برنامه نویسی در ابر
سکوهای ابری و مدل های برنامه نویسی در ابر
datastack
 
Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...
Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...
Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...
DataStax
 
An Effective Approach to Migrate Cassandra Thrift to CQL (Yabin Meng, Pythian...
An Effective Approach to Migrate Cassandra Thrift to CQL (Yabin Meng, Pythian...An Effective Approach to Migrate Cassandra Thrift to CQL (Yabin Meng, Pythian...
An Effective Approach to Migrate Cassandra Thrift to CQL (Yabin Meng, Pythian...
DataStax
 
Netezza Deep Dives
Netezza Deep DivesNetezza Deep Dives
Netezza Deep Dives
Rush Shah
 
DataStax | Distributing the Enterprise, Safely (Thomas Valley) | Cassandra Su...
DataStax | Distributing the Enterprise, Safely (Thomas Valley) | Cassandra Su...DataStax | Distributing the Enterprise, Safely (Thomas Valley) | Cassandra Su...
DataStax | Distributing the Enterprise, Safely (Thomas Valley) | Cassandra Su...
DataStax
 
DataStax | Adversarial Modeling: Graph, ML, and Analytics for Identity Fraud ...
DataStax | Adversarial Modeling: Graph, ML, and Analytics for Identity Fraud ...DataStax | Adversarial Modeling: Graph, ML, and Analytics for Identity Fraud ...
DataStax | Adversarial Modeling: Graph, ML, and Analytics for Identity Fraud ...
DataStax
 
Navigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skiesNavigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skies
shnkr_rmchndrn
 
SQL, NoSQL, BigData in Data Architecture
SQL, NoSQL, BigData in Data ArchitectureSQL, NoSQL, BigData in Data Architecture
SQL, NoSQL, BigData in Data Architecture
Venu Anuganti
 
Welcome | MariaDB today and our vision for the future
Welcome | MariaDB today and our vision for the futureWelcome | MariaDB today and our vision for the future
Welcome | MariaDB today and our vision for the future
MariaDB plc
 
NoSQL Data Architecture Patterns
NoSQL Data ArchitecturePatternsNoSQL Data ArchitecturePatterns
NoSQL Data Architecture Patterns
Maynooth University
 
Accelerating Machine Learning Pipelines with Alluxio at Alluxio Meetup 2016
Accelerating Machine Learning Pipelines with Alluxio at Alluxio Meetup 2016Accelerating Machine Learning Pipelines with Alluxio at Alluxio Meetup 2016
Accelerating Machine Learning Pipelines with Alluxio at Alluxio Meetup 2016
Alluxio, Inc.
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimization
MariaDB plc
 
Chapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choicesChapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choices
Maynooth University
 
Develop Scalable Applications with DataStax Drivers (Alex Popescu, Bulat Shak...
Develop Scalable Applications with DataStax Drivers (Alex Popescu, Bulat Shak...Develop Scalable Applications with DataStax Drivers (Alex Popescu, Bulat Shak...
Develop Scalable Applications with DataStax Drivers (Alex Popescu, Bulat Shak...
DataStax
 
Data Virtualization in the Cloud: Accelerating Data Virtualization Adoption
Data Virtualization in the Cloud: Accelerating Data Virtualization AdoptionData Virtualization in the Cloud: Accelerating Data Virtualization Adoption
Data Virtualization in the Cloud: Accelerating Data Virtualization Adoption
Denodo
 
Comparison between mongo db and cassandra using ycsb
Comparison between mongo db and cassandra using ycsbComparison between mongo db and cassandra using ycsb
Comparison between mongo db and cassandra using ycsb
sonalighai
 
Triangle MySQL User Group MySQL Fabric Presentation Feb 12th, 2015
Triangle MySQL User Group MySQL Fabric Presentation Feb 12th, 2015Triangle MySQL User Group MySQL Fabric Presentation Feb 12th, 2015
Triangle MySQL User Group MySQL Fabric Presentation Feb 12th, 2015
Dave Stokes
 
سکوهای ابری و مدل های برنامه نویسی در ابر
سکوهای ابری و مدل های برنامه نویسی در ابرسکوهای ابری و مدل های برنامه نویسی در ابر
سکوهای ابری و مدل های برنامه نویسی در ابر
datastack
 
Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...
Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...
Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...
DataStax
 
An Effective Approach to Migrate Cassandra Thrift to CQL (Yabin Meng, Pythian...
An Effective Approach to Migrate Cassandra Thrift to CQL (Yabin Meng, Pythian...An Effective Approach to Migrate Cassandra Thrift to CQL (Yabin Meng, Pythian...
An Effective Approach to Migrate Cassandra Thrift to CQL (Yabin Meng, Pythian...
DataStax
 
Netezza Deep Dives
Netezza Deep DivesNetezza Deep Dives
Netezza Deep Dives
Rush Shah
 
DataStax | Distributing the Enterprise, Safely (Thomas Valley) | Cassandra Su...
DataStax | Distributing the Enterprise, Safely (Thomas Valley) | Cassandra Su...DataStax | Distributing the Enterprise, Safely (Thomas Valley) | Cassandra Su...
DataStax | Distributing the Enterprise, Safely (Thomas Valley) | Cassandra Su...
DataStax
 
DataStax | Adversarial Modeling: Graph, ML, and Analytics for Identity Fraud ...
DataStax | Adversarial Modeling: Graph, ML, and Analytics for Identity Fraud ...DataStax | Adversarial Modeling: Graph, ML, and Analytics for Identity Fraud ...
DataStax | Adversarial Modeling: Graph, ML, and Analytics for Identity Fraud ...
DataStax
 

Similar to Data has a better idea the in-memory data grid (20)

Apache ignite v1.3
Apache ignite v1.3Apache ignite v1.3
Apache ignite v1.3
Klearchos Klearchou
 
Big Data on Cloud Native Platform
Big Data on Cloud Native PlatformBig Data on Cloud Native Platform
Big Data on Cloud Native Platform
Sunil Govindan
 
Big Data on Cloud Native Platform
Big Data on Cloud Native PlatformBig Data on Cloud Native Platform
Big Data on Cloud Native Platform
Sunil Govindan
 
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
Olivier DASINI
 
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
ScyllaDB
 
MongoDB by Tonny
MongoDB by TonnyMongoDB by Tonny
MongoDB by Tonny
Agate Studio
 
MySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated EnvironmentMySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated Environment
Jean-François Gagné
 
Scalability Considerations
Scalability ConsiderationsScalability Considerations
Scalability Considerations
Navid Malek
 
Big data nyu
Big data nyuBig data nyu
Big data nyu
Edward Capriolo
 
TechDay - Toronto 2016 - Hyperconvergence and OpenNebula
TechDay - Toronto 2016 - Hyperconvergence and OpenNebulaTechDay - Toronto 2016 - Hyperconvergence and OpenNebula
TechDay - Toronto 2016 - Hyperconvergence and OpenNebula
OpenNebula Project
 
MongoDB Sharding Webinar 2014
MongoDB Sharding Webinar 2014MongoDB Sharding Webinar 2014
MongoDB Sharding Webinar 2014
Dylan Tong
 
SQL Engines for Hadoop - The case for Impala
SQL Engines for Hadoop - The case for ImpalaSQL Engines for Hadoop - The case for Impala
SQL Engines for Hadoop - The case for Impala
markgrover
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
Taras Matyashovsky
 
Mysql NDB Cluster's Asynchronous Parallel Design for High Performance
Mysql NDB Cluster's Asynchronous Parallel Design for High PerformanceMysql NDB Cluster's Asynchronous Parallel Design for High Performance
Mysql NDB Cluster's Asynchronous Parallel Design for High Performance
Bernd Ocklin
 
MySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated EnvironmentMySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated Environment
Jean-François Gagné
 
Apache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-AriApache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-Ari
Demi Ben-Ari
 
Drupal performance and scalability
Drupal performance and scalabilityDrupal performance and scalability
Drupal performance and scalability
Twinbit
 
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
ScyllaDB
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud Computing
SpringPeople
 
Big Data on Cloud Native Platform
Big Data on Cloud Native PlatformBig Data on Cloud Native Platform
Big Data on Cloud Native Platform
Sunil Govindan
 
Big Data on Cloud Native Platform
Big Data on Cloud Native PlatformBig Data on Cloud Native Platform
Big Data on Cloud Native Platform
Sunil Govindan
 
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
Olivier DASINI
 
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
ScyllaDB
 
MySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated EnvironmentMySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated Environment
Jean-François Gagné
 
Scalability Considerations
Scalability ConsiderationsScalability Considerations
Scalability Considerations
Navid Malek
 
TechDay - Toronto 2016 - Hyperconvergence and OpenNebula
TechDay - Toronto 2016 - Hyperconvergence and OpenNebulaTechDay - Toronto 2016 - Hyperconvergence and OpenNebula
TechDay - Toronto 2016 - Hyperconvergence and OpenNebula
OpenNebula Project
 
MongoDB Sharding Webinar 2014
MongoDB Sharding Webinar 2014MongoDB Sharding Webinar 2014
MongoDB Sharding Webinar 2014
Dylan Tong
 
SQL Engines for Hadoop - The case for Impala
SQL Engines for Hadoop - The case for ImpalaSQL Engines for Hadoop - The case for Impala
SQL Engines for Hadoop - The case for Impala
markgrover
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
Taras Matyashovsky
 
Mysql NDB Cluster's Asynchronous Parallel Design for High Performance
Mysql NDB Cluster's Asynchronous Parallel Design for High PerformanceMysql NDB Cluster's Asynchronous Parallel Design for High Performance
Mysql NDB Cluster's Asynchronous Parallel Design for High Performance
Bernd Ocklin
 
MySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated EnvironmentMySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated Environment
Jean-François Gagné
 
Apache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-AriApache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-Ari
Demi Ben-Ari
 
Drupal performance and scalability
Drupal performance and scalabilityDrupal performance and scalability
Drupal performance and scalability
Twinbit
 
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
ScyllaDB
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud Computing
SpringPeople
 
Ad

Recently uploaded (20)

A Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business StageA Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business Stage
SynapseIndia
 
Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025
Web Designer
 
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdfHow to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
victordsane
 
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by AjathMobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Ajath Infotech Technologies LLC
 
Beyond the code. Complexity - 2025.05 - SwiftCraft
Beyond the code. Complexity - 2025.05 - SwiftCraftBeyond the code. Complexity - 2025.05 - SwiftCraft
Beyond the code. Complexity - 2025.05 - SwiftCraft
Dmitrii Ivanov
 
Gojek Clone App for Multi-Service Business
Gojek Clone App for Multi-Service BusinessGojek Clone App for Multi-Service Business
Gojek Clone App for Multi-Service Business
XongoLab Technologies LLP
 
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studiesTroubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Tier1 app
 
Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??
Web Designer
 
From Vibe Coding to Vibe Testing - Complete PowerPoint Presentation
From Vibe Coding to Vibe Testing - Complete PowerPoint PresentationFrom Vibe Coding to Vibe Testing - Complete PowerPoint Presentation
From Vibe Coding to Vibe Testing - Complete PowerPoint Presentation
Shay Ginsbourg
 
Tools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google CertificateTools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google Certificate
VICTOR MAESTRE RAMIREZ
 
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
Ranking Google
 
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdfTop Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
evrigsolution
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
sequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineeringsequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineering
aashrithakondapalli8
 
Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
AEM User Group DACH - 2025 Inaugural Meeting
AEM User Group DACH - 2025 Inaugural MeetingAEM User Group DACH - 2025 Inaugural Meeting
AEM User Group DACH - 2025 Inaugural Meeting
jennaf3
 
Autodesk Inventor Crack (2025) Latest
Autodesk Inventor    Crack (2025) LatestAutodesk Inventor    Crack (2025) Latest
Autodesk Inventor Crack (2025) Latest
Google
 
The Elixir Developer - All Things Open
The Elixir Developer - All Things OpenThe Elixir Developer - All Things Open
The Elixir Developer - All Things Open
Carlo Gilmar Padilla Santana
 
Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025
Phil Eaton
 
Programs as Values - Write code and don't get lost
Programs as Values - Write code and don't get lostPrograms as Values - Write code and don't get lost
Programs as Values - Write code and don't get lost
Pierangelo Cecchetto
 
A Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business StageA Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business Stage
SynapseIndia
 
Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025
Web Designer
 
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdfHow to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
victordsane
 
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by AjathMobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Ajath Infotech Technologies LLC
 
Beyond the code. Complexity - 2025.05 - SwiftCraft
Beyond the code. Complexity - 2025.05 - SwiftCraftBeyond the code. Complexity - 2025.05 - SwiftCraft
Beyond the code. Complexity - 2025.05 - SwiftCraft
Dmitrii Ivanov
 
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studiesTroubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Tier1 app
 
Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??
Web Designer
 
From Vibe Coding to Vibe Testing - Complete PowerPoint Presentation
From Vibe Coding to Vibe Testing - Complete PowerPoint PresentationFrom Vibe Coding to Vibe Testing - Complete PowerPoint Presentation
From Vibe Coding to Vibe Testing - Complete PowerPoint Presentation
Shay Ginsbourg
 
Tools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google CertificateTools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google Certificate
VICTOR MAESTRE RAMIREZ
 
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
Ranking Google
 
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdfTop Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
evrigsolution
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
sequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineeringsequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineering
aashrithakondapalli8
 
Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
AEM User Group DACH - 2025 Inaugural Meeting
AEM User Group DACH - 2025 Inaugural MeetingAEM User Group DACH - 2025 Inaugural Meeting
AEM User Group DACH - 2025 Inaugural Meeting
jennaf3
 
Autodesk Inventor Crack (2025) Latest
Autodesk Inventor    Crack (2025) LatestAutodesk Inventor    Crack (2025) Latest
Autodesk Inventor Crack (2025) Latest
Google
 
Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025
Phil Eaton
 
Programs as Values - Write code and don't get lost
Programs as Values - Write code and don't get lostPrograms as Values - Write code and don't get lost
Programs as Values - Write code and don't get lost
Pierangelo Cecchetto
 
Ad

Data has a better idea the in-memory data grid

  • 1. The In-Memory Data Grid Photo by Franki Chamaki on Unsplash
  • 2. About me ... - Passionate software engineer - Focused mainly on JVM - Interested in all software development phases - Having erethic opinions - Non politically correct, but just correct … - Personal belief: “living in a distributed and reactive full of actors system” Posting on:
  • 3. Agenda 1. What is In-Memory Data Grid (IMDG) ? 2. Hazelcast IMDG 3. Cluster Discovery 4. Partitioning and Replication 5. Data Structure Overview 6. User-Code Deployment & Hazelcast-Spring 7. Demo time!
  • 4. What is an In-Memory Data Grid (IMDG) ? A Data Grid is a system of multiple servers that work together to manage information and related operations in a distributed environment.
  • 5. What is an In-Memory Data Grid (IMDG) ? A Data Grid is a system of multiple servers that work together to manage information and related operations in a distributed environment. The servers from the grid can be located in the same location or distributed across multiple data centers.
  • 6. What is an In-Memory Data Grid (IMDG) ? A Data Grid is a system of multiple servers that work together to manage information and related operations in a distributed environment. The servers from the grid can be located in the same location or distributed across multiple data centers. An In-Memory Data Grid is a grid that stores data entirely into RAM.
  • 7. What is an In-Memory Data Grid (IMDG) ?
  • 8. What is an In-Memory Data Grid (IMDG) ?
  • 9. Why to use an In-Memory Data Grid? Performance ● Access data 1000x faster than a database ● Low latency for batch and stream processing
  • 10. Why to use an In-Memory Data Grid? Performance Data structure/Handling ● Access data 1000x faster than a database ● Low latency for batch and stream processing ● Non-relational key-value ● ACID compliance
  • 11. Why to use an In-Memory Data Grid? Performance Data structure/Handling Operations ● Access data 1000x faster than a database ● Low latency for batch and stream processing ● Non-relational key-value ● ACID compliance ● Scalability ● Redundancy for HA
  • 12. When to use an In-Memory Data Grid? Data Cache ● Eliminates data store bottlenecks ● Eliminates slow network connections ● Long-running blocking calculations
  • 13. When to use an In-Memory Data Grid? Data Cache Data Service Fabric ● Eliminates data store bottlenecks ● Eliminates slow network connections ● Long-running blocking calculations ● Real-time integration ● Compute grid ● Message broker
  • 14. When to use an In-Memory Data Grid? Data Cache Data Service Fabric Examples ● Eliminates data store bottlenecks ● Eliminates slow network connections ● Long-running blocking calculations ● Real-time integration ● Compute grid ● Message broker ● Analytics (Risk, Fraud-detection) ● Trading Systems (FX Trading, Stock Exchange) ● eCommerce ● Online Gaming
  • 15. Basic operations of an In-Memory Data Grid Cluster ● Distributed data ● Highly scalable ● Fault tolerance
  • 16. Basic operations of an In-Memory Data Grid Cluster Discovery ● Distributed data ● Highly scalable ● Fault tolerance ● Form ● Join ● Find
  • 17. Basic operations of an In-Memory Data Grid Cluster Discovery Data Distribution ● Distributed data ● Highly scalable ● Fault tolerance ● Form ● Join ● Find ● Replication/Mirroring ● Partitioning/Sharding
  • 18. Replication and Partitioning Replication - all the data is replicated (synchronously or asynchronously) to every node in the cluster.
  • 19. Replication and Partitioning Replication - all the data is replicated (synchronously or asynchronously) to every node in the cluster. examples: a cluster of a relational database (MySQL, Oracle, etc.) leveraging the master/leader-slave/follower model
  • 20. Replication and Partitioning Replication - all the data is replicated (synchronously or asynchronously) to every node in the cluster. examples: a cluster of a relational database (MySQL, Oracle, etc.) leveraging the master/leader-slave/follower model - Synchronous replication: writes need to be confirmed by a configurable number of slaves/followers before the master/leader reports success (ACKs). - Asynchronous replication: the master/leader reports success immediately after a write was committed to its own disk/memory; followers apply the changes in their own pace.
  • 21. Replication and Partitioning Partitioning/Sharding - is the most scalable distributed mode and relies on keeping data in multiple disjoint distributed collections on different nodes, leveraging 3 partitioning strategies: range, hash and custom partitioning.
  • 22. Replication and Partitioning Partitioning/Sharding - is the most scalable distributed mode and relies on keeping data in multiple disjoint distributed collections on different nodes, leveraging 3 partitioning strategies: range, hash and custom partitioning. examples: most NoSQL databases (Cassandra, MongoDB, etc.), Kafka uses partitions
  • 23. Replication and Partitioning Partitioning/Sharding - is the most scalable distributed mode and relies on keeping data in multiple disjoint distributed collections on different nodes, leveraging 3 partitioning strategies: range, hash and custom partitioning. examples: most NoSQL databases (Cassandra, MongoDB, etc.), Kafka uses partitions - Range partitioning: takes into account the natural order of keys to split the dataset in the required number of partitions; ex: MySQL partitions. - Hash partitioning: calculates a hash over the each item key and then produces the modulo of this hash to determine the new partition; ex: Cassandra consistent hashing algorithm. - Custom partitioning: exploits locally or uniqueness properties of the data to calculate the appropriate partition to store the data to; ex: pre-hashed data like git commits or location specific data like all records from Europe
  • 24. Replication vs Partitioning Cons Cons Pros Pros Pros Pros Workload scalability High availability Failure recovery
  • 25. Replication vs Partitioning Replication Cons Cons Pros Pros Pros Pros Workload scalability High availability Failure recovery Cons Replication negative performance impact Data inconsistency Memory scalability issues
  • 26. Replication vs Partitioning Replication Cons Cons Pros Pros Pros Pros Workload scalability High availability Failure recovery Cons Replication negative performance impact Data inconsistency Memory scalability issues Pros Workload scalability Failure recovery Memory scalability Good synchronization performance
  • 27. Replication vs Partitioning Replication Cons Cons Pros Pros Pros Pros Workload scalability High availability Failure recovery Cons Replication negative performance impact Data inconsistency Memory scalability issues Pros Workload scalability Failure recovery Memory scalability Good synchronization performance Cons Migration negative performance impact Large memory requirements
  • 30. Why to choose Hazelcast IMDG? Market Leader ● Hazelcast IMDG is market leader among In-Memory Data Grid solutions
  • 31. Why to choose Hazelcast IMDG? Market Leader Rich API ● Hazelcast IMDG is market leader among In-Memory Data Grid solutions ● APIs in various programming languages: Java, C#.NET, Python, etc. ● Powerful features ● Huge user base - open source project
  • 32. Why to choose Hazelcast IMDG? Market Leader Rich API Ease of use ● Hazelcast IMDG is market leader among In-Memory Data Grid solutions ● APIs in various programming languages: Java, C#.NET, Python, etc. ● Powerful features ● Huge user base - open source project ● Simple to use key-value data store ● Standard data structures: Map, List, Queue, etc. ● Clients for many programming languages ● Redundancy/fail-over/sc aling built-in
  • 33. Why to choose Hazelcast IMDG? Market Leader Rich API Ease of use Distributed data store & computation system ● Hazelcast IMDG is market leader among In-Memory Data Grid solutions ● APIs in various programming languages: Java, C#.NET, Python, etc. ● Powerful features ● Huge user base - open source project ● Simple to use key-value data store ● Standard data structures: Map, List, Queue, etc. ● Clients for many programming languages ● Redundancy/fail-over/ scaling built-in ● Distributed data store ● Distributed computation near stored data
  • 34. Business scenario and HLA - overview Business scenario: ● We will use Hazelcast IMDG for developing a Foreign Exchange Quotation Management System. The system is consisting of: ● Two Spring Boot microservices: market-client and trader-cli which are basically Hazelcast clients and are communicating with the grid via APIs. ● One Spring Boot microservice called processing-unit which is basically a Hazelcast server member that will join the cluster when started.
  • 35. Hazelcast features used Deployment model: ● Client-Server Cluster discovery mechanism: ● TCP/IP unicast discovery Data structures used: ● Replicated Map ● Partitioned Map
  • 36. Client-Server Deployment Model Hazelcast Client Hazelcast Cluster Member For creating a Hazelcast Client Java application we must add the following dependencies: ● Prior to Hazelcast 4.x: ○ com.hazelcast:hazelcast:3.x ○ com.hazelcast:hazelcast-client:3.x ● For projects which are using Hazelcast 4.x: ○ com.hazelcast:hazelcast:4.x For creating a Hazelcast Cluster Member Java application we must add the following dependency: ○ com.hazelcast:hazelcast:${version}
  • 37. Hazelcast Cluster Discovery There are multiple ways to establish a discovery mechanism inside our Hazelcast cluster: ● TCP/IP multicast ● TCP/IP unicast ● Discovery plugins or cloud: Eureka, ZooKeeper, K8s, OpenShift, Pivotal Cloud Foundry (PCF), Google Cloud Platform (GCP), AWS, Azure ● Custom discovery mechanism via Discovery SPI
  • 38. Hazelcast Cluster Discovery In our cluster members we use TCP/IP unicast discovery. In com.freesoft.fx.trading.processingunit.infrastructure.imdg.HazelcastConfiguration.java:
  • 39. Hazelcast Replicated Map In the processing-unit Hazelcast Cluster Member Java application we are using a replicated map data structure for storing the quote prices published by the market-client. The map must have a name, which in our case is “QUOTES_MAP” and is stored in binary format in each cluster member instance.
  • 40. Hazelcast Replicated Map The necessary configuration for using a Replicated Map can be found in com.freesoft.fx.trading.processingunit.infrastructure.imdg.HazelcastConfiguration.java file.
  • 41. Hazelcast Partitioned Map In the processing-unit Hazelcast Cluster Member Java application we are using a partitioned map data structure for storing all commands (Buy and Sell) published by each trader (trader-cli microservice). Hazelcast uses a hash partitioning for distributing the data across all cluster members.
  • 42. Hazelcast Partitioned Map The necessary configuration for using a Partitioned Map can be found in com.freesoft.fx.trading.processingunit.infrastructure.imdg.HazelcastConfiguration.java file.
  • 43. User code deployment & Hazelcast-Spring
  • 44. User code deployment ● Not enabled by default ● Allows us to load client classes inside cluster members ● There are necessary configurations that must be done in both the client and the cluster member
  • 46. User code deployment Client configuration Cluster member configuration
  • 51. User-code deployment & Hazelcast-Spring
  • 52. User-code deployment & Hazelcast-Spring
  • 53. User-code deployment & Hazelcast-Spring
  • 54. User-code deployment & Hazelcast-Spring
  • 55. User-code deployment & Hazelcast-Spring
  • 56. User-code deployment & Hazelcast-Spring
  • 57. User-code deployment & Hazelcast-Spring
  • 58. User-code deployment & Hazelcast-Spring
  • 61. Hazelcast post on Medium!
  • 62. Thank you ! ● Don’t forget to follow me on @dinabogdan03 ● Don’t forget to read my articles on @bogdan.dina03 ● Join Bucharest Apache Kafka meetup group !!!
  翻译: