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

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+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@
 
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
 

Recently uploaded (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
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
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
+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...
 
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
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
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
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
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
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

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.