Thread: New hooks for snapshot and transaction ID acquisition from external source
New hooks for snapshot and transaction ID acquisition from external source
From
Michael Paquier
Date:
Hi,<br /><br />What do you think about adding hooks for transaction ID and snapshot acquisition? Those hooks could be locatedin AssignTransactionId:xact.c for transaction ID and GetTransactionSnapshot:snapmgr.c for snapshots.<br /> This isuseful for multi-master applications that use external tools to feed with unique transaction IDs and global snapshots allthe nodes of a cluster in order to maintain global data consistency and visibility, one of the examples being clusterapplications like Postgres-XC.<br /><br clear="all" />Opinions?<br />-- <br />Michael<br />
Michael Paquier <michael.paquier@gmail.com> writes: > What do you think about adding hooks for transaction ID and snapshot > acquisition? Not much. Those places are not only hot spots but remarkably delicate. It's hard to see much that a plugin could do there that wouldn't be pretty deleterious to both performance and reliability. As an example, throwing an error in either place is dangerous, and taking any locks they don't already take even more so. Now of course, if your plugin breaks your database that's maybe not my problem, but I'm concerned that even just adding a test to see if there's a hook to call could result in measurable slowdown. regards, tom lane