[ http://issues.apache.org/jira/browse/JCR-619?page=all ]

Thomas Mueller updated JCR-619:
-------------------------------

    Attachment: cacheManager7.txt

I have a patch for the Java level deadlock problem. Now the method touch() is 
no longer synchronized on the cache. However, inside touch() the cache could 
shrink, and this is still synchronized. Also fixed is a problem in 
shrinkIfRequired: this method called touch() which could theoretically cause 
another shrinkIfRequired call.

> CacheManager (Memory Management in Jackrabbit)
> ----------------------------------------------
>
>                 Key: JCR-619
>                 URL: http://issues.apache.org/jira/browse/JCR-619
>             Project: Jackrabbit
>          Issue Type: New Feature
>          Components: core
>    Affects Versions: 1.1
>            Reporter: Thomas Mueller
>         Assigned To: Stefan Guggisberg
>             Fix For: 1.2
>
>         Attachments: cacheManager.txt, cacheManager2.txt, cacheManager5.txt, 
> cacheManager6.txt, cacheManager7.txt, stack.txt
>
>
> Jackrabbit can run out of memory because the the combined size of the various 
> caches is not managed. The biggest problem (for me) is the combined size of 
> the o.a.j.core.state.MLRUItemStateCache caches. Each session seems to create 
> a few (?) of those caches, and each one is limited to 4 MB by default.
> I have implemented a dynamic (cache-) memory management service that 
> distributes a fixed amount of memory dynamically to all those caches.
> Here is the patch

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

        

Reply via email to