[
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)