[
https://issues.apache.org/jira/browse/OAK-6915?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Dürig updated OAK-6915:
-------------------------------
Attachment: OAK-6915.patch
[^OAK-6915-03.patch] first checks the Guava cache before actually loading a
segment from disk.
With this test I got massive improvements for ConcurrentReadTest
Unpatched:
{noformat}
# ConcurrentReadTest C min 10% 50% 90% max
N
Oak-Segment-Tar 1 71 94 108 127 310
539
Oak-Segment-Tar-Cold 1 103892 103892 103892 103892 103892
1
{noformat}
Patched:
{noformat}
# ConcurrentReadTest C min 10% 50% 90% max
N
Oak-Segment-Tar 1 40 98 112 131 354
527
Oak-Segment-Tar-Cold 1 47 96 110 126 256
540
{noformat}
Also checking with JMC confirmed that the unpatched version reads multiple GB
from disk while the patched version reads virtually nothing.
> Minimize the amount of uncached segment reads
> ---------------------------------------------
>
> Key: OAK-6915
> URL: https://issues.apache.org/jira/browse/OAK-6915
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: segment-tar
> Reporter: Francesco Mari
> Assignee: Francesco Mari
> Fix For: 1.8, 1.7.12
>
> Attachments: OAK-6915-01.patch, OAK-6915-02.patch,
> OAK-6915-diagnostics.patch, OAK-6915.patch
>
>
> The current implementation of {{SegmentCache}} should make better use of the
> underlying Guava cache by relying on the cached segments instead of
> unconditionally performing an uncached segment read via the
> {{Callable<Segment>}} passed to {{SegmentCache#getSegment}}.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)