[ 
https://issues.apache.org/jira/browse/OAK-3007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14620405#comment-14620405
 ] 

Thomas Mueller commented on OAK-3007:
-------------------------------------

For future reference, a benchmark I ran was:

{noformat}
java -Dwarmup=5 -Druntime=2 -Dprofile=true -jar target/oak-run-1.4-SNAPSHOT.jar 
    benchmark ReadPropertyTest Oak-Tar | grep "Segment.read"
{noformat}

This does not show readString, but many readTemplate calls. Possibly the 
following tests could be run as well:


ReadDeepTreeTest
ConcurrentReadDeepTreeTest
ConcurrentReadRandomNodeAndItsPropertiesTest
ConcurrentReadTest
ConcurrentTraversalTest
DescendantSearchTest
GetDeepNodeTest
GetNodeWithAdmin
ReadPropertyTest
SQL2DescendantSearchTest
SQL2SearchTest
SimpleSearchTest

> SegmentStore cache does not take "string" map into account
> ----------------------------------------------------------
>
>                 Key: OAK-3007
>                 URL: https://issues.apache.org/jira/browse/OAK-3007
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: segmentmk
>            Reporter: Thomas Mueller
>             Fix For: 1.3.3
>
>         Attachments: OAK-3007-2.patch, OAK-3007-3.patch, OAK-3007.patch
>
>
> The SegmentStore cache size calculation ignores the size of the field 
> Segment.string (a concurrent hash map). It looks like a regular segment in a 
> memory mapped file has the size 1024, no matter how many strings are loaded 
> in memory. This can lead to out of memory. There seems to be no way to limit 
> (configure) the amount of memory used by strings. In one example, 100'000 
> segments are loaded in memory, and 5 GB are used for Strings in that map.
> We need a way to configure the amount of memory used for that. This seems to 
> be basically a cache. OAK-2688 does this, but it would be better to have one 
> cache with a configurable size limit.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to