Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.3.14
-
None
Description
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) - before
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.
Attachments
Attachments
Issue Links
- is related to
-
OAK-7564 Commit fails when forced journal push throws exception
- Closed
-
OAK-3001 Simplify JournalGarbageCollector using a dedicated timestamp property
- Closed
-
OAK-3975 Change DELETE_BATCH_SIZE to 100 (from 450), and make it configurable
- Closed
-
OAK-6479 misleading log entry when there's no revision to write to the journal
- Closed