postgresql/src/backend
Thomas Munro a40cff8956 Move RecoveryLockList into a hash table.
Standbys frequently need to release all locks held by a given xid.
Instead of searching one big list linearly, let's create one list
per xid and put them in a hash table, so we can find what we need
in O(1) time.

Earlier analysis and a prototype were done by David Rowley, though
this isn't his patch.

Back-patch all the way.

Author: Thomas Munro
Diagnosed-by: David Rowley, Andres Freund
Reviewed-by: Andres Freund, Tom Lane, Robert Haas
Discussion: https://postgr.es/m/CAEepm%3D1mL0KiQ2KJ4yuPpLGX94a4Ns_W6TL4EGRouxWibu56pA%40mail.gmail.com
Discussion: https://postgr.es/m/CAKJS1f9vJ841HY%3DwonnLVbfkTWGYWdPN72VMxnArcGCjF3SywA%40mail.gmail.com
2018-06-26 18:45:45 +12:00
..
access Address set of issues with errno handling 2018-06-25 11:19:05 +09:00
bootstrap Message wording and pluralization improvements 2018-05-17 23:05:27 -04:00
catalog Allow for pg_upgrade of attributes with missing values 2018-06-22 08:42:36 -04:00
commands When index recurses to a partition, map columns numbers 2018-06-22 16:45:48 -04:00
executor Fix some ill-chosen names for globally-visible partition support functions. 2018-06-13 13:18:02 -04:00
foreign Remove bogus "extern" annotations on function definitions. 2018-02-19 12:07:44 -05:00
jit Fix typo in JIT README. 2018-06-09 09:33:53 -07:00
lib Add missing files to src/backend/lib/README. 2018-05-22 13:25:28 +03:00
libpq Add missing serial commas 2018-06-07 23:37:09 -04:00
main Update copyright for 2018 2018-01-02 23:30:12 -05:00
nodes Assorted cosmetic cleanup of run-time-partition-pruning code. 2018-06-10 18:24:34 -04:00
optimizer Avoid generating bogus paths with partitionwise aggregate. 2018-06-22 09:20:19 -04:00
parser Consider syntactic form when disambiguating function vs column reference. 2018-06-18 11:39:33 -04:00
partitioning Consistently use the term 'partitioned rel' in partprune comments 2018-06-20 11:43:01 -04:00
po Translation updates 2018-06-25 12:37:18 +02:00
port Remove investigative code for can't-reattach-to-shared-memory errors. 2018-05-01 13:06:31 -04:00
postmaster Further improve code for probing the availability of ARM CRC instructions. 2018-05-03 11:32:57 -04:00
regex Clean up warnings from -Wimplicit-fallthrough. 2018-05-01 19:35:08 -04:00
replication Update obsolete comments 2018-06-25 15:45:48 -04:00
rewrite Simplify view-expansion code in rewriteHandler.c. 2018-04-14 21:01:03 -04:00
snowball Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
statistics Fix bogus code for extracting extended-statistics data from syscache. 2018-05-02 12:23:00 -04:00
storage Move RecoveryLockList into a hash table. 2018-06-26 18:45:45 +12:00
tcop Don't allow partitioned index on foreign-table partitions 2018-05-14 13:23:07 -04:00
tsearch Post-feature-freeze pgindent run. 2018-04-26 14:47:16 -04:00
utils Allow for pg_upgrade of attributes with missing values 2018-06-22 08:42:36 -04:00
.gitignore
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
Makefile Rearrange makefile rules for running Gen_fmgrtab.pl. 2018-05-03 17:54:18 -04:00
nls.mk Translation updates 2018-06-25 12:37:18 +02:00