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

Michael Dürig commented on OAK-4279:
------------------------------------

[~alex.parvulescu], the approach taken with the patch looks good to me. Apart 
from the points you already mentioned there is two other issues we should 
consider:

* The way the offline flag is set in the gc options: I think instead of doing 
this through a setter it should by done at initialisation time. (i.e. through 
{{FileStore.Builder#withGCOptions}}. At a later stage we can further improve 
things so the compactor would be the only one having exclusive access to the 
store (to avoid accidentally setting this flag in an online use case). This 
could be done via the new {{Revision}} interface I introduced just now. As that 
one is still a bit in flux, I'd rather wait until it has stabilised until going 
further here.  

* I'm not too happy about {{SegmentWriter#writeBlobRef}} as it leaks 
implementation details (the blob reference). We should invest some time in 
finding a cleaner solution here. 



> Rework offline compaction
> -------------------------
>
>                 Key: OAK-4279
>                 URL: https://issues.apache.org/jira/browse/OAK-4279
>             Project: Jackrabbit Oak
>          Issue Type: Task
>          Components: segment-tar
>            Reporter: Michael Dürig
>            Assignee: Alex Parvulescu
>            Priority: Blocker
>              Labels: compaction, gc
>             Fix For: 1.6
>
>         Attachments: OAK-4279-v0.patch, OAK-4279-v1.patch, OAK-4279-v2.patch
>
>
> The fix for OAK-3348 broke some of the previous functionality of offline 
> compaction:
> * No more progress logging
> * Compaction is not interruptible any more (in the sense of OAK-3290)
> * Offline compaction could remove the ids of the segment node states to 
> squeeze out some extra space. Those are only needed for later generations 
> generated via online compaction. 
> We should probably implement offline compaction again through a dedicated 
> {{Compactor}} class as it was done in {{oak-segment}} instead of relying on 
> the de-duplication cache (aka online compaction). 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to