Reconciliation question

58 views
Skip to first unread message

Matan Tennenhaus

unread,
Mar 25, 2024, 10:05:31 AMMar 25
to wiredtiger-users
Hi
I observe a scenario where a row leaf page is reconciled, and updates are selected in the process, but in later reconciliations I can see in a page the old value for a previously reconciled key, with the full previous update list, with the previously selected update marked with WT_UPDATE_DS.
my question is where or in which scenarios the old value is kept and the update list is not discarded in reconciliation? 
for example, I see that in the __wt_rec_row_leaf function the the updated is selected, packed to a cell and appended for writing to disk. Where is it being marked for ignore and to restore the old value and the full old update list? 
Many thanks in advance,
Matan.

Chenhao Qu

unread,
Mar 25, 2024, 9:01:50 PMMar 25
to wiredtig...@googlegroups.com
Hi Matan,

Sorry for the late reply. There are two possibilities:

* The first reconciliation is done by checkpoint. Checkpoint only writes the reconciled data to disk but doesn’t change anything in memory. The in-memory page will still be using the old disk image with all the update chains.
* The first reconciliation failed in eviction. In this case, you may see some of the updates being marked as WT_UPDATE_DS because we tried to reconcile this key before.

Hopefully this answers your question

Chenhao

--
You received this message because you are subscribed to the Google Groups "wiredtiger-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wiredtiger-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/wiredtiger-users/1874e587-4811-4003-a934-ae0d6a58aa90n%40googlegroups.com.

Reply all
Reply to author
Forward
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
0 new messages