More reconciliation question

26 views
Skip to first unread message

Matan Tennenhaus

unread,
Mar 27, 2024, 2:57:15 AMMar 27
to wiredtiger-users
Thanks for the replay in the previous thread. Google forum does not let post more questions there unfortunately.. Some follow-up things to clarify: 
1) In a reconciliation done by checkpoint, will the selected updated be marked with WT_UPDATE_DS for following reconciliations? or only if the reconciliation failed in eviction?
2) If a page reconciliation is done by checkpoint, and the page stays in memory, can it be reconciled again? or for example if evictions for it is triggered, will it be reconciled twice? or it will be marked as previously reconciled and will be skipped?
3) I see that in the second reconciliation, the update that is marked with WT_UPDATE_DS  is not picked if there is a newer update. Is this a bug? ( I am using revision 7.0.2).
3) The motivation behind my questions is that I don't want the same page be reconciled twice (or at least to know if it happened), is there a point in the flow where I can conclude if a reconciled page be reconciled again or not? (Assuming the first reconciliation was successful).

Much appreciate,
Matan

Chenhao Qu

unread,
Mar 27, 2024, 4:53:23 AMMar 27
to wiredtig...@googlegroups.com
Hi Matan,

1) In a reconciliation done by checkpoint, will the selected updated be marked with WT_UPDATE_DS for following reconciliations? or only if the reconciliation failed in eviction?

Yes, it does mark the update with WT_UPDATE_DS. This is to prevent the following reconciliation to select any update that is older than that to undone the previous work.

2) If a page reconciliation is done by checkpoint, and the page stays in memory, can it be reconciled again? or for example if evictions for it is triggered, will it be reconciled twice? or it will be marked as previously reconciled and will be skipped?

It depends whether there are more updates on the page after the checkpoint. Checkpoint will mark the page clean so the following eviction can remove it from memory without doing any reconciliation. But there is any update in between, the page will become dirty and eviction needs to reconcile it again.

 3) I see that in the second reconciliation, the update that is marked with WT_UPDATE_DS  is not picked if there is a newer update. Is this a bug? ( I am using revision 7.0.2).

It is expected if it selects a newer update. The new reconciliation has a newer snapshot so it can see more data and select the newer update.

3) The motivation behind my questions is that I don't want the same page be reconciled twice (or at least to know if it happened), is there a point in the flow where I can conclude if a reconciled page be reconciled again or not? (Assuming the first reconciliation was successful).

I don’t know why you don’t want the page to be reconciled again. On each page there is a write generation number. It is a monotonically increasing number we write to disk on each page. If you can remember that, you can tell if the page is rewritten again.

Thanks,
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/d926ef8e-3910-4bd5-bfb2-b9c57e9d06b5n%40googlegroups.com.

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