On 6/12/20 2:41 PM, movead...@highgo.ca wrote:
Hello hackers,

Currently, I do some changes based on the last version:
1. Catch up to the current  commit (c2bd1fec32ab54).
2. Add regression and document.
3. Add support to switch from xid-base snapshot to csn-base snapshot,
and the same with standby side.

Some remarks on your patch:
1. The variable last_max_csn can be an atomic variable.
2. GenerateCSN() routine: in the case than csn < csnState->last_max_csn This is the case when someone changed the value of the system clock. I think it is needed to write a WARNING to the log file. (May be we can do synchronization with a time server. 3. That about global snapshot xmin? In the pgpro version of the patch we had GlobalSnapshotMapXmin() routine to maintain circular buffer of oldestXmins for several seconds in past. This buffer allows to shift oldestXmin in the past when backend is importing global transaction. Otherwise old versions of tuples that were needed for this transaction can be recycled by other processes (vacuum, HOT, etc). How do you implement protection from local pruning? I saw SNAP_DESYNC_COMPLAIN, but it is not used anywhere. 4. The current version of the patch is not applied clearly with current master.

--
regards,
Andrey Lepikhov
Postgres Professional


Reply via email to