[ 
https://issues.apache.org/jira/browse/OAK-4579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15401954#comment-15401954
 ] 

Andrei Dulceanu edited comment on OAK-4579 at 8/1/16 1:28 PM:
--------------------------------------------------------------

There were some issues regarding step 2 with four 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]


was (Author: dulceanu):
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
(v6.3.4#6332)

Reply via email to