SlideShare a Scribd company logo
1 of 16
Hibernate caching
       2012

     Barnabás Südy
barnabas.sudy@gmail.com
Structure
                                                          Three cache
1st level cache - Session cache
  Hibernate supported cache.
  Ensures the entities are returnd always on the same reference
  1/session (entitymanager) - Not thread safe

Query cache
  Not supported by default. (Ehcache)
  Stores the queries and their results.
  1/sessionfacory (entitymanagerfactory)

2nd level cache
  Not supported by default (Ehcache)
  Stores the entities (dehydrated - not as objects)
  1/sessionfactory (entitymanager)
Default behavior

    Hibernate does not run queries (at all)

    Query cache can store the
    (Query, List<PrimaryKey>) pairs.

    2nd level cache stores the entities.

Questions:

    What piece of data should be cached?

    Hibernate has to know which piece of
    data valid in the cache.
Read phenomena

    Phantom reads
    Other transaction modifies the data

    Non Repeatable reads
    Other transaction adds new data

    Dirty data
    Not committed data in the result.
Isolation levels

      Serializable
   --- Phantom reads ---
   Repeatable read
--- Non repeatable reads ---
   Committed read
      --- Dirty data ---
  Uncommitted read
2nd level cache

To optimise the performance Hibernate
 introduced the Cache strategies:

    Read only

    Read-Write

    NonStrict Read-Write

    Transactional
2nd level cache

To optimise the performance Hibernate
 introduced the Cache strategies:

    Read only

    Read-Write

    NonStrict Read-Write

    Transactional
Read only strategy

A read-only cache is good for data that
  needs to be read often but not
  modified.



    Simple

    Safe to use in a clustered environment.

    The data has to never ever modify.

    Best performance.
NonStrict Read-Write

Rarely need to modify data.
This is the case if two transactions are unlikely to try to update the
   same item simultaneously.


    No strict transaction isolation

    Ensure Session.close() or
    Session.disconnect() is called at the end
    of transaction. (except JTA)

    hibernate.transaction.manager_lookup_class to use in JTA environment.
Read-Write

Appropriate for an application which needs
 to update data regularly. (not exacly true)


    Do not use a if serializable isolation
    needed.

    Ensure Session.close() or
    Session.disconnect() is called at the end
    of transaction. (except JTA)

    hibernate.transaction.manager_lookup_class to use in JTA environment.
How is works - Read-only


    The modification is disabled.

    No 2nd level cache update needed.
How is works -
                    NonStrict Read-Write

    The entities are evicted from the 2nd
    level cache by their life timeout. Until the
    eviction they are in use.

    Repeatable reads problem is not solved.
    The queries are not forwarded to the
    database.
How it works - Read-write


    Transaction and entity timestamp.

    If transaction timestamp is older than the
    entity timestamp the entity has to be
    pulled out from the database.

    The responsibility is deflected to the
    database.
How it works - Read-write

Let's take a look our test code.
Good to know

    Be careful with query cache without 2nd level
    cache.

    Be careful 2nd level cache without query
    cache.

    Be careful query cache and read-write entity.

    And again: 2nd level cache is not queryable
    only findable.

    The first level cache keeps the entity
    references.
A little bit configuration....

    Persistence.xml

    Annotations

    Ehcache.xml

    Etc.

More Related Content

What's hot

Get mysql clusterrunning-windows
Get mysql clusterrunning-windowsGet mysql clusterrunning-windows
Get mysql clusterrunning-windows
JoeSg
 
Deadlocks 160928121516-160928183232
Deadlocks 160928121516-160928183232Deadlocks 160928121516-160928183232
Deadlocks 160928121516-160928183232
marangburu42
 

What's hot (10)

Parallel XSLT Processing of Large XML Documents - XML Prague 2015
Parallel XSLT Processing of Large XML Documents - XML Prague 2015Parallel XSLT Processing of Large XML Documents - XML Prague 2015
Parallel XSLT Processing of Large XML Documents - XML Prague 2015
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 
BITS: Introduction to relational databases and MySQL - Schema design
BITS: Introduction to relational databases and MySQL - Schema designBITS: Introduction to relational databases and MySQL - Schema design
BITS: Introduction to relational databases and MySQL - Schema design
 
Hadoop and Marklogic: Using the Genetic Algorithm to generate Source Code
Hadoop and Marklogic: Using the Genetic Algorithm to generate Source CodeHadoop and Marklogic: Using the Genetic Algorithm to generate Source Code
Hadoop and Marklogic: Using the Genetic Algorithm to generate Source Code
 
Get mysql clusterrunning-windows
Get mysql clusterrunning-windowsGet mysql clusterrunning-windows
Get mysql clusterrunning-windows
 
Deadlock and memory management -- Operating System
Deadlock and memory management -- Operating SystemDeadlock and memory management -- Operating System
Deadlock and memory management -- Operating System
 
XSLT 3.0 - new features
XSLT 3.0 - new featuresXSLT 3.0 - new features
XSLT 3.0 - new features
 
Cassandra
CassandraCassandra
Cassandra
 
Distributed deadlock
Distributed deadlockDistributed deadlock
Distributed deadlock
 
Deadlocks 160928121516-160928183232
Deadlocks 160928121516-160928183232Deadlocks 160928121516-160928183232
Deadlocks 160928121516-160928183232
 

Similar to Hibernate caching

Advanced Hibernate Notes
Advanced Hibernate NotesAdvanced Hibernate Notes
Advanced Hibernate Notes
Kaniska Mandal
 
Hibernate complete Training
Hibernate complete TrainingHibernate complete Training
Hibernate complete Training
sourabh aggarwal
 
10 Cache Implementation
10  Cache Implementation10  Cache Implementation
10 Cache Implementation
Ranjan Kumar
 
02 Hibernate Introduction
02 Hibernate Introduction02 Hibernate Introduction
02 Hibernate Introduction
Ranjan Kumar
 
Clustering In The Wild
Clustering In The WildClustering In The Wild
Clustering In The Wild
Sergio Bossa
 
Advanced Hibernate V2
Advanced Hibernate V2Advanced Hibernate V2
Advanced Hibernate V2
Haitham Raik
 
Hibernate Session 1
Hibernate Session 1Hibernate Session 1
Hibernate Session 1
b_kathir
 
Vmreport
VmreportVmreport
Vmreport
meru2ks
 

Similar to Hibernate caching (20)

Advanced Hibernate Notes
Advanced Hibernate NotesAdvanced Hibernate Notes
Advanced Hibernate Notes
 
Hibernate complete Training
Hibernate complete TrainingHibernate complete Training
Hibernate complete Training
 
10 Cache Implementation
10  Cache Implementation10  Cache Implementation
10 Cache Implementation
 
Hibernate tutorial for beginners
Hibernate tutorial for beginnersHibernate tutorial for beginners
Hibernate tutorial for beginners
 
02 Hibernate Introduction
02 Hibernate Introduction02 Hibernate Introduction
02 Hibernate Introduction
 
Clustering In The Wild
Clustering In The WildClustering In The Wild
Clustering In The Wild
 
Spring & hibernate
Spring & hibernateSpring & hibernate
Spring & hibernate
 
Hibernate Cache
Hibernate CacheHibernate Cache
Hibernate Cache
 
Advanced Hibernate V2
Advanced Hibernate V2Advanced Hibernate V2
Advanced Hibernate V2
 
Advance Features of Hibernate
Advance Features of HibernateAdvance Features of Hibernate
Advance Features of Hibernate
 
Kafka internals
Kafka internalsKafka internals
Kafka internals
 
Hibernate Interview Questions and Answers
Hibernate Interview Questions and AnswersHibernate Interview Questions and Answers
Hibernate Interview Questions and Answers
 
Synchronicity of a distributed account system
Synchronicity of a distributed account systemSynchronicity of a distributed account system
Synchronicity of a distributed account system
 
Repository performance tuning
Repository performance tuningRepository performance tuning
Repository performance tuning
 
Java Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and ExampleJava Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and Example
 
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
Performance Tuning -  Memory leaks, Thread deadlocks, JDK toolsPerformance Tuning -  Memory leaks, Thread deadlocks, JDK tools
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
 
Hibernate Session 1
Hibernate Session 1Hibernate Session 1
Hibernate Session 1
 
JahiaOne - Performance Tuning
JahiaOne - Performance TuningJahiaOne - Performance Tuning
JahiaOne - Performance Tuning
 
Vmreport
VmreportVmreport
Vmreport
 
05 Transactions
05 Transactions05 Transactions
05 Transactions
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Hibernate caching

  • 1. Hibernate caching 2012 Barnabás Südy barnabas.sudy@gmail.com
  • 2. Structure Three cache 1st level cache - Session cache Hibernate supported cache. Ensures the entities are returnd always on the same reference 1/session (entitymanager) - Not thread safe Query cache Not supported by default. (Ehcache) Stores the queries and their results. 1/sessionfacory (entitymanagerfactory) 2nd level cache Not supported by default (Ehcache) Stores the entities (dehydrated - not as objects) 1/sessionfactory (entitymanager)
  • 3. Default behavior  Hibernate does not run queries (at all)  Query cache can store the (Query, List<PrimaryKey>) pairs.  2nd level cache stores the entities. Questions:  What piece of data should be cached?  Hibernate has to know which piece of data valid in the cache.
  • 4. Read phenomena  Phantom reads Other transaction modifies the data  Non Repeatable reads Other transaction adds new data  Dirty data Not committed data in the result.
  • 5. Isolation levels Serializable --- Phantom reads --- Repeatable read --- Non repeatable reads --- Committed read --- Dirty data --- Uncommitted read
  • 6. 2nd level cache To optimise the performance Hibernate introduced the Cache strategies:  Read only  Read-Write  NonStrict Read-Write  Transactional
  • 7. 2nd level cache To optimise the performance Hibernate introduced the Cache strategies:  Read only  Read-Write  NonStrict Read-Write  Transactional
  • 8. Read only strategy A read-only cache is good for data that needs to be read often but not modified.  Simple  Safe to use in a clustered environment.  The data has to never ever modify.  Best performance.
  • 9. NonStrict Read-Write Rarely need to modify data. This is the case if two transactions are unlikely to try to update the same item simultaneously.  No strict transaction isolation  Ensure Session.close() or Session.disconnect() is called at the end of transaction. (except JTA)  hibernate.transaction.manager_lookup_class to use in JTA environment.
  • 10. Read-Write Appropriate for an application which needs to update data regularly. (not exacly true)  Do not use a if serializable isolation needed.  Ensure Session.close() or Session.disconnect() is called at the end of transaction. (except JTA)  hibernate.transaction.manager_lookup_class to use in JTA environment.
  • 11. How is works - Read-only  The modification is disabled.  No 2nd level cache update needed.
  • 12. How is works - NonStrict Read-Write  The entities are evicted from the 2nd level cache by their life timeout. Until the eviction they are in use.  Repeatable reads problem is not solved. The queries are not forwarded to the database.
  • 13. How it works - Read-write  Transaction and entity timestamp.  If transaction timestamp is older than the entity timestamp the entity has to be pulled out from the database.  The responsibility is deflected to the database.
  • 14. How it works - Read-write Let's take a look our test code.
  • 15. Good to know  Be careful with query cache without 2nd level cache.  Be careful 2nd level cache without query cache.  Be careful query cache and read-write entity.  And again: 2nd level cache is not queryable only findable.  The first level cache keeps the entity references.
  • 16. A little bit configuration....  Persistence.xml  Annotations  Ehcache.xml  Etc.