SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Overview of the Ehcache

       2011.12.02
        chois79
Contents
•   About Caches
•   Why caching works
•   Will an Application Benefit from Caching?
•   How much will an application speed up?
•   About Ehcache
•   Features of Ehcache
•   Key Concepts of Ehcache
•   Using Ehcache
•   Distributed Ehcache Architecture
•   References
About Caches
• In Wiktionary
   – A store of things that will be required in future and can be
     retrieved rapidly

• In computer science
   – A collection of temporary data which either duplicates data
     located elsewhere of is the result of a computation

   – The data can be repeatedly accessed inexpensively
Why caching works
•   Locality of Reference
     – Data that is near other data or has just been used is more likely to be used
        again

•   The Long Tail


                                          A small number of items may make up the
                                          bulk of sales.          – Chris Anderson



     – One form of a Power Law distribution is the Pareto distribution (80:20 rule)
     – IF 20% of objects are used 80% of the time and a way can be found to
        reduce the cost of obtaining that 20%, then system performance will improve
Will an Application Benefit from Caching?
          CPU bound Application
• The time taken principally depends on the speed of the CPU
  and main memory
• Speeding up
   – Improving algorithm performance
   – Parallelizing the computations across multiple CPUs or multiple
     machines
   – Upgrading the CPU speed

• The role of caching
   – Temporarily store computations that may be reused again
       • Ex) DB Cache, Large web pages that have a high rendering cost.
Will an Application Benefit from Caching?
          I/O bound Application
• The time taken to complete a computation depends principally
  on the rate at which data can be obtained
• Speeding up
   – Hard disks are speeding up by using their own caching of blocks into
     memory
       • There is no Moore’s law for hard disk.

   – Increase the network bandwidth

• The role of cache
   – Web page caching, for pages generated from databases
   – Data Access object caching
Will an Application Benefit from Caching?
      Increased Application Scalability

• Data bases can do 100 expensive queries per second
  – Caching may be able to reduce the workload required
How much will an application speed up?
           (Amdahl’s Law)

• Depend on a multitude of factors
  – How many times a cached piece of data can and is
    reduced by the application

  – The proportion of the response time that is alleviated by
    caching

• Amdahl’s Law
                 P: Proportion speed up
                 S: Speed up
Amdahl’s Law Example
(Speed up from a Database Level Cache)
Un-cached page time: 2 seconds
Database time: 1.5 seconds
Cache retrieval time: 2ms
Proportion: 75% (2/1.5)
The expected system speedup is thus:
     1 / (( 1 – 0.75) + 0.75 / (1500/2))
    = 1 / (0.25 + 0.75/750)
    = 3.98 times system speedup
About Ehcache
•   Open source, standards-based cache used to boost performance

•   Basically, based on in-process
•   Scale from in-process with one more nodes through to a mixed in-
    process/out-of-process configuration with terabyte-sized caches
•   For applications needing a coherent distributed cache, Ehcache uses
    the open source Terracotta Server Array

•   Java-based Cache, Available under an Apache 2 license

•   The Wikimedia Foundation use Ehcache to improve the performance
    of its wiki projects
Features of Ehcache(1/2)
•   Fast and Light Weight
     – Fast, Simple API
     – Small foot print: Ehcache 2.2.3 is 668 kb making it convenient to package
     – Minimal dependencies: only dependency on SLF4J

•   Scalable
     – Provides Memory and Disk store for scalability into gigabytes
     – Scalable to hundreds of nodes with the Terracotta Server Array

•   Flexible
     – Supports Object or Serializable caching
     – Provides LRU, LFU and FIFO cache eviction policies
     – Provides Memory and Disk stores
Features of Ehcache(2/2)
•   Standards Based
     –   Full implementation of JSR107 JCACHE API

•   Application Persistence
     –   Persistent disk store which stores data between VM restarts

•   JMX Enable
•   Distributed Caching
     –   Clustered caching via Terracotta
     –   Replicated caching via RMI, JGroups, or JMS

•   Cache Server
     –   RESTful, SOAP cache Server

•   Search
     –   Standalone and distributed search using a fluent query language
Key Concepts of Ehcache
                     Key Classes
•   CacheManager
    – Manages caches

•   Ehcache
    – All caches implement the Ehcache interface
    – A cache has a name and attributes
    – Cache elements are stored in the memory store, optionally the also overflow
       to a disk store

•   Element
    – An atomic entry in a cache
    – Has key and value
    – Put into and removed from caches
Key Concepts of Ehcache
            Usage patterns: Cache-aside
•   Application code use the cache directly
•   Order
     – Application code consult the cache first
     – If cache contains the data, then return the data directly
     – Otherwise, the application cod must fetch the data from the system-of-record,
        store the data in the cache, then return.




     – 0
Key Concepts of Ehcache
           Usage patterns: Read-through
•   Mimics the structure of the cache-aside patterns when reading data
•   The difference
     – Must implement the CacheEntryFactory interface to instruct the cache how to
       read objects on a cache miss
     – Must wrap the Ehcache instance with an instance of SelfPopulationCache




     – 4
Key Concepts of Ehcache
    Usage patterns: Write-through and behind
•   Mimics the structure of the cache-aside pattern when data write
•   The difference
     –   Must implement the CacheWriter interface and configure the cache for write-through or write
         behind
     –   A write-through cache writes data to the system-of-record in the same thread of execution
     –   A write-behind queues the data for write at a later time




     –   d
Key Concepts of Ehcache
         Usage patterns: Cache-as-sor
• Delegate SOR reading and writing actives to the cache
• To implement, use a combination of the following patterns
   – Read-through
   – Write-through or write-behind

• Advantages
   – Less cluttered application code
   – Easily choose between write-through or write-behind strategies
   – Allow the cache to solve the “thundering-herd” problem

• Disadvantages
   – Less directly visible code-path
Key Concepts of Ehcache
         Storage Options: Memory Store
•   Suitable Element Types
     – All Elements are suitable for placement in the Memory Store

•   Characteristics
     – Thread safe for use by multiple concurrent threads
     – Backed By LinkedHashMap (Jdk 1.4 later)
          •   LinkedHashMap: Hash table and linked list implementation of the Map interface

     – Fast

•   Memory Use, Spooling and Expiry Strategy
     – Least Recently Used (LRU): default
     – Least frequently Used (LFU)
     – First In First Out (FIFO)
Key Concepts of Ehcache
    Storage Options: Big-Memory Store
•   Pure java product from Terracotta that permits caches to use an additional type of
    memory store outside the object heap. (Packaged for use in Enterprise Ehcache)
     –   Not subject to Java GC
     –   100 times faster than Disk-Store
     –   Allows very large caches to be created(tested up to 350GB)

•   Two implementations
     –   Only Serializable cache keys and values can be placed similar to Disk Store
     –   Serializaion and deserialization take place putting and getting from the store
           •   Around 10 times slower than Memory Store
           •   The memory store holds the hottest subset of data from the off-heap store, already in deserialized form

•   Suitable Element Types
     –   Only Elements which are serializable can be placed in the off-heap
     –   Any non serializable Elements will be removed and WARNING level log message emitted
Key Concepts of Ehcache
               Storage Options: Disk Store
• Disk Store are optional
• Suitable Element Type
     – Only Elements which are serializable can be placed in the off-heap
     – Any non serializable Elements will be removed and WARNING level
         log message emitted

• Eviction
     –   The LFU algorithm is used and it is not configurable or changeable

•   Persistence
     –   Controlled by the disk persistent configuration
     –   If false or onmitted, disk store will not presit between CacheManager restarts
Key Concepts of Ehcache
                      Replicated Caching
•   Ehcache has a pluggable cache replication scheme
     –   RMI, JGroups, JMS

•   Using a Cache Server
     –   To achieve shared data, all JVMs read to and write from a Cache Server

•   Notification Strategies
     –   If the Element is not available anywhere else then the element it self shoud from the pay load
         of the notification




     –   D
Key Concepts of Ehcache
                       Search APIs
•   Allows you to execute arbitrarily complex queries either a standalone
    cache or a Terracotta clustered cache with pre-built indexes
•   Searchable attributes may be extracted from both key and vales
•   Attribute Extractors
     – Attributes are extracted from keys or values
     – This is done during search or, if using Distributed Ehcache on put() into the
        cache using AttributeExtractors
     – Supported types
         •   Boolean, Byte, Character, Double, Float, Integer, Long, Short, String, Enum, java.util.Date,
             Java.sql.Date
Using Ehcache
           General-Purpose Caching
• Local Cache
• Configuration
   – Place the Ehcache jar into your class-path
   – Configure ehcache.xml and place it in your class-path
   – Optionally, configure an appropriate logging level

                                                  DB

                        Local
         Application                           Web
                       Ehcache
                                              Server

   – d                                         Web
                                              Server
Using Ehcache
                     Cache Server
• Support for RESTful and SOAP APIs
• Redundant, Scalable with client hash-based routing
   – The client can be implemented in any language
   – The client must work out a partitioning scheme




   – s
Using Ehcache
    Integrate with other solutions
• Hivernate

• Java EE Servlet Caching

• JCache style caching

• Spring, cocoon, Acegi and other frameworks
Distributed Ehcache Architecture
                   (Logical View)
•   Distributed Ehcache combines an in-process Ehcache with the Terracotta Server Array




•   The data is split between an Ehcache node(L1) and the Terracotta Server Array(L2)
     –   The L1 can hold as much data as is comfortable

     –   The L2 always a complete copy of all cache data

     –   The L1 acts as a hot-set of recently used data
Distributed Ehcache Architecture
             (Ehcache topologies)
•   Standalone
     – The cache data set is held in the application node
     – Any other application nodes are independent with no communication
        between them

•   Distributed Ehcache
     – The data is held in a Terracotta server Array with a subset of recently used
        data held in each application cache node

•   Replicated
     – The cached data set is held in each application node and data is copied or
        invalidated across the cluster without locking
     – Replication can be either asynchronous or synchronous
     – The only consistency mode available is weak consistency
Distributed Ehcache Architecture
                (Network View)
•   From a network topology point of view Distributed Ehcache consist of
     – Ehcache node(L1)
          •   The Ehcache library is present in each app
          •   An Ehcache instance, running in-process sits in each JVM

     – Terracotta Server Array(L2)
          •   Each Ehcache instance maintains a connection with one or more Terracotta Servers
          •   Consistent hashing is used by the Ehcache nodes to store and retrieve cache data




          •   4
Distributed Ehcache Architecture
          (Memory Hierarchy View)
•   Each in-process Ehcache instance
     – Heap memory
     – Off-heap memory(Big Memory)

•   The Terracotta Server Arrays
     – Heap memory
     – Off-heap memory
     – Disk storage.
           •   This is optional.(Persistence)




     – 1
Ehcache in-process compared with
           Memcached
Reference
• Ehcache User Guide
   – http://ehcache.org/documentation

• Ehcache Architecture, Features And Usage patterns
   – Greg Luck, 2009 JavaOne Session 2007

Mais conteúdo relacionado

Mais procurados

Apache Spark on K8S and HDFS Security with Ilan Flonenko
Apache Spark on K8S and HDFS Security with Ilan FlonenkoApache Spark on K8S and HDFS Security with Ilan Flonenko
Apache Spark on K8S and HDFS Security with Ilan FlonenkoDatabricks
 
HBaseCon 2013: Apache HBase and HDFS - Understanding Filesystem Usage in HBase
HBaseCon 2013: Apache HBase and HDFS - Understanding Filesystem Usage in HBaseHBaseCon 2013: Apache HBase and HDFS - Understanding Filesystem Usage in HBase
HBaseCon 2013: Apache HBase and HDFS - Understanding Filesystem Usage in HBaseCloudera, Inc.
 
Terraform: An Overview & Introduction
Terraform: An Overview & IntroductionTerraform: An Overview & Introduction
Terraform: An Overview & IntroductionLee Trout
 
JavaOne 2013: Memory Efficient Java
JavaOne 2013: Memory Efficient JavaJavaOne 2013: Memory Efficient Java
JavaOne 2013: Memory Efficient JavaChris Bailey
 
HDFS on Kubernetes—Lessons Learned with Kimoon Kim
HDFS on Kubernetes—Lessons Learned with Kimoon KimHDFS on Kubernetes—Lessons Learned with Kimoon Kim
HDFS on Kubernetes—Lessons Learned with Kimoon KimDatabricks
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기SeungYong Oh
 
Autoscaling Kubernetes
Autoscaling KubernetesAutoscaling Kubernetes
Autoscaling Kubernetescraigbox
 
Java Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame GraphsJava Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame GraphsBrendan Gregg
 
Kotlin @ Coupang Backend 2017
Kotlin @ Coupang Backend 2017Kotlin @ Coupang Backend 2017
Kotlin @ Coupang Backend 2017Sunghyouk Bae
 
Deep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line InterfaceDeep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line InterfaceAmazon Web Services
 
Facebook Messages & HBase
Facebook Messages & HBaseFacebook Messages & HBase
Facebook Messages & HBase强 王
 
MySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaMySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaYoungHeon (Roy) Kim
 
Building a Feature Store around Dataframes and Apache Spark
Building a Feature Store around Dataframes and Apache SparkBuilding a Feature Store around Dataframes and Apache Spark
Building a Feature Store around Dataframes and Apache SparkDatabricks
 
HBaseCon 2012 | Lessons learned from OpenTSDB - Benoit Sigoure, StumbleUpon
HBaseCon 2012 | Lessons learned from OpenTSDB - Benoit Sigoure, StumbleUponHBaseCon 2012 | Lessons learned from OpenTSDB - Benoit Sigoure, StumbleUpon
HBaseCon 2012 | Lessons learned from OpenTSDB - Benoit Sigoure, StumbleUponCloudera, Inc.
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseenissoz
 
Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Slim Baltagi
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at NetflixBrendan Gregg
 

Mais procurados (20)

Quarkus k8s
Quarkus   k8sQuarkus   k8s
Quarkus k8s
 
Apache Spark on K8S and HDFS Security with Ilan Flonenko
Apache Spark on K8S and HDFS Security with Ilan FlonenkoApache Spark on K8S and HDFS Security with Ilan Flonenko
Apache Spark on K8S and HDFS Security with Ilan Flonenko
 
HBaseCon 2013: Apache HBase and HDFS - Understanding Filesystem Usage in HBase
HBaseCon 2013: Apache HBase and HDFS - Understanding Filesystem Usage in HBaseHBaseCon 2013: Apache HBase and HDFS - Understanding Filesystem Usage in HBase
HBaseCon 2013: Apache HBase and HDFS - Understanding Filesystem Usage in HBase
 
Terraform: An Overview & Introduction
Terraform: An Overview & IntroductionTerraform: An Overview & Introduction
Terraform: An Overview & Introduction
 
JavaOne 2013: Memory Efficient Java
JavaOne 2013: Memory Efficient JavaJavaOne 2013: Memory Efficient Java
JavaOne 2013: Memory Efficient Java
 
Terraform
TerraformTerraform
Terraform
 
HDFS on Kubernetes—Lessons Learned with Kimoon Kim
HDFS on Kubernetes—Lessons Learned with Kimoon KimHDFS on Kubernetes—Lessons Learned with Kimoon Kim
HDFS on Kubernetes—Lessons Learned with Kimoon Kim
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
Autoscaling Kubernetes
Autoscaling KubernetesAutoscaling Kubernetes
Autoscaling Kubernetes
 
Java Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame GraphsJava Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame Graphs
 
Kotlin @ Coupang Backend 2017
Kotlin @ Coupang Backend 2017Kotlin @ Coupang Backend 2017
Kotlin @ Coupang Backend 2017
 
Deep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line InterfaceDeep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line Interface
 
Facebook Messages & HBase
Facebook Messages & HBaseFacebook Messages & HBase
Facebook Messages & HBase
 
Ansible
AnsibleAnsible
Ansible
 
MySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaMySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & Grafana
 
Building a Feature Store around Dataframes and Apache Spark
Building a Feature Store around Dataframes and Apache SparkBuilding a Feature Store around Dataframes and Apache Spark
Building a Feature Store around Dataframes and Apache Spark
 
HBaseCon 2012 | Lessons learned from OpenTSDB - Benoit Sigoure, StumbleUpon
HBaseCon 2012 | Lessons learned from OpenTSDB - Benoit Sigoure, StumbleUponHBaseCon 2012 | Lessons learned from OpenTSDB - Benoit Sigoure, StumbleUpon
HBaseCon 2012 | Lessons learned from OpenTSDB - Benoit Sigoure, StumbleUpon
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBase
 
Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at Netflix
 

Destaque

Ehcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage PatternsEhcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage PatternsEduardo Pelegri-Llopart
 
The new ehcache 2.0 and hibernate spi
The new ehcache 2.0 and hibernate spiThe new ehcache 2.0 and hibernate spi
The new ehcache 2.0 and hibernate spiCyril Lakech
 
Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3Louis Jacomet
 
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheClustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheCris Holdorph
 
Developing High Performance and Scalable ColdFusion Application Using Terraco...
Developing High Performance and Scalable ColdFusion Application Using Terraco...Developing High Performance and Scalable ColdFusion Application Using Terraco...
Developing High Performance and Scalable ColdFusion Application Using Terraco...ColdFusionConference
 
Predicting Defects in SAP Java Code: An Experience Report
Predicting Defects in SAP Java Code: An Experience ReportPredicting Defects in SAP Java Code: An Experience Report
Predicting Defects in SAP Java Code: An Experience Reporttilman.holschuh
 
Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...
Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...
Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...elliando dias
 
SAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss TechnologiesSAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss Technologieshwilming
 
Intro To Sap Netweaver Java
Intro To Sap Netweaver JavaIntro To Sap Netweaver Java
Intro To Sap Netweaver JavaLeland Bartlett
 
Practical SAP pentesting workshop (NullCon Goa)
Practical SAP pentesting workshop (NullCon Goa)Practical SAP pentesting workshop (NullCon Goa)
Practical SAP pentesting workshop (NullCon Goa)ERPScan
 
Integrating SAP the Java EE Way - JBoss One Day talk 2012
Integrating SAP the Java EE Way - JBoss One Day talk 2012Integrating SAP the Java EE Way - JBoss One Day talk 2012
Integrating SAP the Java EE Way - JBoss One Day talk 2012hwilming
 
Low latency Java apps
Low latency Java appsLow latency Java apps
Low latency Java appsSimon Ritter
 
MiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.MicroformatMiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.MicroformatHyeonSeok Choi
 
Domain driven design ch1
Domain driven design ch1Domain driven design ch1
Domain driven design ch1HyeonSeok Choi
 
자바 병렬 프로그래밍 ch9
자바 병렬 프로그래밍 ch9자바 병렬 프로그래밍 ch9
자바 병렬 프로그래밍 ch9HyeonSeok Choi
 
Mining the social web 6
Mining the social web 6Mining the social web 6
Mining the social web 6HyeonSeok Choi
 
Refactoring 메소드 호출의 단순화
Refactoring 메소드 호출의 단순화Refactoring 메소드 호출의 단순화
Refactoring 메소드 호출의 단순화HyeonSeok Choi
 

Destaque (20)

Ehcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage PatternsEhcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage Patterns
 
The new ehcache 2.0 and hibernate spi
The new ehcache 2.0 and hibernate spiThe new ehcache 2.0 and hibernate spi
The new ehcache 2.0 and hibernate spi
 
Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3
 
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheClustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
 
SAP and Red Hat JBoss Partner Webinar
SAP and Red Hat JBoss Partner WebinarSAP and Red Hat JBoss Partner Webinar
SAP and Red Hat JBoss Partner Webinar
 
Developing High Performance and Scalable ColdFusion Application Using Terraco...
Developing High Performance and Scalable ColdFusion Application Using Terraco...Developing High Performance and Scalable ColdFusion Application Using Terraco...
Developing High Performance and Scalable ColdFusion Application Using Terraco...
 
Predicting Defects in SAP Java Code: An Experience Report
Predicting Defects in SAP Java Code: An Experience ReportPredicting Defects in SAP Java Code: An Experience Report
Predicting Defects in SAP Java Code: An Experience Report
 
Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...
Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...
Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...
 
Sap java
Sap javaSap java
Sap java
 
SAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss TechnologiesSAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss Technologies
 
Intro To Sap Netweaver Java
Intro To Sap Netweaver JavaIntro To Sap Netweaver Java
Intro To Sap Netweaver Java
 
Practical SAP pentesting workshop (NullCon Goa)
Practical SAP pentesting workshop (NullCon Goa)Practical SAP pentesting workshop (NullCon Goa)
Practical SAP pentesting workshop (NullCon Goa)
 
Integrating SAP the Java EE Way - JBoss One Day talk 2012
Integrating SAP the Java EE Way - JBoss One Day talk 2012Integrating SAP the Java EE Way - JBoss One Day talk 2012
Integrating SAP the Java EE Way - JBoss One Day talk 2012
 
Low latency Java apps
Low latency Java appsLow latency Java apps
Low latency Java apps
 
MiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.MicroformatMiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.Microformat
 
Domain driven design ch1
Domain driven design ch1Domain driven design ch1
Domain driven design ch1
 
C++ api design 품질
C++ api design 품질C++ api design 품질
C++ api design 품질
 
자바 병렬 프로그래밍 ch9
자바 병렬 프로그래밍 ch9자바 병렬 프로그래밍 ch9
자바 병렬 프로그래밍 ch9
 
Mining the social web 6
Mining the social web 6Mining the social web 6
Mining the social web 6
 
Refactoring 메소드 호출의 단순화
Refactoring 메소드 호출의 단순화Refactoring 메소드 호출의 단순화
Refactoring 메소드 호출의 단순화
 

Semelhante a Overview of the ehcache

Selecting the right cache framework
Selecting the right cache frameworkSelecting the right cache framework
Selecting the right cache frameworkMohammed Fazuluddin
 
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
 
[Hanoi-August 13] Tech Talk on Caching Solutions
[Hanoi-August 13] Tech Talk on Caching Solutions[Hanoi-August 13] Tech Talk on Caching Solutions
[Hanoi-August 13] Tech Talk on Caching SolutionsITviec
 
Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...
Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...
Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...anynines GmbH
 
Lecture-7 Main Memroy.pptx
Lecture-7 Main Memroy.pptxLecture-7 Main Memroy.pptx
Lecture-7 Main Memroy.pptxAmanuelmergia
 
Caching for J2ee Enterprise Applications
Caching for J2ee Enterprise ApplicationsCaching for J2ee Enterprise Applications
Caching for J2ee Enterprise ApplicationsDebajani Mohanty
 
OSOM - Open source catching solutions
OSOM - Open source catching solutionsOSOM - Open source catching solutions
OSOM - Open source catching solutionsMarcela Oniga
 
A Closer Look at Apache Kudu
A Closer Look at Apache KuduA Closer Look at Apache Kudu
A Closer Look at Apache KuduAndriy Zabavskyy
 
Ehcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroidsEhcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroidsAlex Snaps
 
Managing Security At 1M Events a Second using Elasticsearch
Managing Security At 1M Events a Second using ElasticsearchManaging Security At 1M Events a Second using Elasticsearch
Managing Security At 1M Events a Second using ElasticsearchJoe Alex
 
Memory Management in Operating Systems for all
Memory Management in Operating Systems for allMemory Management in Operating Systems for all
Memory Management in Operating Systems for allVSKAMCSPSGCT
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparisonRohit Kelapure
 
Is your Elastic Cluster Stable and Production Ready?
Is your Elastic Cluster Stable and Production Ready?Is your Elastic Cluster Stable and Production Ready?
Is your Elastic Cluster Stable and Production Ready?DoiT International
 
Criteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech TalkCriteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech TalkPierre Mavro
 

Semelhante a Overview of the ehcache (20)

Mini-Training: To cache or not to cache
Mini-Training: To cache or not to cacheMini-Training: To cache or not to cache
Mini-Training: To cache or not to cache
 
Selecting the right cache framework
Selecting the right cache frameworkSelecting the right cache framework
Selecting the right cache framework
 
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.
 
[Hanoi-August 13] Tech Talk on Caching Solutions
[Hanoi-August 13] Tech Talk on Caching Solutions[Hanoi-August 13] Tech Talk on Caching Solutions
[Hanoi-August 13] Tech Talk on Caching Solutions
 
Cache simulator
Cache simulatorCache simulator
Cache simulator
 
JCache Using JCache
JCache Using JCacheJCache Using JCache
JCache Using JCache
 
Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...
Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...
Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...
 
Lecture-7 Main Memroy.pptx
Lecture-7 Main Memroy.pptxLecture-7 Main Memroy.pptx
Lecture-7 Main Memroy.pptx
 
Caching for J2ee Enterprise Applications
Caching for J2ee Enterprise ApplicationsCaching for J2ee Enterprise Applications
Caching for J2ee Enterprise Applications
 
OSOM - Open source catching solutions
OSOM - Open source catching solutionsOSOM - Open source catching solutions
OSOM - Open source catching solutions
 
The Impala Cookbook
The Impala CookbookThe Impala Cookbook
The Impala Cookbook
 
A Closer Look at Apache Kudu
A Closer Look at Apache KuduA Closer Look at Apache Kudu
A Closer Look at Apache Kudu
 
Ehcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroidsEhcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroids
 
Managing Security At 1M Events a Second using Elasticsearch
Managing Security At 1M Events a Second using ElasticsearchManaging Security At 1M Events a Second using Elasticsearch
Managing Security At 1M Events a Second using Elasticsearch
 
Memory Management in Operating Systems for all
Memory Management in Operating Systems for allMemory Management in Operating Systems for all
Memory Management in Operating Systems for all
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison
 
Is your Elastic Cluster Stable and Production Ready?
Is your Elastic Cluster Stable and Production Ready?Is your Elastic Cluster Stable and Production Ready?
Is your Elastic Cluster Stable and Production Ready?
 
Ehcache 3 @ BruJUG
Ehcache 3 @ BruJUGEhcache 3 @ BruJUG
Ehcache 3 @ BruJUG
 
Criteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech TalkCriteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech Talk
 
Memory Management.pdf
Memory Management.pdfMemory Management.pdf
Memory Management.pdf
 

Mais de HyeonSeok Choi

밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05HyeonSeok Choi
 
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2HyeonSeok Choi
 
프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2HyeonSeok Choi
 
알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04HyeonSeok Choi
 
딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04HyeonSeok Choi
 
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05HyeonSeok Choi
 
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성HyeonSeok Choi
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6HyeonSeok Choi
 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaHyeonSeok Choi
 
실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1HyeonSeok Choi
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HyeonSeok Choi
 
HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HyeonSeok Choi
 

Mais de HyeonSeok Choi (20)

밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
 
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2
 
프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2
 
알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04
 
딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04
 
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
 
함수적 사고 2장
함수적 사고 2장함수적 사고 2장
함수적 사고 2장
 
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장
 
Bounded Context
Bounded ContextBounded Context
Bounded Context
 
DDD Repository
DDD RepositoryDDD Repository
DDD Repository
 
DDD Start Ch#3
DDD Start Ch#3DDD Start Ch#3
DDD Start Ch#3
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8
 
실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7
 
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6
 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, Kibana
 
실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장
 
HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HTTP 완벽가이드 16장
HTTP 완벽가이드 16장
 
HTTPS
HTTPSHTTPS
HTTPS
 

Último

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Último (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Overview of the ehcache

  • 1. Overview of the Ehcache 2011.12.02 chois79
  • 2. Contents • About Caches • Why caching works • Will an Application Benefit from Caching? • How much will an application speed up? • About Ehcache • Features of Ehcache • Key Concepts of Ehcache • Using Ehcache • Distributed Ehcache Architecture • References
  • 3. About Caches • In Wiktionary – A store of things that will be required in future and can be retrieved rapidly • In computer science – A collection of temporary data which either duplicates data located elsewhere of is the result of a computation – The data can be repeatedly accessed inexpensively
  • 4. Why caching works • Locality of Reference – Data that is near other data or has just been used is more likely to be used again • The Long Tail A small number of items may make up the bulk of sales. – Chris Anderson – One form of a Power Law distribution is the Pareto distribution (80:20 rule) – IF 20% of objects are used 80% of the time and a way can be found to reduce the cost of obtaining that 20%, then system performance will improve
  • 5. Will an Application Benefit from Caching? CPU bound Application • The time taken principally depends on the speed of the CPU and main memory • Speeding up – Improving algorithm performance – Parallelizing the computations across multiple CPUs or multiple machines – Upgrading the CPU speed • The role of caching – Temporarily store computations that may be reused again • Ex) DB Cache, Large web pages that have a high rendering cost.
  • 6. Will an Application Benefit from Caching? I/O bound Application • The time taken to complete a computation depends principally on the rate at which data can be obtained • Speeding up – Hard disks are speeding up by using their own caching of blocks into memory • There is no Moore’s law for hard disk. – Increase the network bandwidth • The role of cache – Web page caching, for pages generated from databases – Data Access object caching
  • 7. Will an Application Benefit from Caching? Increased Application Scalability • Data bases can do 100 expensive queries per second – Caching may be able to reduce the workload required
  • 8. How much will an application speed up? (Amdahl’s Law) • Depend on a multitude of factors – How many times a cached piece of data can and is reduced by the application – The proportion of the response time that is alleviated by caching • Amdahl’s Law P: Proportion speed up S: Speed up
  • 9. Amdahl’s Law Example (Speed up from a Database Level Cache) Un-cached page time: 2 seconds Database time: 1.5 seconds Cache retrieval time: 2ms Proportion: 75% (2/1.5) The expected system speedup is thus: 1 / (( 1 – 0.75) + 0.75 / (1500/2)) = 1 / (0.25 + 0.75/750) = 3.98 times system speedup
  • 10. About Ehcache • Open source, standards-based cache used to boost performance • Basically, based on in-process • Scale from in-process with one more nodes through to a mixed in- process/out-of-process configuration with terabyte-sized caches • For applications needing a coherent distributed cache, Ehcache uses the open source Terracotta Server Array • Java-based Cache, Available under an Apache 2 license • The Wikimedia Foundation use Ehcache to improve the performance of its wiki projects
  • 11. Features of Ehcache(1/2) • Fast and Light Weight – Fast, Simple API – Small foot print: Ehcache 2.2.3 is 668 kb making it convenient to package – Minimal dependencies: only dependency on SLF4J • Scalable – Provides Memory and Disk store for scalability into gigabytes – Scalable to hundreds of nodes with the Terracotta Server Array • Flexible – Supports Object or Serializable caching – Provides LRU, LFU and FIFO cache eviction policies – Provides Memory and Disk stores
  • 12. Features of Ehcache(2/2) • Standards Based – Full implementation of JSR107 JCACHE API • Application Persistence – Persistent disk store which stores data between VM restarts • JMX Enable • Distributed Caching – Clustered caching via Terracotta – Replicated caching via RMI, JGroups, or JMS • Cache Server – RESTful, SOAP cache Server • Search – Standalone and distributed search using a fluent query language
  • 13. Key Concepts of Ehcache Key Classes • CacheManager – Manages caches • Ehcache – All caches implement the Ehcache interface – A cache has a name and attributes – Cache elements are stored in the memory store, optionally the also overflow to a disk store • Element – An atomic entry in a cache – Has key and value – Put into and removed from caches
  • 14. Key Concepts of Ehcache Usage patterns: Cache-aside • Application code use the cache directly • Order – Application code consult the cache first – If cache contains the data, then return the data directly – Otherwise, the application cod must fetch the data from the system-of-record, store the data in the cache, then return. – 0
  • 15. Key Concepts of Ehcache Usage patterns: Read-through • Mimics the structure of the cache-aside patterns when reading data • The difference – Must implement the CacheEntryFactory interface to instruct the cache how to read objects on a cache miss – Must wrap the Ehcache instance with an instance of SelfPopulationCache – 4
  • 16. Key Concepts of Ehcache Usage patterns: Write-through and behind • Mimics the structure of the cache-aside pattern when data write • The difference – Must implement the CacheWriter interface and configure the cache for write-through or write behind – A write-through cache writes data to the system-of-record in the same thread of execution – A write-behind queues the data for write at a later time – d
  • 17. Key Concepts of Ehcache Usage patterns: Cache-as-sor • Delegate SOR reading and writing actives to the cache • To implement, use a combination of the following patterns – Read-through – Write-through or write-behind • Advantages – Less cluttered application code – Easily choose between write-through or write-behind strategies – Allow the cache to solve the “thundering-herd” problem • Disadvantages – Less directly visible code-path
  • 18. Key Concepts of Ehcache Storage Options: Memory Store • Suitable Element Types – All Elements are suitable for placement in the Memory Store • Characteristics – Thread safe for use by multiple concurrent threads – Backed By LinkedHashMap (Jdk 1.4 later) • LinkedHashMap: Hash table and linked list implementation of the Map interface – Fast • Memory Use, Spooling and Expiry Strategy – Least Recently Used (LRU): default – Least frequently Used (LFU) – First In First Out (FIFO)
  • 19. Key Concepts of Ehcache Storage Options: Big-Memory Store • Pure java product from Terracotta that permits caches to use an additional type of memory store outside the object heap. (Packaged for use in Enterprise Ehcache) – Not subject to Java GC – 100 times faster than Disk-Store – Allows very large caches to be created(tested up to 350GB) • Two implementations – Only Serializable cache keys and values can be placed similar to Disk Store – Serializaion and deserialization take place putting and getting from the store • Around 10 times slower than Memory Store • The memory store holds the hottest subset of data from the off-heap store, already in deserialized form • Suitable Element Types – Only Elements which are serializable can be placed in the off-heap – Any non serializable Elements will be removed and WARNING level log message emitted
  • 20. Key Concepts of Ehcache Storage Options: Disk Store • Disk Store are optional • Suitable Element Type – Only Elements which are serializable can be placed in the off-heap – Any non serializable Elements will be removed and WARNING level log message emitted • Eviction – The LFU algorithm is used and it is not configurable or changeable • Persistence – Controlled by the disk persistent configuration – If false or onmitted, disk store will not presit between CacheManager restarts
  • 21. Key Concepts of Ehcache Replicated Caching • Ehcache has a pluggable cache replication scheme – RMI, JGroups, JMS • Using a Cache Server – To achieve shared data, all JVMs read to and write from a Cache Server • Notification Strategies – If the Element is not available anywhere else then the element it self shoud from the pay load of the notification – D
  • 22. Key Concepts of Ehcache Search APIs • Allows you to execute arbitrarily complex queries either a standalone cache or a Terracotta clustered cache with pre-built indexes • Searchable attributes may be extracted from both key and vales • Attribute Extractors – Attributes are extracted from keys or values – This is done during search or, if using Distributed Ehcache on put() into the cache using AttributeExtractors – Supported types • Boolean, Byte, Character, Double, Float, Integer, Long, Short, String, Enum, java.util.Date, Java.sql.Date
  • 23. Using Ehcache General-Purpose Caching • Local Cache • Configuration – Place the Ehcache jar into your class-path – Configure ehcache.xml and place it in your class-path – Optionally, configure an appropriate logging level DB Local Application Web Ehcache Server – d Web Server
  • 24. Using Ehcache Cache Server • Support for RESTful and SOAP APIs • Redundant, Scalable with client hash-based routing – The client can be implemented in any language – The client must work out a partitioning scheme – s
  • 25. Using Ehcache Integrate with other solutions • Hivernate • Java EE Servlet Caching • JCache style caching • Spring, cocoon, Acegi and other frameworks
  • 26. Distributed Ehcache Architecture (Logical View) • Distributed Ehcache combines an in-process Ehcache with the Terracotta Server Array • The data is split between an Ehcache node(L1) and the Terracotta Server Array(L2) – The L1 can hold as much data as is comfortable – The L2 always a complete copy of all cache data – The L1 acts as a hot-set of recently used data
  • 27. Distributed Ehcache Architecture (Ehcache topologies) • Standalone – The cache data set is held in the application node – Any other application nodes are independent with no communication between them • Distributed Ehcache – The data is held in a Terracotta server Array with a subset of recently used data held in each application cache node • Replicated – The cached data set is held in each application node and data is copied or invalidated across the cluster without locking – Replication can be either asynchronous or synchronous – The only consistency mode available is weak consistency
  • 28. Distributed Ehcache Architecture (Network View) • From a network topology point of view Distributed Ehcache consist of – Ehcache node(L1) • The Ehcache library is present in each app • An Ehcache instance, running in-process sits in each JVM – Terracotta Server Array(L2) • Each Ehcache instance maintains a connection with one or more Terracotta Servers • Consistent hashing is used by the Ehcache nodes to store and retrieve cache data • 4
  • 29. Distributed Ehcache Architecture (Memory Hierarchy View) • Each in-process Ehcache instance – Heap memory – Off-heap memory(Big Memory) • The Terracotta Server Arrays – Heap memory – Off-heap memory – Disk storage. • This is optional.(Persistence) – 1
  • 30. Ehcache in-process compared with Memcached
  • 31. Reference • Ehcache User Guide – http://ehcache.org/documentation • Ehcache Architecture, Features And Usage patterns – Greg Luck, 2009 JavaOne Session 2007