Journal entries are created in the background write. Normally this happens every second. If for some reason there is a large delay between two background writes, the number of pending changes can also accumulate. Which can result in (arbitrary) large single journal entries (ie with large _c property).
This can cause multiple problems down the road:
- journal gc at this point loads 450 entries - and if some are large this can result in a very large memory consumption during gc (which can cause severe stability problems for the VM, if not OOM etc). This should be fixed with
OAK-3001(where we only get the id, thus do not care how big _c is)
OAK-3001is done (which is currently scheduled after 1.4) what we can do is reduce the delete batch size ( OAK-3975)
- background reads however also read the journal entries and even if
OAK-3001/ OAK-3975are implemented the background read can still cause large memory consumption. So we need to improve this one way or another.