Re: Add progressive backoff to XactLockTableWait functions
Xuneng Zhou <xunengzhou@gmail.com>
From: Xuneng Zhou <xunengzhou@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Fujii Masao <masao.fujii@oss.nttdata.com>, Andres Freund <andres@anarazel.de>
Cc: Kevin K Biju <kevinkbiju@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2025-09-01T11:31:29Z
Lists: pgsql-hackers
Attachments
- v11-0001-Optimize-transaction-waiting-during-logical-deco.patch (application/octet-stream) patch v11-0001
Hi, > Some changes in v10: > > 1) XidWaitHashLock is used for all operations on XidWaitHash though > might be unnecessary for some cases. > 2) Field pg_atomic_uint32 waiter_count was removed from the > XidWaitEntry. The start process now takes charge of cleaning up the > XidWaitHash entry after waking up processes. > 3) pg_atomic_uint32 xidWaiterNum is added to avoid unnecessary lock > acquire & release and htab look-up while there's no xid waiting. > > Hope this could eliminate some subtleties. > > Exponential backoff in earlier patches is simple and effective for > alleviating cpu overhead in extended waiting; however it could also > bring unwanted latency for more sensitive use cases like logical > walsender on cascading standbys. Unfortunately, I am unable to come up > with a solution that is correct, effective and simple in all cases. > v11 removed this erroneous optimization: 3) pg_atomic_uint32 xidWaiterNum is added to avoid unnecessary lock > acquire & release and htab look-up while there's no xid waiting. Best, Xuneng
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Allow logical decoding on standbys
- 0fdab27ad68a 16.0 cited