[
https://issues.apache.org/jira/browse/OAK-7312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16388041#comment-16388041
]
Francesco Mari commented on OAK-7312:
-
The work is currently in progress in [this branch on
GitHub|https://github.com/francescomari/jackrabbit-oak/tree/OAK-7312]. The work
currently committed, as of edda46ed05, passes every unit and integration test,
but is currently unable to deal with a number of retained generations different
than two. Moreover, while the code quality is quite low, it should be enough to
validate the approach.
The behaviour of the FileStore has been altered to run cleanup before
compaction starts, with the assumption that the current compaction operation
will complete successfully. If this is not the case, and compaction produces
uncommitted data, it would be better to remove this content at the end of
compaction. For this reason, I left untouched the logic that runs cleanup also
after compaction terminates. Further data is necessary to assess the validity
of this approach.
> Evaluate the feasibility of running cleanup before compaction
> -
>
> Key: OAK-7312
> URL: https://issues.apache.org/jira/browse/OAK-7312
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: segment-tar
>Reporter: Francesco Mari
>Assignee: Francesco Mari
>Priority: Major
> Fix For: 1.10
>
>
> Currently cleanup is run only after the compaction phase. Assuming that the
> system is configured to retain the default value of two generations, it might
> happen that, during the compaction phase, the system will need space for a
> third generation, the one being currently compacted.
> In order to provide better guarantees on the amount of used disk space, it
> should be possible to optimistically perform cleanup before compaction,
> getting rid of the oldest generation before a new one is constructed.
> This issue tracks the feasibility of this approach, to be validated with a
> simple proof of concept.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)