2940555caa
But already there are some pretty fundamental problems. The main issue is that, while we correctly dereference slices during compaction, pending commits that get delayed after compaction still point to the old block. I'm not sure there's an easy way around this aside from aborting compaction commits or fully simulating commits, both of which seem too costly to implement... Also coalescing during compaction is flawed as well, since our attributes will be outdated by the time they are committed if there is a compaction... Looks like it's back to the drawing board. Either our approach to compaction needs to change, or this slice/coalescing work needs to be reverted/redesigned...