We now track whether restoration is needed after reconciliation in three layers.
1) Update chain: an update chain needs to be restored if there are updates newer than the selected
onpage value, or there are non-globally visible updates for in-memory database and fixed length
2) Split page: a split page needs to be restored if any of its associated saved updates needs to be
3) Original page: we mark restoration is needed when we see any update chain that needs to be
restored in reconciliation to enable key promotion.
We free the associated saved updates after we have written the onpage value to the disk image and
moved the older versions to the history store if restoration is not required for the split page.
If restoration is required, we only restore the saved update chains that are marked to be restored and
free all the updates that have been moved to the data store and the history store. | 31 Mar 20 09:32 UTC
Evergreen Subscription: ; Evergreen Event: