diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/include/reconcile.h')
-rw-r--r-- | src/third_party/wiredtiger/src/include/reconcile.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/src/include/reconcile.h b/src/third_party/wiredtiger/src/include/reconcile.h index 64519f5de01..b644419c6de 100644 --- a/src/third_party/wiredtiger/src/include/reconcile.h +++ b/src/third_party/wiredtiger/src/include/reconcile.h @@ -65,6 +65,17 @@ struct __wt_rec_chunk { }; /* + * WT_DELETE_HS_UPD -- + * Update that needs to be deleted from the history store. + */ +struct __wt_delete_hs_upd { + WT_INSERT *ins; /* Insert list reference */ + WT_ROW *rip; /* Original on-page reference */ + WT_UPDATE *upd; + WT_UPDATE *tombstone; +}; + +/* * Reconciliation is the process of taking an in-memory page, walking each entry * in the page, building a backing disk image in a temporary buffer representing * that information, and writing that buffer to disk. What could be simpler? @@ -227,6 +238,15 @@ struct __wt_reconcile { size_t supd_allocated; size_t supd_memsize; /* Size of saved update structures */ + /* + * List of updates to be deleted from the history store. While reviewing updates for each page, + * we save the updates that needs to be deleted from history store here, and then delete them + * after we have built the disk image. + */ + WT_DELETE_HS_UPD *delete_hs_upd; /* Updates to delete from history store */ + uint32_t delete_hs_upd_next; + size_t delete_hs_upd_allocated; + /* List of pages we've written so far. */ WT_MULTI *multi; uint32_t multi_next; |