[hibernate-issues] [Hibernate-JIRA] Created: (HHH-5549) Add option for use of weak references in the session cache

Archie Cobbs (JIRA) noreply at atlassian.com
Thu Sep 9 14:28:18 EDT 2010


Add option for use of weak references in the session cache
----------------------------------------------------------

                 Key: HHH-5549
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5549
             Project: Hibernate Core
          Issue Type: New Feature
          Components: core
    Affects Versions: 3.3.2
            Reporter: Archie Cobbs


Hibernate's session cache requires manual action (i.e., evict() and/or clear()) to prevent it from growing without bound when iterating over a large set of entities. This was surprising to me the first time I encountered it, because most people's concept of a "cache" includes the idea of transparency, i.e., the cache is not apparent except in increased performance. Hibernate's cache, even within a read-only transaction, effectively has a built-in memory leak.

But anyway, this problem can be fixed easily. Suggest adding a new feature which would (optionally) allow the session cache to be configured to automatically evict unmodified objects that were no longer referenced.

The session cache would change to use two kinds of references to objects in the cache: normal strong references for objects that are new or modified in any way, and weak references for objects that have not been modified. Hibernate would have to switch a weakly referenced object into a strongly referenced one once it was modified.

This way, unmodified, weakly referenced objects would automatically fall out of the cache when they were no longer referenced by the application, and the "iterate over a large dataset" memory leak would be fixed.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list