3 ms·
Nice job, eugene-khyst. Looks very comprehensive from an initial skim. I've worked on something in the same space, with a focus on reliable but flexible synchr
by brasetvik 3y ago
Nice job, eugene-khyst. Looks very comprehensive from an initial skim.
I've worked on something in the same space, with a focus on reliable but flexible synchronization to many consumers, where logical replication gets impractical.
I have a mind to do a proper writeup, but at least there is code at https://github.com/cognitedata/txid-syncing https://github.com/cognitedata/txid-syncing (MIT-licensed) and a presentation at https://vimeo.com/747697698 https://vimeo.com/747697698
The README mentions …
> A long-running transaction in the same database will effectively "pause" all event handlers.
… as the approach is based on the xmin-horizon.
My linked code works with involving the MVCC snapshot's xip_list as well, to avoid this gotcha.
Also, note that when doing a logical restore of a database, you're working with different physical txids, which complicates recovery. (So my approach relies on offsetting the txid and making sure the offset is properly maintained)
- eugene-khyst 3y agoThanks for sharing. > My linked code works with involving the MVCC snapshot's xip_list as well, to avoid this gotcha. I will definitely take a look. It would be great to fix this problem. This problem really concerns me, although in most cases it is not critical.