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

Reply via email to