Used optimized linear search in more code paths
Michael Paquier <michael@paquier.xyz>
Used optimized linear search in more code paths This commit updates two code paths to use pg_lfind32() introduced by b6ef167 with TransactionId arrays: - At the end of TransactionIdIsInProgress(), when checking for the case of still running but overflowed subxids. - XidIsConcurrent(), when checking for a serializable conflict. These cases are less impactful than 37a6e5d, but a bit of micro-benchmarking of this API shows that linear search speeds up by ~20% depending on the number of items involved (x86_64 and amd64 looked at here). Author: Nathan Bossart Reviewed-by: Richard Guo, Michael Paquier Discussion: https://postgr.es/m/20220901185153.GA783106@nathanxps13
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/storage/ipc/procarray.c | modified | +4 −8 |
| src/backend/storage/lmgr/predicate.c | modified | +2 −8 |
Discussion
- make additional use of optimized linear search routines 8 messages · 2022-09-01 → 2022-09-22