SlideShare a Scribd company logo
From cache to in-memory data grid. 
Introduction to Hazelcast. 
By Taras Matyashovsky
Introduction
About me 
• Software engineer/TL 
• Worked for outsource companies, product 
companies and tried myself in startups/ 
freelancing 
• 7+ years production Java experience 
• Fan of Agile methodologies, CSM
What? 
• This presentation: 
• covers basics of caching and popular cache 
types 
• explains evolution from simple cache to 
distributed, and from distributed to IMDG 
• not describes usage of NoSQL solutions for 
caching 
• is not intended for products comparison or 
for promotion of Hazelcast as the best 
solution
Why? 
• to expand horizons regarding modern 
distributed architectures and solutions 
• to share experience from my current 
project where Infinispan was replaced 
with Hazelcast as in-memory distributed 
cache solution
Agenda 
1st part: 
• Why software caches? 
• Common cache attributes 
• Cache access patterns 
• Cache types 
• Distributed cache vs. IMDG
Agenda 
2nd part: 
• Hazelcast in a nutshell 
• Hazelcast configuration 
• Live demo sessions 
• in-memory distributed cache 
• write-through cache with Postgres as storage 
• search in distributed cache 
• parallel processing using executor service and entry 
processor 
• Infinispan vs. Hazelcast 
• Best practices and personal recommendations
Caching Basics
Why Software Caching? 
• application performance: 
• many concurrent users 
• time and costs overhead to access 
application’s data stored in RDBMS or file 
system 
• database-access bottlenecks caused by too 
many simultaneous requests
So Software Caches 
• improve response times by reducing data access 
latency 
• offload persistent storages by reducing number 
of trips to data sources 
• avoid the cost of repeatedly creating objects 
• share objects between threads 
• only work for IO-bound applications
So Software Caches 
are essential for modern 
high-loaded applications
But 
• memory size 
• is limited 
• can become unacceptably huge 
• synchronization complexity 
• consistency between the cached data state 
and data source’s original data 
• durability 
• correct cache invalidation 
• scalability
Common Cache Attributes 
• maximum size, e.g. quantity of entries 
• cache algorithm used for invalidation/eviction, 
e.g.: 
• least recently used (LRU) 
• least frequently used (LFU) 
• FIFO 
• eviction percentage 
• expiration, e.g.: 
• time-to-live (TTL) 
• absolute/relative time-based expiration
Cache Access Patterns 
• cache aside 
• read-through 
• refresh-ahead 
• write-through 
• write-behind
Cache Aside Pattern 
• application is responsible for reading and writing 
from the storage and the cache doesn't interact 
with the storage at all 
• the cache is “kept aside” as a faster and more 
scalable in-memory data store 
Client 
Cache 
Storage
Read-Through/Write-Through 
• the application treats cache as the main data 
store and reads/writes data from/to it 
• the cache is responsible for reading and writing 
this data to the database 
Client Cache Storage
Write-Behind Pattern 
• modified cache entries are asynchronously 
written to the storage after a configurable delay 
Client Cache Storage
Refresh-Ahead Pattern 
• automatically and asynchronously reload 
(refresh) any recently accessed cache entry from 
the cache loader prior to its expiration 
Client Cache Storage
Cache Strategy Selection 
RT/WT vs. cache-aside: 
• RT/WT simplifies application code 
• cache-aside may have blocking behavior 
• cache-aside may be preferable when there are 
multiple cache updates triggered to the same 
storage from different cache servers
Cache Strategy Selection 
Write-through vs. write-behind: 
• write-behind caching may deliver considerably 
higher throughput and reduced latency 
compared to write-through caching 
• implication of write-behind caching is that 
database updates occur outside of the cache 
transaction 
• write-behind transaction can conflict with an 
external update
Cache Types
Cache Types 
• local cache 
• replicated cache 
• distributed cache 
• remote cache 
• near cache
Local Cache 
a cache that is local to 
(completely contained within) 
a particular cluster node
Local Cache 
Pros: 
• simplicity 
• performance 
• no serialization/deserialization overhead 
Cons: 
• not a fault-tolerant 
• scalability
Local Cache 
Solutions: 
• EhCache 
• Google Guava 
• Infinispan local cache mode
Replicated Cache 
a cache that replicates its data 
to all cluster nodes
Get in Replicated Cache 
Each cluster node (JVM) accesses the data from its 
own memory, i.e. local read:
Put in Replicated Cache 
Pushing the new version of the data to all other 
cluster nodes:
Replicated Cache 
Pros: 
• best read performance 
• fault–tolerant 
• linear performance scalability for reads 
Cons: 
• poor write performance 
• additional network load 
• poor and limited scalability for writes 
• memory consumption
Replicated Cache 
Solutions: 
• open-source: 
• Infinispan 
• commercial: 
• Oracle Coherence 
• EhCache + Terracota
Distributed Cache 
a cache that partitions its data 
among all cluster nodes
Get in Distributed Cache 
Access often must go over the network to another 
cluster node:
Put in Distributed Cache 
Resolving known limitation of replicated cache:
Put in Distributed Cache 
• the data is being sent to a primary cluster node 
and a backup cluster node if backup count is 1 
• modifications to the cache are not considered 
complete until all backups have acknowledged 
receipt of the modification, i.e. slight 
performance penalty 
• such overhead guarantees that data consistency 
is maintained and no data is lost
Failover in Distributed Cache 
Failover involves promoting backup data to be 
primary storage:
Local Storage in Distributed Cache 
Certain cluster nodes can be configured to store 
data, and others to be configured to not store 
data:
Distributed Cache 
Pros: 
• linear performance scalability for reads and 
writes 
• fault-tolerant 
Cons: 
• increased latency of reads (due to network 
round-trip and serialization/deserialization 
expenses)
Distributed Cache Summary 
Distributed in-memory key/value stores 
supports a simple set of “put” and “get” 
operations and optionally read-through and 
write-through behavior for writing and 
reading values to and from underlying 
disk-based storage such as an RDBMS
Distributed Cache Summary 
Depending on the product additional 
features like: 
• ACID transactions 
• eviction policies 
• replication vs. partitioning 
• active backups 
also became available as the products 
matured
Distributed Cache 
Solutions: 
• open-source: 
• Infinispan 
• Hazelcast 
• NoSQL storages, e.g. Redis, Cassandra, 
MongoDB, etc. 
• commercial: 
• Oracle Coherence 
• Terracota
Remote Cache 
a cache that is located remotely and 
should be accessed by a client(s)
Remote Cache 
Majority of existing distributed/replicated 
caches solutions support 2 modes: 
• embedded mode 
• when cache instance is started within the same JVM 
as your application 
• client-server mode 
• when remote cache instance is started and clients 
connect to it using a variety of different protocols
Remote Cache 
Solutions: 
• Infinispan remote cache mode 
• Hazelcast client-server mode 
• Memcached
Near Cache 
a hybrid cache; 
it typically fronts a distributed cache or a 
remote cache with a local cache
Get in Near Cache 
When an object is fetched from remote node, it is 
put to local cache, so subsequent requests are 
handled by local node retrieving from local cache:
Near Cache 
Pros: 
• it is best used for read only data 
Cons: 
• increases memory usage since the near cache 
items need to be stored in the memory of the 
member 
• reduces consistency
In-memory Data Grid
In-memory Data Grid (IMDG)
In-memory Data Grid 
In-memory distributed cache plus: 
• ability to support co-location of computations 
with data in a distributed context and move 
computation to data 
• distributed MPP processing based on standard 
SQL and/or Map/Reduce, that allows to 
effectively compute over data stored in-memory 
across the cluster
IMDC vs. IMDG 
• in-memory distributed caches were 
developed in response to a growing need 
for data high-availability 
• in-memory data grids were developed to 
respond to the growing complexities of 
data processing
IMDG in a nutshell 
Adding distributed SQL and/or MapReduce 
type processing required a complete 
re-thinking of distributed caches, as focus 
has shifted from pure data management to 
hybrid data and compute management
In-memory Data Grid Solutions
Hazelcast
Hazelcast 
The leading open source 
in-memory data grid 
free alternative to proprietary solutions, 
such as Oracle Coherence, 
VMWare Pivotal Gemfire and 
Software AG Terracotta
Hazelcast Use-Cases 
• scale your application 
• share data across cluster 
• partition your data 
• balance the load 
• send/receive messages 
• process in parallel on many JVMs, i.e. MPP
Hazelcast Features 
• dynamic clustering, backup, discovery, 
fail-over 
• distributed map, queue, set, list, lock, 
semaphore, topic, executor service, etc. 
• transaction support 
• map/reduce API 
• Java client for accessing the cluster 
remotely
Hazelcast Configuration 
• programmatic configuration 
• XML configuration 
• Spring configuration 
Nuance: 
It is very important that the configuration on all 
members in the cluster is exactly the same, 
it doesn’t matter if you use the XML based 
configuration or the programmatic configuration.
Sample Application
Live Demo “Configuration”
Sample Application 
Technologies: 
• Spring Boot 1.0.1 
• Hazelcast 3.2 
• Postgres 9.3 
Application: 
• RESTful web service to get/put data from/to cache 
• RESTful web service to execute tasks in the cluster 
• one Instance of Hazelcast per application 
* Some samples are not optimal and created just to demonstrate usage of existing Hazelcast API
Global Hazelcast Configuration 
Defined global Hazelcast configuration in separate 
config in common module. It contains skeleton for 
future Hazelcast instance as well as global 
configuration settings: 
• instance configuration skeleton 
• common properties 
• group name and password 
• TCP based network configuration 
• join config 
• multicast and TCP/IP config 
• default distributed map configuration skeleton
Hazelcast Instance 
Each module that uses Hazelcast for distributed 
cache should have its own separate Hazelcast 
instance. 
The “Hazelcast Instance” is a factory for creating 
individual cache objects. 
Each cache has a name and potentially distinct 
configuration settings (expiration, eviction, 
replication, and more). 
Multiple instances can live within the same JVM.
Hazelcast Cluster Group 
Groups are used in order to have multiple isolated 
clusters on the same network instead of a single 
cluster. 
JVM can host multiple Hazelcast instances (nodes). 
Each node can only participate in one group and it 
only joins to its own group, does not mess with 
others. 
In order to achieve this group name and group 
password configuration properties are used.
Hazelcast Network Config 
In our environment multicast mechanism for 
joining the cluster is not supported, so only TCP/IP-cluster 
approach will be used. 
In this case there should be a one or more well 
known members to connect to.
Live Demo “Map Store”
Hazelcast Map Store 
• useful for reading and writing map entries from 
and to an external data source 
• one instance per map per node will be created 
• word of caution: the map store should NOT call 
distributed map operations, otherwise you 
might run into deadlocks
Hazelcast Map Store 
• map pre-population via loadAllKeys method that 
returns the set of all “hot” keys that need to be 
loaded for the partitions owned by the member 
• write through vs. write behind using “write-delay- 
seconds” configuration (0 or bigger) 
• MapLoaderLifecycleSupport to be notified of 
lifecycle events, i.e. init and destroy
Live Demo “Executor Service”
Hazelcast Executor Service 
• extends the java.util.concurrent.ExecutorService, 
but is designed to be used in a distributed 
environment 
• scaling up via threads pool size 
• scaling out is automatic via addition of new 
Hazelcast instances
Hazelcast Executor Service 
• provides different ways to route tasks: 
• any member 
• specific member 
• the member hosting a specific key 
• all or subset of members 
• supports execution callback
Hazelcast Executor Service 
Drawbacks: 
• work-queue has no high availability: 
• each member will create local ThreadPoolExecutors 
with ordinary work-queues that do the real work but 
not backed up by Hazelcast 
• work-queue is not partitioned: 
• it could be that one member has a lot of unprocessed 
work, and another is idle 
• no customizable load balancing
Hazelcast Features 
More useful features: 
• entry listener 
• transactions support, e.g. local, distributed 
• map reduce API out-of-the-box 
• custom serialization/deserialization mechanism 
• distributed topic 
• clients
Hazelcast Missing Features 
Missing useful features: 
• update configuration in running cluster 
• load balancing for executor service
Infinispan vs. Hazelcast
Infinispan vs. Hazelcast 
Infinispan Hazelcast 
Pros • backed by relatively large 
company for use in largely 
distributed environments 
(JBoss) 
• been in active use for 
several years 
• well-written documentation 
• a lot of examples of different 
configurations as well as 
solutions to common 
problems 
• easy setup 
• more performant than 
Infinispan 
• simple node/cluster 
discovery mechanism 
• relies on only 1 jar to be 
included on classpath 
• brief documentation 
completed with simple 
code samples
Infinispan vs. Hazelcast 
Infinispan Hazelcast 
Cons • relies on JGroups that 
proven to be buggy 
especially under high load 
• configuration can be 
overly complex 
• ~9 jars are needed in 
order to get Infinispan up 
and running 
• code appears very 
complex and hard to 
debug/trace 
• backed by a startup based 
in Palo Alto and Turkey, 
just received Series A 2.5 
M funding from Bain 
Capital Ventures 
• customization points are 
fairly limited 
• some exceptions can be 
difficult to diagnose due to 
poorly written exception 
messages 
• still quite buggy
Hazelcast Summary
Best Practices 
• each specific Hazelcast instance should have its 
unique instance name 
• each specific Hazelcast instance should have its 
unique group name and password 
• each specific Hazelcast instance should start on 
separate port according to predefined ranges
Personal Recommendations 
• use XML configuration in production, but don’t 
use spring:hz schema. Our Spring based “lego 
bricks” approach for building resulting Hazelcast 
instance is quite decent. 
• don’t use Hazelcast for local caches as it was 
never designed with that purpose and always 
performs serialization/deserialization 
• don’t use library specific classes, use common 
collections, e.g. ConcurrentMap, and you will be 
able to replace underlying cache solution easily
Hazelcast Drawbacks 
• still quite buggy 
• poor documentation for more complex 
cases 
• enterprise edition costs money, but 
includes: 
• elastic memory 
• JAAS security 
• .NET and C++ clients
Q/A?
Thank you! 
by Taras Matyashovsky
References 
• http://docs.oracle.com/cd/E18686_01/coh.37/e18677/cache_intro.htm 
• http://coherence.oracle.com/display/COH31UG/Read-Through,+Write- 
Through,+Refresh-Ahead+and+Write-Behind+Caching 
• http://blog.tekmindsolutions.com/oracle-coherence-diffrence-between-replicated- 
cache-vs-partitioneddistributed-cache/ 
• http://www.slideshare.net/MaxAlexejev/from-distributed-caches-to-inmemory-data- 
grids 
• http://www.slideshare.net/jaxlondon2012/clustering-your-application-with-hazelcast 
• http://www.gridgain.com/blog/fyi/cache-data-grid-database/ 
• http://gridgaintech.wordpress.com/2013/10/19/distributed-caching-is-dead-long- 
live/ 
• http://www.hazelcast.com/resources/the-book-of-hazelcast/ 
• https://labs.consol.de/java-caches/part-3-3-peer-to-peer-with-hazelcast/ 
• http://hazelcast.com/resources/thinking-distributed-the-hazelcast-way/ 
• https://github.com/tmatyashovsky/hazelcast-samples/

More Related Content

What's hot (20)

Cassandra Introduction & Features by DataStax Academy, has 21 slides with 34643 views.This presentation shortly describes key features of Apache Cassandra. It was held at the Apache Cassandra Meetup in Vienna in January 2014. You can access the meetup here: http://www.meetup.com/Vienna-Cassandra-Users/
Cassandra Introduction & FeaturesCassandra Introduction & Features
Cassandra Introduction & Features
DataStax Academy
21 slides34.6K views
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013 by mumrah, has 43 slides with 65783 views.Apache Kafka is a distributed publish-subscribe messaging system that allows both publishing and subscribing to streams of records. It uses a distributed commit log that provides low latency and high throughput for handling real-time data feeds. Key features include persistence, replication, partitioning, and clustering.
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
mumrah
43 slides65.8K views
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud by Noritaka Sekiyama, has 60 slides with 34640 views.This document provides an overview and summary of Amazon S3 best practices and tuning for Hadoop/Spark in the cloud. It discusses the relationship between Hadoop/Spark and S3, the differences between HDFS and S3 and their use cases, details on how S3 behaves from the perspective of Hadoop/Spark, well-known pitfalls and tunings related to S3 consistency and multipart uploads, and recent community activities related to S3. The presentation aims to help users optimize their use of S3 storage with Hadoop/Spark frameworks.
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudAmazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Noritaka Sekiyama
60 slides34.6K views
Introduction to Storm by Chandler Huang, has 36 slides with 21433 views.Storm is a distributed and fault-tolerant realtime computation system. It was created at BackType/Twitter to analyze tweets, links, and users on Twitter in realtime. Storm provides scalability, reliability, and ease of programming. It uses components like Zookeeper, ØMQ, and Thrift. A Storm topology defines the flow of data between spouts that read data and bolts that process data. Storm guarantees processing of all data through its reliability APIs and guarantees no data loss even during failures.
Introduction to Storm Introduction to Storm
Introduction to Storm
Chandler Huang
36 slides21.4K views
Stability Patterns for Microservices by pflueras, has 18 slides with 2690 views.Communication between Microservices is inherently unreliable. These integration points may produce cascading failures, slow responses, service outages. We will walk through stability patterns like timeouts, circuit breaker, bulkheads and discuss how they improve stability of Microservices.
Stability Patterns for MicroservicesStability Patterns for Microservices
Stability Patterns for Microservices
pflueras
18 slides2.7K views
From distributed caches to in-memory data grids by Max Alexejev, has 34 slides with 25165 views.This document summarizes a presentation about distributed caching technologies from key-value stores to in-memory data grids. It discusses the memory hierarchy and how software caches can improve performance by reducing data access latency and offloading storage. Different caching patterns like cache-aside, read-through, write-through and write-behind are explained. Popular caching products including Memcached, Redis, Cassandra and data grids are overviewed. Advanced concepts covered include data distribution, replication, consistency protocols and use cases.
From distributed caches to in-memory data gridsFrom distributed caches to in-memory data grids
From distributed caches to in-memory data grids
Max Alexejev
34 slides25.2K views
Fundamentals of Apache Kafka by Chhavi Parasher, has 65 slides with 2068 views.Kafka's basic terminologies, its architecture, its protocol and how it works. Kafka at scale, its caveats, guarantees and use cases offered by it. How we use it @ZaprMediaLabs.
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache Kafka
Chhavi Parasher
65 slides2.1K views
Apache Iceberg - A Table Format for Hige Analytic Datasets by Alluxio, Inc., has 28 slides with 7591 views.Data Orchestration Summit www.alluxio.io/data-orchestration-summit-2019 November 7, 2019 Apache Iceberg - A Table Format for Hige Analytic Datasets Speaker: Ryan Blue, Netflix For more Alluxio events: https://www.alluxio.io/events/
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
Alluxio, Inc.
28 slides7.6K views
kafka by Amikam Snir, has 23 slides with 1791 views.Kafka is an open-source distributed commit log service that provides high-throughput messaging functionality. It is designed to handle large volumes of data and different use cases like online and offline processing more efficiently than alternatives like RabbitMQ. Kafka works by partitioning topics into segments spread across clusters of machines, and replicates across these partitions for fault tolerance. It can be used as a central data hub or pipeline for collecting, transforming, and streaming data between systems and applications.
kafkakafka
kafka
Amikam Snir
23 slides1.8K views
An Introduction to Apache Kafka by Amir Sedighi, has 63 slides with 3079 views.Apache Kafka is an open-source message broker project developed by the Apache Software Foundation written in Scala. The project aims to provide a unified, high-throughput, low-latency platform for handling real-time data feeds.
An Introduction to Apache KafkaAn Introduction to Apache Kafka
An Introduction to Apache Kafka
Amir Sedighi
63 slides3.1K views
Autoscaling Flink with Reactive Mode by Flink Forward, has 17 slides with 1432 views.Flink Forward San Francisco 2022. Resource Elasticity is a frequently requested feature in Apache Flink: Users want to be able to easily adjust their clusters to changing workloads for resource efficiency and cost saving reasons. In Flink 1.13, the initial implementation of Reactive Mode was introduced, later releases added more improvements to make the feature production ready. In this talk, we’ll explain scenarios to deploy Reactive Mode to various environments to achieve autoscaling and resource elasticity. We’ll discuss the constraints to consider when planning to use this feature, and also potential improvements from the Flink roadmap. For those interested in the internals of Flink, we’ll also briefly explain how the feature is implemented, and if time permits, conclude with a short demo. by Robert Metzger
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive Mode
Flink Forward
17 slides1.4K views
Kafka presentation by Mohammed Fazuluddin, has 18 slides with 10535 views.Kafka is an open source messaging system that can handle massive streams of data in real-time. It is fast, scalable, durable, and fault-tolerant. Kafka is commonly used for stream processing, website activity tracking, metrics collection, and log aggregation. It supports high throughput, reliable delivery, and horizontal scalability. Some examples of real-time use cases for Kafka include website monitoring, network monitoring, fraud detection, and IoT applications.
Kafka presentationKafka presentation
Kafka presentation
Mohammed Fazuluddin
18 slides10.5K views
Apache kafka by Kumar Shivam, has 38 slides with 556 views.This document provides an introduction to Apache Kafka, an open-source distributed event streaming platform. It discusses Kafka's history as a project originally developed by LinkedIn, its use cases like messaging, activity tracking and stream processing. It describes key Kafka concepts like topics, partitions, offsets, replicas, brokers and producers/consumers. It also gives examples of how companies like Netflix, Uber and LinkedIn use Kafka in their applications and provides a comparison to Apache Spark.
Apache kafkaApache kafka
Apache kafka
Kumar Shivam
38 slides556 views
Thousands of Threads and Blocking I/O by George Cao, has 65 slides with 17505 views.This document summarizes a talk about different server models using synchronous I/O (thread-per-connection) versus asynchronous I/O (NIO). The talk discusses the evolution of server designs from simple multithreaded models to NIO-based approaches. It presents arguments for both approaches but notes that benchmarks showed synchronous I/O to be faster than NIO in some cases, contradicting common beliefs. The talk aims to empirically compare the two approaches and debunk myths around multithreading and NIO performance.
Thousands of Threads and Blocking I/OThousands of Threads and Blocking I/O
Thousands of Threads and Blocking I/O
George Cao
65 slides17.5K views
Kafka replication apachecon_2013 by Jun Rao, has 31 slides with 21982 views.The document discusses intra-cluster replication in Apache Kafka, including its architecture where partitions are replicated across brokers for high availability. Kafka uses a leader and in-sync replicas approach to strongly consistent replication while tolerating failures. Performance considerations in Kafka replication include latency and durability tradeoffs for producers and optimizing throughput for consumers.
Kafka replication apachecon_2013Kafka replication apachecon_2013
Kafka replication apachecon_2013
Jun Rao
31 slides22K views
Physical Plans in Spark SQL by Databricks, has 126 slides with 7385 views.In Spark SQL the physical plan provides the fundamental information about the execution of the query. The objective of this talk is to convey understanding and familiarity of query plans in Spark SQL, and use that knowledge to achieve better performance of Apache Spark queries. We will walk you through the most common operators you might find in the query plan and explain some relevant information that can be useful in order to understand some details about the execution. If you understand the query plan, you can look for the weak spot and try to rewrite the query to achieve a more optimal plan that leads to more efficient execution. The main content of this talk is based on Spark source code but it will reflect some real-life queries that we run while processing data. We will show some examples of query plans and explain how to interpret them and what information can be taken from them. We will also describe what is happening under the hood when the plan is generated focusing mainly on the phase of physical planning. In general, in this talk we want to share what we have learned from both Spark source code and real-life queries that we run in our daily data processing.
Physical Plans in Spark SQLPhysical Plans in Spark SQL
Physical Plans in Spark SQL
Databricks
126 slides7.4K views
From Mainframe to Microservice: An Introduction to Distributed Systems by Tyler Treat, has 69 slides with 38378 views.An introductory overview of distributed systems—what they are and why they're difficult to build. We explore fundamental ideas and practical concepts in distributed programming. What is the CAP theorem? What is distributed consensus? What are CRDTs? We also look at options for solving the split-brain problem while considering the trade-off of high availability as well as options for scaling shared data.
From Mainframe to Microservice: An Introduction to Distributed SystemsFrom Mainframe to Microservice: An Introduction to Distributed Systems
From Mainframe to Microservice: An Introduction to Distributed Systems
Tyler Treat
69 slides38.4K views
A Thorough Comparison of Delta Lake, Iceberg and Hudi by Databricks, has 27 slides with 12181 views.Recently, a set of modern table formats such as Delta Lake, Hudi, Iceberg spring out. Along with Hive Metastore these table formats are trying to solve problems that stand in traditional data lake for a long time with their declared features like ACID, schema evolution, upsert, time travel, incremental consumption etc.
A Thorough Comparison of Delta Lake, Iceberg and HudiA Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and Hudi
Databricks
27 slides12.2K views
Kafka Streams: What it is, and how to use it? by confluent, has 34 slides with 2565 views.Kafka Streams is a client library for building distributed applications that process streaming data stored in Apache Kafka. It provides a high-level streams DSL that allows developers to express streaming applications as set of processing steps. Alternatively, developers can use the lower-level processor API to implement custom business logic. Kafka Streams handles tasks like fault-tolerance, scalability and state management. It represents data as streams for unbounded data or tables for bounded state. Common operations include transformations, aggregations, joins and table operations.
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
confluent
34 slides2.6K views
Apache HBase Improvements and Practices at Xiaomi by HBaseCon, has 56 slides with 4961 views.Duo Zhang and Liangliang He (Xiaomi) In this session, we’ll discuss the various practices around HBase in use at Xiaomi, including those relating to HA, tiered compaction, multi-tenancy, and failover across data centers.
Apache HBase Improvements and Practices at XiaomiApache HBase Improvements and Practices at Xiaomi
Apache HBase Improvements and Practices at Xiaomi
HBaseCon
56 slides5K views

Similar to From cache to in-memory data grid. Introduction to Hazelcast. (20)

Caching principles-solutions by pmanvi, has 26 slides with 1395 views.This document provides an overview of caching and distributed caching principles. It discusses the goals of caching to improve performance by storing frequently accessed data closer to where it is needed. It explains concepts like memory hierarchy and why distributed caching is needed to manage huge amounts of data across multiple servers. Some key use cases of caching are also mentioned. The document discusses caching topologies like partitioned and replicated caching. It provides examples of caching patterns and load techniques. Finally, it discusses some prominent distributed caching solutions and shows sample code for using Hazelcast.
Caching principles-solutionsCaching principles-solutions
Caching principles-solutions
pmanvi
26 slides1.4K views
A Closer Look at Apache Kudu by Andriy Zabavskyy, has 63 slides with 2124 views.Kudu is an open source storage layer developed by Cloudera that provides low latency queries on large datasets. It uses a columnar storage format for fast scans and an embedded B-tree index for fast random access. Kudu tables are partitioned into tablets that are distributed and replicated across a cluster. The Raft consensus algorithm ensures consistency during replication. Kudu is suitable for applications requiring real-time analytics on streaming data and time-series queries across large datasets.
A Closer Look at Apache KuduA Closer Look at Apache Kudu
A Closer Look at Apache Kudu
Andriy Zabavskyy
63 slides2.1K views
Training Webinar: Enterprise application performance with distributed caching by OutSystems, has 29 slides with 860 views.2nd Session - Distributed Caching: - What is Distributed Caching - Performance hurdles solved by Distributed Caching - When to use Distributed Caching - Patterns to Populate a Distributed Cache - How to use Distributed Caching in OutSystems Free Online training: https://www.outsystems.com/learn/courses/ Follow us on Twitter http://www.twitter.com/OutSystemsDev Like us on Facebook http://www.Facebook.com/OutSystemsDev
Training Webinar: Enterprise application performance with distributed cachingTraining Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed caching
OutSystems
29 slides860 views
Distributed applications using Hazelcast by Taras Matyashovsky, has 163 slides with 7360 views.Do you need to scale your application, share data across cluster, perform massive parallel processing on many JVMs or maybe consider alternative to your favorite NoSQL technology? Hazelcast to the rescue! With Hazelcast distributed development is much easier. This presentation will be useful to those who would like to get acquainted with Hazelcast top features and see some of them in action, e.g. how to cluster application, cache data in it, partition in-memory data, distribute workload onto many servers, take advantage of parallel processing, etc. Presented on JavaDay Kyiv 2014 conference.
Distributed applications using HazelcastDistributed applications using Hazelcast
Distributed applications using Hazelcast
Taras Matyashovsky
163 slides7.4K views
Mini-Training: To cache or not to cache by Betclic Everest Group Tech Team, has 25 slides with 3332 views.In today’s systems , the time it takes to bring data to the end-user can be very long, especially under heavy load. An application can often increase performance by using an appropriate caching system. There are many caching level that you can use in our application today : CDN, In-Memory/Local Cache, Distributed Cache, Outut Cache, Browser Cache, Html Cache
Mini-Training: To cache or not to cacheMini-Training: To cache or not to cache
Mini-Training: To cache or not to cache
Betclic Everest Group Tech Team
25 slides3.3K views
Oracle RAC Internals - The Cache Fusion Edition by Markus Michalewicz, has 36 slides with 12341 views.This document summarizes a presentation on Oracle RAC (Real Application Clusters) internals with a focus on Cache Fusion. The presentation covers: 1. An overview of Cache Fusion and how it allows data to be shared across instances to enable scalability. 2. Dynamic re-mastering which adjusts where data is mastered based on access patterns to reduce messaging. 3. Techniques for handling contention including partitioning, connection pools, and separating redo logs. 4. Benefits of combining Oracle Multitenant and RAC such as aligning PDBs to instances. 5. How Oracle In-Memory Column Store fully integrates with RAC including fault tolerance features.
Oracle RAC Internals - The Cache Fusion EditionOracle RAC Internals - The Cache Fusion Edition
Oracle RAC Internals - The Cache Fusion Edition
Markus Michalewicz
36 slides12.3K views
Infinispan, Data Grids, NoSQL, Cloud Storage and JSR 347 by Manik Surtani, has 31 slides with 1777 views.Manik Surtani is the founder and project lead of Infinispan, an open source data grid platform. He discussed data grids, NoSQL, and their role in cloud storage. Data grids evolved from distributed caches to provide features like querying, task execution, and co-location control. NoSQL systems are alternative data storage that is scalable and distributed but lacks relational structure. JSR 347 aims to standardize data grid APIs for the Java platform. Infinispan implements JSR 107 and will support JSR 347, acting as the reference backend for Hibernate OGM.
Infinispan, Data Grids, NoSQL, Cloud Storage and JSR 347Infinispan, Data Grids, NoSQL, Cloud Storage and JSR 347
Infinispan, Data Grids, NoSQL, Cloud Storage and JSR 347
Manik Surtani
31 slides1.8K views
Distributed caching with java JCache by Kasun Gajasinghe, has 36 slides with 2618 views.This presentation provides a comparison of types of caches highlighting the use of distributed caching. This is followed by an introduction to JCache API. Code samples are at [2]. This is the presentation I did at Java Colombo JUG. [2] [1] https://github.com/kasunbg/jcache-samples [2] http://www.meetup.com/java-colombo/events/223811796/
Distributed caching with java JCacheDistributed caching with java JCache
Distributed caching with java JCache
Kasun Gajasinghe
36 slides2.6K views
SpringPeople - Introduction to Cloud Computing by SpringPeople, has 40 slides with 267 views.Cloud computing is no longer a fad that is going around. It is for real and is perhaps the most talked about subject. Various players in the cloud eco-system have provided a definition that is closely aligned to their sweet spot –let it be infrastructure, platforms or applications. This presentation will provide an exposure of a variety of cloud computing techniques, architecture, technology options to the participants and in general will familiarize cloud fundamentals in a holistic manner spanning all dimensions such as cost, operations, technology etc
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud Computing
SpringPeople
40 slides267 views
Data has a better idea the in-memory data grid by Bogdan Dina, has 62 slides with 69 views.The document discusses the In-Memory Data Grid (IMDG) and Hazelcast IMDG. It begins with an introduction to IMDGs and their benefits for performance, data handling, and operations. It then covers topics like replication vs partitioning, deployment options, and features of Hazelcast IMDG like its rich APIs, ease of use, and ability to function as a distributed data store. The document outlines a business scenario using Hazelcast IMDG and highlights features like client-server deployment, TCP/IP discovery, replicated and partitioned maps, user code deployment, and integration with Spring. It concludes with an overview of the demo.
Data has a better idea   the in-memory data gridData has a better idea   the in-memory data grid
Data has a better idea the in-memory data grid
Bogdan Dina
62 slides69 views
Introducing Oxia: A Scalable Zookeeper Alternative by HostedbyConfluent, has 19 slides with 234 views."Event streaming platforms like Kafka have traditionally leaned on ZooKeeper as the cornerstone for coordination and metadata management. This presentation introduces Oxia, a compelling alternative solution. Hailing from the labs of StreamNative, Oxia brings forth a genuinely horizontally scalable metadata framework. It empowers distributed messaging systems to seamlessly handle hundreds of millions of topics, all while removing the intricacies and operational burdens associated with ZooKeeper. The transformative potential of Oxia extends to developers' messaging strategies and application architectures. It holds the promise of simplifying both, marking a significant evolution in the event streaming landscape."
Introducing Oxia: A Scalable Zookeeper AlternativeIntroducing Oxia: A Scalable Zookeeper Alternative
Introducing Oxia: A Scalable Zookeeper Alternative
HostedbyConfluent
19 slides234 views
Container Attached Storage with OpenEBS - CNCF Paris Meetup by MayaData Inc, has 39 slides with 495 views.These slides were presented by Jeffry Molanus, CTO of MayaData in the CNCF Paris meetup held on 26th June 2019.
Container Attached Storage with OpenEBS - CNCF Paris MeetupContainer Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris Meetup
MayaData Inc
39 slides495 views
Webinar: Overcoming the Storage Challenges Cassandra and Couchbase Create by Storage Switzerland, has 27 slides with 369 views.NoSQL databases like Cassandra and Couchbase are quickly becoming key components of the modern IT infrastructure. But this modernization creates new challenges – especially for storage. Storage in the broad sense. In-memory databases perform well when there is enough memory available. However, when data sets get too large and they need to access storage, application performance degrades dramatically. Moreover, even if enough memory is available, persistent client requests can bring the servers to their knees. Join Storage Switzerland and Plexistor where you will learn: 1. What is Cassandra and Couchbase? 2. Why organizations are adopting them? 3. What are the storage challenges they create? 4. How organizations attempt to workaround these challenges. 5. How to design a solution to these challenges instead of a workaround.
Webinar: Overcoming the Storage Challenges Cassandra and Couchbase CreateWebinar: Overcoming the Storage Challenges Cassandra and Couchbase Create
Webinar: Overcoming the Storage Challenges Cassandra and Couchbase Create
Storage Switzerland
27 slides369 views
Selecting the right cache framework by Mohammed Fazuluddin, has 24 slides with 5754 views.The document discusses selecting the right cache framework for applications. It begins by defining caching and its benefits, such as improving data access speed by storing portions of data in faster memory. It then covers types of caches including web, data, application, and distributed caching. Next, it examines caching algorithms like FIFO, LRU, LFU and their characteristics. The document also reviews cache expiration models and then provides details on several popular cache frameworks like EhCache, JBoss Cache, OSCache and their features. It concludes by mentioning some potential drawbacks of caching like stale data and overhead.
Selecting the right cache frameworkSelecting the right cache framework
Selecting the right cache framework
Mohammed Fazuluddin
24 slides5.8K views
4. (mjk) extreme performance 2 by Doina Draganescu, has 27 slides with 561 views.This document discusses Oracle's In-Memory Database Cache and TimesTen in-memory database. It provides an overview of how the cache works, including options for read-only or updatable caches, automatic synchronization with Oracle Database, and scaling out the cache on multiple nodes. Tools are mentioned for managing cache groups, monitoring performance, and integrating with Oracle products like SQL Developer. The in-memory database provides extreme performance, high availability, and scalability.
4. (mjk) extreme performance 24. (mjk) extreme performance 2
4. (mjk) extreme performance 2
Doina Draganescu
27 slides561 views
Writing Scalable Software in Java by Ruben Badaró, has 66 slides with 13045 views.Writing Scalable Software in Java - From multi-core to grid-computing
Writing Scalable Software in JavaWriting Scalable Software in Java
Writing Scalable Software in Java
Ruben Badaró
66 slides13K views
Data Lake and the rise of the microservices by Bigstep, has 23 slides with 3114 views.By simply looking at structured and unstructured data, Data Lakes enable companies to understand correlations between existing and new external data - such as social media - in ways traditional Business Intelligence tools cannot. For this you need to find out the most efficient way to store and access structured or unstructured petabyte-sized data across your entire infrastructure. In this meetup we’ll give answers on the next questions: 1. Why would someone use a Data Lake? 2. Is it hard to build a Data Lake? 3. What are the main features that a Data Lake should bring in? 4. What’s the role of the microservices in the big data world?
Data Lake and the rise of the microservicesData Lake and the rise of the microservices
Data Lake and the rise of the microservices
Bigstep
23 slides3.1K views
Inter connect2016 yss1841-cloud-storage-options-v4 by Tony Pearson, has 24 slides with 1239 views.This session will cover private and public cloud storage options, including flash, disk and tape, to address the different types of cloud storage requirements. It will also explain the use of Active File Management for local space management and global access to files, and support for file-and-sync.
Inter connect2016 yss1841-cloud-storage-options-v4Inter connect2016 yss1841-cloud-storage-options-v4
Inter connect2016 yss1841-cloud-storage-options-v4
Tony Pearson
24 slides1.2K views
Development of concurrent services using In-Memory Data Grids by jlorenzocima, has 55 slides with 1288 views.As part of OTN Tour 2014 believes this presentation which is intented for covers the basic explanation of a solution of IMDG, explains how it works and how it can be used within an architecture and shows some use cases. Enjoy
Development of concurrent services using In-Memory Data GridsDevelopment of concurrent services using In-Memory Data Grids
Development of concurrent services using In-Memory Data Grids
jlorenzocima
55 slides1.3K views

More from Taras Matyashovsky (11)

Morning 3 anniversary by Taras Matyashovsky, has 29 slides with 714 views.Describes short summary and achievements of Morning@Lohika events (http://morning.lohika.com) during the third year of operation. Design by Yarko Filevych (www.filevych.com)
Morning 3 anniversaryMorning 3 anniversary
Morning 3 anniversary
Taras Matyashovsky
29 slides714 views
Distinguish Pop from Heavy Metal using Apache Spark MLlib by Taras Matyashovsky, has 95 slides with 695 views.Machine learning may be overhyped nowadays, but there is still a strong belief that this area is exclusively for data scientists with a deep mathematical background who leverage the Python (scikit-learn, Theano, TensorFlow, etc.) or R ecosystems and use specific tools like R Studio, Matlab, or Octave. Obviously, there is some truth to this statement, but Java engineers can also take the best of the machine-learning world from an applied perspective by using our native language and familiar frameworks like Apache Spark. Taras Matyashovsky explains how to use Apache Spark MLlib to build a supervised learning NLP pipeline to distinguish pop music from heavy metal—and have fun in the process. Along the way, Taras offers an overview of the simplest machine-learning tasks and algorithms, like regression and classification. Source code: https://github.com/tmatyashovsky/spark-ml-samples Design by Yarko Filevych: http://filevych.com/
Distinguish Pop from Heavy Metal using Apache Spark MLlibDistinguish Pop from Heavy Metal using Apache Spark MLlib
Distinguish Pop from Heavy Metal using Apache Spark MLlib
Taras Matyashovsky
95 slides695 views
Introduction to ML with Apache Spark MLlib by Taras Matyashovsky, has 88 slides with 6251 views.Machine learning is overhyped nowadays. There is a strong belief that this area is exclusively for data scientists with a deep mathematical background that leverage Python (scikit-learn, Theano, Tensorflow, etc.) or R ecosystem and use specific tools like Matlab, Octave or similar. Of course, there is a big grain of truth in this statement, but we, Java engineers, also can take the best of machine learning universe from an applied perspective by using our native language and familiar frameworks like Apache Spark. During this introductory presentation, you will get acquainted with the simplest machine learning tasks and algorithms, like regression, classification, clustering, widen your outlook and use Apache Spark MLlib to distinguish pop music from heavy metal and simply have fun. Source code: https://github.com/tmatyashovsky/spark-ml-samples Design by Yarko Filevych: http://filevych.com/
Introduction to ML with Apache Spark MLlibIntroduction to ML with Apache Spark MLlib
Introduction to ML with Apache Spark MLlib
Taras Matyashovsky
88 slides6.3K views
Morning at Lohika 2nd anniversary by Taras Matyashovsky, has 15 slides with 787 views.The document introduces the founding team members of Yarko, Taras, and Galya. It then discusses creating a logo called "Our Morning Man" and getting feedback on it. The team later expanded to include Solomiya for PR and Nastya as a recruiter. Plans were outlined to focus on quality over quantity, include more local and foreign speakers, and hold events outside Lviv such as in Cluj. Readers were encouraged to provide feedback and advice speakers or become speakers themselves. The document closes by thanking readers for their support.
Morning at Lohika 2nd anniversaryMorning at Lohika 2nd anniversary
Morning at Lohika 2nd anniversary
Taras Matyashovsky
15 slides787 views
Confession of an Engineer by Taras Matyashovsky, has 44 slides with 1104 views.We all are professionals, e.g. software engineers, quality engineers, technical/team leaders, project/product managers, etc. But we all are humans too. Often due to different reasons, like tight deadlines, push from customers/clients, etc., we all tend to neglect common sense and omit important practices. In this talk based on my both positive and negative experience we will review some patterns how we make common mistakes and what terrible results they may lead us to. Presented at XP Days Ukraine Conference in Kyiv in 2015. Design by Yarko Filevych (http://www.filevych.com/)
Confession of an EngineerConfession of an Engineer
Confession of an Engineer
Taras Matyashovsky
44 slides1.1K views
Influence. The Psychology of Persuasion (in IT) by Taras Matyashovsky, has 82 slides with 1913 views.This presentation is inspired by famous book by Robert Cialdini "Influence: The Psychology of Persuasion" and will be useful to those who would like to get acquainted with popular weapons of influence or just broaden own outlook. It recalls real life cases mentioned in the book as well as similar situations that are fully IT-related and based on my own experience and observation. Design by Yarko Filevych (http://www.filevych.com/)
Influence. The Psychology of Persuasion (in IT)Influence. The Psychology of Persuasion (in IT)
Influence. The Psychology of Persuasion (in IT)
Taras Matyashovsky
82 slides1.9K views
JEEConf 2015 - Introduction to real-time big data with Apache Spark by Taras Matyashovsky, has 43 slides with 2477 views.This presentation will be useful to those who would like to get acquainted with Apache Spark architecture, top features and see some of them in action, e.g. RDD transformations and actions, Spark SQL, etc. Also it covers real life use cases related to one of ours commercial projects and recall roadmap how we’ve integrated Apache Spark into it. Was presented on JEEConf 2015 in Kyiv. Design by Yarko Filevych: http://www.filevych.com/
JEEConf 2015 - Introduction to real-time big data with Apache SparkJEEConf 2015 - Introduction to real-time big data with Apache Spark
JEEConf 2015 - Introduction to real-time big data with Apache Spark
Taras Matyashovsky
43 slides2.5K views
Morning at Lohika 1st anniversary by Taras Matyashovsky, has 11 slides with 1001 views.This document outlines the history and current state of a group that organizes technical events. It started with four founders and has since grown, adding new members to the core team and recruiting volunteers. The group has hosted 11 events so far with over 300 unique participants, and they aim to continue expanding their reach through high-quality local and international speakers at additional locations outside Lviv. They encourage feedback and involvement from the community.
Morning at Lohika 1st anniversaryMorning at Lohika 1st anniversary
Morning at Lohika 1st anniversary
Taras Matyashovsky
11 slides1K views
Introduction to real time big data with Apache Spark by Taras Matyashovsky, has 70 slides with 2700 views.This presentation will be useful to those who would like to get acquainted with Apache Spark architecture, top features and see some of them in action, e.g. RDD transformations and actions, Spark SQL, etc. Also it covers real life use cases related to one of ours commercial projects and recall roadmap how we’ve integrated Apache Spark into it. Was presented on Morning@Lohika tech talks in Lviv. Design by Yarko Filevych: http://www.filevych.com/
Introduction to real time big data with Apache SparkIntroduction to real time big data with Apache Spark
Introduction to real time big data with Apache Spark
Taras Matyashovsky
70 slides2.7K views
New life inside monolithic application by Taras Matyashovsky, has 94 slides with 2877 views.This presentation will be useful to those who would like to get acquainted with lifetime history of successful monolithic Java application. It shows architectural and technical evolution of one Java web startup that is beyond daily coding routine and contains a lot of simplifications, Captain Obvious and internet memes. But this presentation is not intended for monolithic vs. micro services architectures comparison.
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic application
Taras Matyashovsky
94 slides2.9K views
Morning at Lohika by Taras Matyashovsky, has 17 slides with 6703 views.Morning@Lohika events were initiated by Lohika Systems Company. This presentation covers basic information about Morning@Lohika initiative, e.g. main goals, format, organizers, etc.
Morning at LohikaMorning at Lohika
Morning at Lohika
Taras Matyashovsky
17 slides6.7K views

Recently uploaded (20)

Diagrams.pptx Diagrams.pptx Diagrams.pptx by pateljeel24, has 10 slides with 41 views.Diagrams.pptx
Diagrams.pptx Diagrams.pptx Diagrams.pptxDiagrams.pptx Diagrams.pptx Diagrams.pptx
Diagrams.pptx Diagrams.pptx Diagrams.pptx
pateljeel24
10 slides41 views
TWI CSWIP CH19-a scan updated with logo.PPT by DoaaAly7, has 164 slides with 25 views.Ultrasonic
TWI CSWIP CH19-a scan updated with logo.PPTTWI CSWIP CH19-a scan updated with logo.PPT
TWI CSWIP CH19-a scan updated with logo.PPT
DoaaAly7
164 slides25 views
Experimental techniques and instrumentation by drharipriya42, has 17 slides with 29 views.It details about the case study of an institution building at Muscat
Experimental techniques and instrumentationExperimental techniques and instrumentation
Experimental techniques and instrumentation
drharipriya42
17 slides29 views
Quality Assurance Procedure – KBT Waterproofing Type 5 Membrane by BrianBertelThomsen, has 10 slides with 131 views.A complete QA/QC overview of KBT Waterproofing’s synthetic membrane system for critical infrastructure. Includes adhesion testing, layer control, and final documentation.
Quality Assurance Procedure – KBT Waterproofing Type 5 MembraneQuality Assurance Procedure – KBT Waterproofing Type 5 Membrane
Quality Assurance Procedure – KBT Waterproofing Type 5 Membrane
BrianBertelThomsen
10 slides131 views
downloads_powerbi-presentation.pptx downloads_powerbi-presentation.pptx by pateljeel24, has 179 slides with 132 views.downloads_powerbi-presentation.pptx
downloads_powerbi-presentation.pptx downloads_powerbi-presentation.pptxdownloads_powerbi-presentation.pptx downloads_powerbi-presentation.pptx
downloads_powerbi-presentation.pptx downloads_powerbi-presentation.pptx
pateljeel24
179 slides132 views
safety moment for road project plan.pptx by baramasIsaac, has 3 slides with 43 views.safety moment for oil roads.
safety moment for road project plan.pptxsafety moment for road project plan.pptx
safety moment for road project plan.pptx
baramasIsaac
3 slides43 views
call for Papers - 6th International Conference on Natural Language Computing ... by CSEIJJournal, has 2 slides with 46 views.6th International Conference on Natural Language Computing and AI (NLCAI 2025) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of Natural Language Computing, and AI. The Conference looks for significant contributions to all major fields of the Natural Language processing and machine learning in theoretical and practical aspects.
call for Papers - 6th International Conference on Natural Language Computing ...call for Papers - 6th International Conference on Natural Language Computing ...
call for Papers - 6th International Conference on Natural Language Computing ...
CSEIJJournal
2 slides46 views
DESIGN TACTILE INTERFACES WITH VIBRATION PATTERNS IN HTML5 FOR SMARTPHONE USE... by johnmathew9417, has 9 slides with 43 views.This paper describes the procedure for creating tactile interfaces for Android smart phones. It uses the HTML5 Vibration API and the Javascript programming language to create vibration patterns in order to increase the interaction between visually impaired people with their smart phones.
DESIGN TACTILE INTERFACES WITH VIBRATION PATTERNS IN HTML5 FOR SMARTPHONE USE...DESIGN TACTILE INTERFACES WITH VIBRATION PATTERNS IN HTML5 FOR SMARTPHONE USE...
DESIGN TACTILE INTERFACES WITH VIBRATION PATTERNS IN HTML5 FOR SMARTPHONE USE...
johnmathew9417
9 slides43 views
Reading P&ID's of any engineering model.ppt by VivaanRavi, has 97 slides with 13 views.p&id Reading
Reading P&ID's of any engineering model.pptReading P&ID's of any engineering model.ppt
Reading P&ID's of any engineering model.ppt
VivaanRavi
97 slides13 views
Introduction to Drone basics, classes and uses by KarthikRajendran52, has 36 slides with 256 views.esentation Title: Intro to Drones Author: Karthik Rajendran Description: This comprehensive presentation introduces the foundational concepts of drones, also known as Unmanned Aerial Vehicles (UAVs), and their classification across land, water, and air domains. It explores the complete architecture of Unmanned Aerial Systems (UAS), delving into the various types of UAVs categorized by weight, range, purpose, propulsion, and configuration. The presentation further explains the essential components that make up a drone, including motors, ESCs, propellers, batteries, flight controllers, and sensors. It covers advanced topics such as the dynamics of multicopters, hybrid VTOLs, and tail-sitter UAVs, alongside insights into BLDC motor operation, ESC protocols, and PID tuning. With a detailed overview of component selection and a section on thrust bench testing, this presentation serves as a valuable learning tool for enthusiasts, students, and professionals entering the field of drone technology and aerodynamics.
Introduction to Drone basics, classes and usesIntroduction to Drone basics, classes and uses
Introduction to Drone basics, classes and uses
KarthikRajendran52
36 slides256 views
Best of Two Avg, Python Program To Find Average of Two Numbers.pptx by SrinivasGopalan2, has 8 slides with 129 views.Python Program
Best of Two Avg, Python Program To Find Average of Two Numbers.pptxBest of Two Avg, Python Program To Find Average of Two Numbers.pptx
Best of Two Avg, Python Program To Find Average of Two Numbers.pptx
SrinivasGopalan2
8 slides129 views
Mohamed Ahmed Ali Ahmed Ali Katheer CV new update by AhmedKatheer1, has 2 slides with 148 views.A safety and security professional with over 07 years of experience, including 05years in Qatar, working for major companies. Key Skills • Manage safety and security systems according to international standards. • Ability to contain problems within workplaces and find effective solutions. • Implement safety policies and procedures to ensure a safe work environment. • Supervise inspections and audits to ensure compliance with safety requirements. • Train and educate employees on emergency procedures and occupational safety. Working Experience • Supervise the implementation of safety and security policies in industrial facilities and workplaces. • Handle incidents and emergencies in a professional manner according to approved safety standards. • Provide periodic reports on the performance of safety systems and recommend necessary improvements. Languages • Arabic (native language) English professional level
Mohamed Ahmed Ali Ahmed Ali Katheer CV new updateMohamed Ahmed Ali Ahmed Ali Katheer CV new update
Mohamed Ahmed Ali Ahmed Ali Katheer CV new update
AhmedKatheer1
2 slides148 views
PRIZ Academy - Root Cause Analysis (RCA) Quality Assurance with PRIZ .pdf by PRIZ Guru, has 11 slides with 58 views.Learn how to shift Quality Assurance from costly “detect-and-fix” firefighting to proactive “predict-and-prevent” excellence. This deck—taken from our April 2025 PRIZ Academy webinar—explains modern Root-Cause Analysis, shares a real microchip-manufacturing success story, and shows how the PRIZ Engineering-Thinking Platform unifies CEC, functional modelling, and action tracking to cut defects, rework, and downtime.
PRIZ Academy - Root Cause Analysis (RCA)  Quality Assurance with PRIZ .pdfPRIZ Academy - Root Cause Analysis (RCA)  Quality Assurance with PRIZ .pdf
PRIZ Academy - Root Cause Analysis (RCA) Quality Assurance with PRIZ .pdf
PRIZ Guru
11 slides58 views
The_Evolution_of_Software_Configuration_Management.pdf by vemiri6305, has 15 slides with 52 views.cs
The_Evolution_of_Software_Configuration_Management.pdfThe_Evolution_of_Software_Configuration_Management.pdf
The_Evolution_of_Software_Configuration_Management.pdf
vemiri6305
15 slides52 views
Introduction-to-Micro-Nanofabrication.pdf by buttermasala, has 39 slides with 56 views.Introduction-to-Micro-Nanofabrication
Introduction-to-Micro-Nanofabrication.pdfIntroduction-to-Micro-Nanofabrication.pdf
Introduction-to-Micro-Nanofabrication.pdf
buttermasala
39 slides56 views
Narmada Main Canal Maintenance Work .pptx by NWRWS&K, has 24 slides with 87 views.The closure of the Narmada Main Canal (NMC) is essential for various operational and maintenance purposes to ensure its efficient and long-term functionality. One of the primary reasons for closing the canal is maintenance and repair work. Over time, silt, debris, and vegetation accumulate in the canal, reducing its discharge capacity. Periodic desilting and cleaning are necessary to restore optimal water flow. Additionally, the canal lining, expansion joints, embankments, and control structures such as gates and regulators require regular inspection and repair to prevent seepage, structural failures, or operational inefficiencies. Closure also facilitates the maintenance of bridges, cross-drainage works, aqueducts, and siphons along the canal. The closure of the Narmada Main Canal (NMC) is also necessary to address waterlogging issues in nearby villages like nagla ,dodgam,bhapi ,bhadodar. In certain areas, excessive seepage from the canal, combined with inadequate drainage systems, can lead to water accumulation in agricultural fields and residential areas. This prolonged waterlogging not only affects crop productivity but also damages infrastructure and creates health hazards for local communities. Proper planning and execution of canal closures help in maintaining a balance between water supply and environmental sustainability. Coordinated efforts between irrigation authorities, local governance bodies, and affected villagers ensure that waterlogging problems are effectively controlled while maintaining the canal’s operational efficiency. the first closure of the Narmada Main Canal (NMC) was scheduled from May 1, 2023 to May 15 2023, while the second closure took place from June 15, 2023, to June 30, 2023.
Narmada Main Canal Maintenance Work .pptxNarmada Main Canal Maintenance Work .pptx
Narmada Main Canal Maintenance Work .pptx
NWRWS&K
24 slides87 views
Popular Color for Cabinet in 2025 to study by AJ Flying Home, has 4 slides with 80 views.Popular Color for Cabinet in 2025.pptx Learn More from: https://www.ajflyinghome.com/kitchen-cabinet-color-trends/
Popular Color for Cabinet in 2025 to studyPopular Color for Cabinet in 2025 to study
Popular Color for Cabinet in 2025 to study
AJ Flying Home
4 slides80 views
Tanvir Ahmed Sohel _Top Tools Every Software Engineer Needs in 2024 to Boost ... by Tanbir Ahmed Shohel , has 2 slides with 108 views.In the fast-paced world of software development, staying updated with the latest tools is key to maintaining productivity and ensuring that your code is efficient and error-free. As we move into 2024, several tools have become essential for software engineers seeking to enhance their workflows, collaborate better, and write more robust code. As Tanvir Ahmed Sohel explains, these tools help developers optimize their processes, from writing and testing code to managing projects and deploying applications.
Tanvir Ahmed Sohel _Top Tools Every Software Engineer Needs in 2024 to Boost ...Tanvir Ahmed Sohel _Top Tools Every Software Engineer Needs in 2024 to Boost ...
Tanvir Ahmed Sohel _Top Tools Every Software Engineer Needs in 2024 to Boost ...
Tanbir Ahmed Shohel
2 slides108 views
The_Evolution_of_Software_Configuration_Management.pdf by vemiri6305, has 15 slides with 52 views.cs
The_Evolution_of_Software_Configuration_Management.pdfThe_Evolution_of_Software_Configuration_Management.pdf
The_Evolution_of_Software_Configuration_Management.pdf
vemiri6305
15 slides52 views
Narmada Main Canal Maintenance Work .pptx by NWRWS&K, has 24 slides with 87 views.The closure of the Narmada Main Canal (NMC) is essential for various operational and maintenance purposes to ensure its efficient and long-term functionality. One of the primary reasons for closing the canal is maintenance and repair work. Over time, silt, debris, and vegetation accumulate in the canal, reducing its discharge capacity. Periodic desilting and cleaning are necessary to restore optimal water flow. Additionally, the canal lining, expansion joints, embankments, and control structures such as gates and regulators require regular inspection and repair to prevent seepage, structural failures, or operational inefficiencies. Closure also facilitates the maintenance of bridges, cross-drainage works, aqueducts, and siphons along the canal. The closure of the Narmada Main Canal (NMC) is also necessary to address waterlogging issues in nearby villages like nagla ,dodgam,bhapi ,bhadodar. In certain areas, excessive seepage from the canal, combined with inadequate drainage systems, can lead to water accumulation in agricultural fields and residential areas. This prolonged waterlogging not only affects crop productivity but also damages infrastructure and creates health hazards for local communities. Proper planning and execution of canal closures help in maintaining a balance between water supply and environmental sustainability. Coordinated efforts between irrigation authorities, local governance bodies, and affected villagers ensure that waterlogging problems are effectively controlled while maintaining the canal’s operational efficiency. the first closure of the Narmada Main Canal (NMC) was scheduled from May 1, 2023 to May 15 2023, while the second closure took place from June 15, 2023, to June 30, 2023.
Narmada Main Canal Maintenance Work .pptxNarmada Main Canal Maintenance Work .pptx
Narmada Main Canal Maintenance Work .pptx
NWRWS&K
24 slides87 views

From cache to in-memory data grid. Introduction to Hazelcast.

  • 1. From cache to in-memory data grid. Introduction to Hazelcast. By Taras Matyashovsky
  • 2. Introduction
  • 3. About me • Software engineer/TL • Worked for outsource companies, product companies and tried myself in startups/ freelancing • 7+ years production Java experience • Fan of Agile methodologies, CSM
  • 4. What? • This presentation: • covers basics of caching and popular cache types • explains evolution from simple cache to distributed, and from distributed to IMDG • not describes usage of NoSQL solutions for caching • is not intended for products comparison or for promotion of Hazelcast as the best solution
  • 5. Why? • to expand horizons regarding modern distributed architectures and solutions • to share experience from my current project where Infinispan was replaced with Hazelcast as in-memory distributed cache solution
  • 6. Agenda 1st part: • Why software caches? • Common cache attributes • Cache access patterns • Cache types • Distributed cache vs. IMDG
  • 7. Agenda 2nd part: • Hazelcast in a nutshell • Hazelcast configuration • Live demo sessions • in-memory distributed cache • write-through cache with Postgres as storage • search in distributed cache • parallel processing using executor service and entry processor • Infinispan vs. Hazelcast • Best practices and personal recommendations
  • 8. Caching Basics
  • 9. Why Software Caching? • application performance: • many concurrent users • time and costs overhead to access application’s data stored in RDBMS or file system • database-access bottlenecks caused by too many simultaneous requests
  • 10. So Software Caches • improve response times by reducing data access latency • offload persistent storages by reducing number of trips to data sources • avoid the cost of repeatedly creating objects • share objects between threads • only work for IO-bound applications
  • 11. So Software Caches are essential for modern high-loaded applications
  • 12. But • memory size • is limited • can become unacceptably huge • synchronization complexity • consistency between the cached data state and data source’s original data • durability • correct cache invalidation • scalability
  • 13. Common Cache Attributes • maximum size, e.g. quantity of entries • cache algorithm used for invalidation/eviction, e.g.: • least recently used (LRU) • least frequently used (LFU) • FIFO • eviction percentage • expiration, e.g.: • time-to-live (TTL) • absolute/relative time-based expiration
  • 14. Cache Access Patterns • cache aside • read-through • refresh-ahead • write-through • write-behind
  • 15. Cache Aside Pattern • application is responsible for reading and writing from the storage and the cache doesn't interact with the storage at all • the cache is “kept aside” as a faster and more scalable in-memory data store Client Cache Storage
  • 16. Read-Through/Write-Through • the application treats cache as the main data store and reads/writes data from/to it • the cache is responsible for reading and writing this data to the database Client Cache Storage
  • 17. Write-Behind Pattern • modified cache entries are asynchronously written to the storage after a configurable delay Client Cache Storage
  • 18. Refresh-Ahead Pattern • automatically and asynchronously reload (refresh) any recently accessed cache entry from the cache loader prior to its expiration Client Cache Storage
  • 19. Cache Strategy Selection RT/WT vs. cache-aside: • RT/WT simplifies application code • cache-aside may have blocking behavior • cache-aside may be preferable when there are multiple cache updates triggered to the same storage from different cache servers
  • 20. Cache Strategy Selection Write-through vs. write-behind: • write-behind caching may deliver considerably higher throughput and reduced latency compared to write-through caching • implication of write-behind caching is that database updates occur outside of the cache transaction • write-behind transaction can conflict with an external update
  • 21. Cache Types
  • 22. Cache Types • local cache • replicated cache • distributed cache • remote cache • near cache
  • 23. Local Cache a cache that is local to (completely contained within) a particular cluster node
  • 24. Local Cache Pros: • simplicity • performance • no serialization/deserialization overhead Cons: • not a fault-tolerant • scalability
  • 25. Local Cache Solutions: • EhCache • Google Guava • Infinispan local cache mode
  • 26. Replicated Cache a cache that replicates its data to all cluster nodes
  • 27. Get in Replicated Cache Each cluster node (JVM) accesses the data from its own memory, i.e. local read:
  • 28. Put in Replicated Cache Pushing the new version of the data to all other cluster nodes:
  • 29. Replicated Cache Pros: • best read performance • fault–tolerant • linear performance scalability for reads Cons: • poor write performance • additional network load • poor and limited scalability for writes • memory consumption
  • 30. Replicated Cache Solutions: • open-source: • Infinispan • commercial: • Oracle Coherence • EhCache + Terracota
  • 31. Distributed Cache a cache that partitions its data among all cluster nodes
  • 32. Get in Distributed Cache Access often must go over the network to another cluster node:
  • 33. Put in Distributed Cache Resolving known limitation of replicated cache:
  • 34. Put in Distributed Cache • the data is being sent to a primary cluster node and a backup cluster node if backup count is 1 • modifications to the cache are not considered complete until all backups have acknowledged receipt of the modification, i.e. slight performance penalty • such overhead guarantees that data consistency is maintained and no data is lost
  • 35. Failover in Distributed Cache Failover involves promoting backup data to be primary storage:
  • 36. Local Storage in Distributed Cache Certain cluster nodes can be configured to store data, and others to be configured to not store data:
  • 37. Distributed Cache Pros: • linear performance scalability for reads and writes • fault-tolerant Cons: • increased latency of reads (due to network round-trip and serialization/deserialization expenses)
  • 38. Distributed Cache Summary Distributed in-memory key/value stores supports a simple set of “put” and “get” operations and optionally read-through and write-through behavior for writing and reading values to and from underlying disk-based storage such as an RDBMS
  • 39. Distributed Cache Summary Depending on the product additional features like: • ACID transactions • eviction policies • replication vs. partitioning • active backups also became available as the products matured
  • 40. Distributed Cache Solutions: • open-source: • Infinispan • Hazelcast • NoSQL storages, e.g. Redis, Cassandra, MongoDB, etc. • commercial: • Oracle Coherence • Terracota
  • 41. Remote Cache a cache that is located remotely and should be accessed by a client(s)
  • 42. Remote Cache Majority of existing distributed/replicated caches solutions support 2 modes: • embedded mode • when cache instance is started within the same JVM as your application • client-server mode • when remote cache instance is started and clients connect to it using a variety of different protocols
  • 43. Remote Cache Solutions: • Infinispan remote cache mode • Hazelcast client-server mode • Memcached
  • 44. Near Cache a hybrid cache; it typically fronts a distributed cache or a remote cache with a local cache
  • 45. Get in Near Cache When an object is fetched from remote node, it is put to local cache, so subsequent requests are handled by local node retrieving from local cache:
  • 46. Near Cache Pros: • it is best used for read only data Cons: • increases memory usage since the near cache items need to be stored in the memory of the member • reduces consistency
  • 47. In-memory Data Grid
  • 48. In-memory Data Grid (IMDG)
  • 49. In-memory Data Grid In-memory distributed cache plus: • ability to support co-location of computations with data in a distributed context and move computation to data • distributed MPP processing based on standard SQL and/or Map/Reduce, that allows to effectively compute over data stored in-memory across the cluster
  • 50. IMDC vs. IMDG • in-memory distributed caches were developed in response to a growing need for data high-availability • in-memory data grids were developed to respond to the growing complexities of data processing
  • 51. IMDG in a nutshell Adding distributed SQL and/or MapReduce type processing required a complete re-thinking of distributed caches, as focus has shifted from pure data management to hybrid data and compute management
  • 52. In-memory Data Grid Solutions
  • 53. Hazelcast
  • 54. Hazelcast The leading open source in-memory data grid free alternative to proprietary solutions, such as Oracle Coherence, VMWare Pivotal Gemfire and Software AG Terracotta
  • 55. Hazelcast Use-Cases • scale your application • share data across cluster • partition your data • balance the load • send/receive messages • process in parallel on many JVMs, i.e. MPP
  • 56. Hazelcast Features • dynamic clustering, backup, discovery, fail-over • distributed map, queue, set, list, lock, semaphore, topic, executor service, etc. • transaction support • map/reduce API • Java client for accessing the cluster remotely
  • 57. Hazelcast Configuration • programmatic configuration • XML configuration • Spring configuration Nuance: It is very important that the configuration on all members in the cluster is exactly the same, it doesn’t matter if you use the XML based configuration or the programmatic configuration.
  • 58. Sample Application
  • 59. Live Demo “Configuration”
  • 60. Sample Application Technologies: • Spring Boot 1.0.1 • Hazelcast 3.2 • Postgres 9.3 Application: • RESTful web service to get/put data from/to cache • RESTful web service to execute tasks in the cluster • one Instance of Hazelcast per application * Some samples are not optimal and created just to demonstrate usage of existing Hazelcast API
  • 61. Global Hazelcast Configuration Defined global Hazelcast configuration in separate config in common module. It contains skeleton for future Hazelcast instance as well as global configuration settings: • instance configuration skeleton • common properties • group name and password • TCP based network configuration • join config • multicast and TCP/IP config • default distributed map configuration skeleton
  • 62. Hazelcast Instance Each module that uses Hazelcast for distributed cache should have its own separate Hazelcast instance. The “Hazelcast Instance” is a factory for creating individual cache objects. Each cache has a name and potentially distinct configuration settings (expiration, eviction, replication, and more). Multiple instances can live within the same JVM.
  • 63. Hazelcast Cluster Group Groups are used in order to have multiple isolated clusters on the same network instead of a single cluster. JVM can host multiple Hazelcast instances (nodes). Each node can only participate in one group and it only joins to its own group, does not mess with others. In order to achieve this group name and group password configuration properties are used.
  • 64. Hazelcast Network Config In our environment multicast mechanism for joining the cluster is not supported, so only TCP/IP-cluster approach will be used. In this case there should be a one or more well known members to connect to.
  • 65. Live Demo “Map Store”
  • 66. Hazelcast Map Store • useful for reading and writing map entries from and to an external data source • one instance per map per node will be created • word of caution: the map store should NOT call distributed map operations, otherwise you might run into deadlocks
  • 67. Hazelcast Map Store • map pre-population via loadAllKeys method that returns the set of all “hot” keys that need to be loaded for the partitions owned by the member • write through vs. write behind using “write-delay- seconds” configuration (0 or bigger) • MapLoaderLifecycleSupport to be notified of lifecycle events, i.e. init and destroy
  • 68. Live Demo “Executor Service”
  • 69. Hazelcast Executor Service • extends the java.util.concurrent.ExecutorService, but is designed to be used in a distributed environment • scaling up via threads pool size • scaling out is automatic via addition of new Hazelcast instances
  • 70. Hazelcast Executor Service • provides different ways to route tasks: • any member • specific member • the member hosting a specific key • all or subset of members • supports execution callback
  • 71. Hazelcast Executor Service Drawbacks: • work-queue has no high availability: • each member will create local ThreadPoolExecutors with ordinary work-queues that do the real work but not backed up by Hazelcast • work-queue is not partitioned: • it could be that one member has a lot of unprocessed work, and another is idle • no customizable load balancing
  • 72. Hazelcast Features More useful features: • entry listener • transactions support, e.g. local, distributed • map reduce API out-of-the-box • custom serialization/deserialization mechanism • distributed topic • clients
  • 73. Hazelcast Missing Features Missing useful features: • update configuration in running cluster • load balancing for executor service
  • 74. Infinispan vs. Hazelcast
  • 75. Infinispan vs. Hazelcast Infinispan Hazelcast Pros • backed by relatively large company for use in largely distributed environments (JBoss) • been in active use for several years • well-written documentation • a lot of examples of different configurations as well as solutions to common problems • easy setup • more performant than Infinispan • simple node/cluster discovery mechanism • relies on only 1 jar to be included on classpath • brief documentation completed with simple code samples
  • 76. Infinispan vs. Hazelcast Infinispan Hazelcast Cons • relies on JGroups that proven to be buggy especially under high load • configuration can be overly complex • ~9 jars are needed in order to get Infinispan up and running • code appears very complex and hard to debug/trace • backed by a startup based in Palo Alto and Turkey, just received Series A 2.5 M funding from Bain Capital Ventures • customization points are fairly limited • some exceptions can be difficult to diagnose due to poorly written exception messages • still quite buggy
  • 77. Hazelcast Summary
  • 78. Best Practices • each specific Hazelcast instance should have its unique instance name • each specific Hazelcast instance should have its unique group name and password • each specific Hazelcast instance should start on separate port according to predefined ranges
  • 79. Personal Recommendations • use XML configuration in production, but don’t use spring:hz schema. Our Spring based “lego bricks” approach for building resulting Hazelcast instance is quite decent. • don’t use Hazelcast for local caches as it was never designed with that purpose and always performs serialization/deserialization • don’t use library specific classes, use common collections, e.g. ConcurrentMap, and you will be able to replace underlying cache solution easily
  • 80. Hazelcast Drawbacks • still quite buggy • poor documentation for more complex cases • enterprise edition costs money, but includes: • elastic memory • JAAS security • .NET and C++ clients
  • 81. Q/A?
  • 82. Thank you! by Taras Matyashovsky
  • 83. References • http://docs.oracle.com/cd/E18686_01/coh.37/e18677/cache_intro.htm • http://coherence.oracle.com/display/COH31UG/Read-Through,+Write- Through,+Refresh-Ahead+and+Write-Behind+Caching • http://blog.tekmindsolutions.com/oracle-coherence-diffrence-between-replicated- cache-vs-partitioneddistributed-cache/ • http://www.slideshare.net/MaxAlexejev/from-distributed-caches-to-inmemory-data- grids • http://www.slideshare.net/jaxlondon2012/clustering-your-application-with-hazelcast • http://www.gridgain.com/blog/fyi/cache-data-grid-database/ • http://gridgaintech.wordpress.com/2013/10/19/distributed-caching-is-dead-long- live/ • http://www.hazelcast.com/resources/the-book-of-hazelcast/ • https://labs.consol.de/java-caches/part-3-3-peer-to-peer-with-hazelcast/ • http://hazelcast.com/resources/thinking-distributed-the-hazelcast-way/ • https://github.com/tmatyashovsky/hazelcast-samples/