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

Reply via email to