Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/UserGuide/JPA/sandbox/caching/Cache Architecture"

m
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{EclipseLink_UserGuide
 +
|info=y
 +
|toc=n
 +
|eclipselink=y
 +
|eclipselinktype=JPA}}
 +
 
=Cache Architecture=
 
=Cache Architecture=
  
Line 34: Line 40:
  
 
The unit of work cache services operations within the unit of work. It maintains and isolates objects from the session cache, and writes changed or new objects to the session cache after the unit of work commits changes to the data source.
 
The unit of work cache services operations within the unit of work. It maintains and isolates objects from the session cache, and writes changed or new objects to the session cache after the unit of work commits changes to the data source.
 +
 +
{{EclipseLink_JPA
 +
|previous=[[EclipseLink/UserGuide/JPA/sandbox/caching|caching]]
 +
|next=    [[EclipseLink/UserGuide/JPA/sandbox/caching|caching]]
 +
|up=      [[EclipseLink/UserGuide/JPA/sandbox/caching|caching]]
 +
|version= 2.2.0 DRAFT}}

Latest revision as of 17:25, 18 February 2011

EclipseLink JPA

Eclipselink-logo.gif
EclipseLink
Website
Download
Community
Mailing ListForumsIRCmattermost
Issues
OpenHelp WantedBug Day
Contribute
Browse Source


Cache Architecture

EclipseLink uses two types of cache: the session cache maintains objects retrieved from and written to the data source; and the unit of work cache holds objects while they participate in transactions. When a unit of work successfully commits to the data source, EclipseLink updates the session cache accordingly.


Note: You can also configure a query to cache its results (see How to Cache Results in a ReadQuery)


As this figure shows, the session cache and the unit of work cache work together with the data source connection to manage objects in an EclipseLink application. The object life cycle relies on these three mechanisms.


Object Life Cycle and the EclipseLink Caches

Object Life Cycle and the EclipseLink Caches


Session Cache

The session cache is a shared cache that services clients attached to a given session. When you read objects from or write objects to the data source using a client session, EclipseLink saves a copy of the objects in the parent server session's cache and makes them accessible to all other processes in the session.

EclipseLink adds objects to the session cache from the following:

  • The data store, when EclipseLink executes a read operation
  • The unit of work cache, when a unit of work successfully commits a transaction

An isolated client session is a special type of client session that provides its own session cache isolated from the shared object cache of its parent server session. The isolated client session cache can be used to improve user-based security or to avoid caching highly volatile data. Developers can choose on a per object type whether default shared session cache or the isolated client session cache is used.

For more information, see Isolated Client Sessions.

Unit of Work Cache

The unit of work cache services operations within the unit of work. It maintains and isolates objects from the session cache, and writes changed or new objects to the session cache after the unit of work commits changes to the data source.

Eclipselink-logo.gif
Version: 2.2.0 DRAFT
Other versions...

Back to the top