Move "hot" members of PGPROC into a separate PGXACT array.

Robert Haas <rhaas@postgresql.org>

Commit: ed0b409d22346b1b027a4c2099ca66984d94b6dd
Author: Robert Haas <rhaas@postgresql.org>
Date: 2011-11-25T13:02:10Z
Releases: 9.2.0
Move "hot" members of PGPROC into a separate PGXACT array.

This speeds up snapshot-taking and reduces ProcArrayLock contention.
Also, the PGPROC (and PGXACT) structures used by two-phase commit are
now allocated as part of the main array, rather than in a separate
array, and we keep ProcArray sorted in pointer order.  These changes
are intended to minimize the number of cache lines that must be pulled
in to take a snapshot, and testing shows a substantial increase in
performance on both read and write workloads at high concurrencies.

Pavan Deolasee, Heikki Linnakangas, Robert Haas

Files