Michael Dürig created OAK-6399:
----------------------------------

             Summary: Re-establish full offline compaction functionality
                 Key: OAK-6399
                 URL: https://issues.apache.org/jira/browse/OAK-6399
             Project: Jackrabbit Oak
          Issue Type: Task
          Components: segment-tar
            Reporter: Michael Dürig
            Assignee: Michael Dürig
             Fix For: 1.8, 1.7.6


The work on OAK-5790 and OAK-3349 replaced the former offline compaction code 
(implemented in the {{Compactor}}) class with the one used for online 
compaction (implemented in the {{OnlineCompactor}} class), which currently 
causes offline compaction to lose a few features. 

Once above issues are resolved we need to decide how we should proceed with 
offline compaction. Either we stay with the {{Compactor}} class (possibly 
renaming it to {{OfflineCompactor}}) and rewire it into 
{{FileStore.compact()}}. Or alternatively we unify the functionality of 
{{OnlineCompactor}} and {{Compactor}} so we can use a single class. 

Features that are present in {{Compactor}} that are currently not present in 
{{OnlineCompactor}}:
* Binary deduplication based on the content of binaries. I think we can drop 
this feature as we should rely on a blob store for most binaries.
* {{oak.compaction.eagerFlush}} feature flag. I think we can drop this one as 
the underlying issue should have been fixed with OAK-6110 and should not be 
present in {{OnlineCompactor}}.
* content equality check (used by backup and restore). We can probably drop 
this but need to double check why exactly this was needed.
* progress logging ({{ProgressTracker}}). Should be easy to implement in 
{{OnlineCompactor}}. It is probably a good idea to unify this with 
{{GCNodeWriteMonitor}}. 
* {{oak.segment.compaction.cacheSize}} feature flag. {{OnlineCompactor}} does 
not have its own caches but relies on those of the underlying {{FileStore}}. 
This feature flag should thus probably be used to configure these caches.





--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to