[ https://issues.apache.org/jira/browse/OAK-1804?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14016796#comment-14016796 ]
Jukka Zitting commented on OAK-1804: ------------------------------------ Looks good, +1 to commit. Some improvements we could/should make after committing the patch: * {{compact()}} should be private. It's better if we only publicly expose the {{gc()}} method for this purpose. * The log message written by {{compact()}} should probably be at INFO level, it's IMO significant enough information. * The {{writeNumber % compactThreshold == 0}} condition should also check for {{writeNumber > 0}}. * It would be better if the {{gc()}} method set only the {{compactNeeded}} flag, which would trigger the {{compact()}} method to set {{cleanupNeeded}}. This way we can guarantee that we won't end up with a compaction that's not followed by the cleanup. > TarMK compaction > ---------------- > > Key: OAK-1804 > URL: https://issues.apache.org/jira/browse/OAK-1804 > Project: Jackrabbit Oak > Issue Type: New Feature > Components: segmentmk > Reporter: Jukka Zitting > Assignee: Alex Parvulescu > Labels: production, tools > Fix For: 1.0.1, 1.1 > > Attachments: SegmentNodeStore.java.patch, compact-on-flush.patch, > compaction.patch > > > The TarMK would benefit from periodic "compact" operations that would > traverse and recreate (parts of) the content tree in order to optimize the > storage layout. More specifically, such compaction would: > * Optimize performance by increasing locality and reducing duplication, both > of which improve the effectiveness of caching. > * Allow the garbage collector to release more unused disk space by removing > references to segments where only a subset of content is reachable. -- This message was sent by Atlassian JIRA (v6.2#6252)