Hi Thomas The idea is most welcome. Just had an OOME with 4G heap on a local dev instance yesterday due to compaction (running Oak 1.2.4).
Which API do you want to use for copying? The NodeStore API? Note that for a complete copy you need to also consider copying checkpoints. The idea is very similar to what's happening in oak-upgrade. From my experiments in that area, I think this approach could result in a reasonably fast compaction. For a simplistic approach (and I may just be summarizing your idea, not quite sure): - the NodeStore could be wrapped with a CompactingNodeStore - CompactingNodeStore delegates to store 1 and store 2; a bloom filter recording copied paths optimizes correct delegation; false positives check both store 2 then store 1 - once copy is complete, store 1 can be shut down - repeat when necessary Challenges may be in the caching layers, where references to store 1 may be hard to get rid of? Regards Julian On Fri, Aug 28, 2015 at 10:05 AM, Thomas Mueller <[email protected]> wrote: > Hi, > > I thought about SegmentStore compaction and made a few slides: > > http://www.slideshare.net/ThomasMueller12/multi-store-compaction > > Feedback is welcome! The idea is at quite an early stage, so if you don't > understand or agree with some items, I'm to blame. > > Regards, > Thomas
