The persistent cache may block a commit for a rather long time if the generation is switched during the commit. The default configuration tells the persistent cache to compact the store when it is closed. This is exactly what happens when a generation is switched.
I think it would be best to disable compaction.
I was able to reproduce it with the ContinuousRevisionGCTest in oak-run with -DgarbageRatio=0.9, but it probably also happens with the default garbage ratio of 0.5.
Once the MVStore reaches 1GB, the console will show something like this:
The background update thread had to wait 35 seconds for the backgroundOperations lock, which was held by the committing thread: