-
Bug
-
Resolution: Done
-
Medium
-
Nitrogen SR3, Oxygen SR4, Sodium, Fluorine SR3, Neon SR2
-
None
When CDS is faced with large transactions it can easily allocate byte[]s whose size is couple of megabytes. This is problematic with G1GC, as such objects are allocated as humongous objects in the old generation – if they exceed one-half of region size. Region size varies between 1MiB and 32MiB and is recommended to be sized at 1/2048 of heap.
The source of these is CommitTransactionPayload, which retains its serialized form – which is used to write it out either to persistence or to followers. We should be able to store this serialized form in a format which does not rely on such large objects.