WL#11328: InnoDB: Optimizing Small Changes to BLOBs

Affects: Server-8.0   —   Status: Complete

This is a follow up worklog for WL#8960.  In WL#8960, the minimum change to a
BLOB is a single LOB page.  Even if only a few bytes are modified, minimum one
LOB page will be modified.  So, there is scope for improvement for small changes
to the BLOBs.

The solution provided by WL#8960 is a general solution suitable for all sizes of
BLOBs and for all size of changes (from few bytes to even 1GB of changes).  But
it is less efficient for small changes done to the BLOBs.  Also, in the case of
WL#8960, the old versions of BLOBs are stored in the BLOB itself.  Undo log
format is not changed.

To optimize small changes to the BLOBs, we plan to do the regular undo logging.
 For this the undo log format needs to be changed.  When a BLOB is
modified/updated, then we need to store the old and new portion of the BLOB in
the undo log record.  Currently there is a restriction that the undo log record
must fit within an undo log page.  We need to perform our operation within that
constraint.