[ https://issues.apache.org/jira/browse/OAK-6915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16244921#comment-16244921 ]
Michael Dürig edited comment on OAK-6915 at 11/8/17 11:14 PM: -------------------------------------------------------------- [^OAK-6915.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. was (Author: mduerig): [^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)