jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrei Dulceanu (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (OAK-4579) Improve FileStore.size calculation
Date Mon, 01 Aug 2016 12:35:20 GMT

     [ https://issues.apache.org/jira/browse/OAK-4579?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Andrei Dulceanu updated OAK-4579:
    Attachment: OAK-4579-01.patch

There were some issues regarding step 2 with three test classes which needed {{FileStore::size}},
therefore I had to tweak {{FileStore}} creation by adding {{.withStatisticsProvider(new DefaultStatisticsProvider(executor))}}
and use {{fileStore.getStats().getApproximateSize()}} instead of {{fileStore.size()}}. All
tests successful pass after the change was made.

[~mduerig] Can you please take a look at the attached patch?

/cc [~frm]

> Improve FileStore.size calculation
> ----------------------------------
>                 Key: OAK-4579
>                 URL: https://issues.apache.org/jira/browse/OAK-4579
>             Project: Jackrabbit Oak
>          Issue Type: Task
>          Components: segment-tar
>            Reporter: Andrei Dulceanu
>            Assignee: Andrei Dulceanu
>            Priority: Minor
>              Labels: resilience
>             Fix For: Segment Tar 1.0.0
>         Attachments: OAK-4579-01.patch
> A new approach for calculating {{FileStore::size}} is needed because this method is prone
to lock contention and should not be called too often.
> The steps to implement the approach are:
> # reduce the lock surface of the size() method. This should be simple enough by creating
a copy of the readers / writer inside the lock and do the actual size calculation on that
snapshot but outside of the lock.
> # lower size() visibility to package to avoid misuse (from monitoring tools)
> # remove {{approximateSize}} and associated logic and replace it with {{size()}}.

This message was sent by Atlassian JIRA

View raw message