jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig (JIRA) <j...@apache.org>
Subject [jira] [Updated] (OAK-6915) Minimize the amount of uncached segment reads
Date Wed, 08 Nov 2017 23:13:00 GMT

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

Mime
View raw message