[
https://issues.apache.org/jira/browse/OAK-4579?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrei Dulceanu updated OAK-4579:
---------------------------------
Description:
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()}}.
was:
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()}}.
> 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
>
>
> 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)