-
- Downloads
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
Showing
- src/backend/access/transam/twophase.c 69 additions, 46 deletionssrc/backend/access/transam/twophase.c
- src/backend/access/transam/varsup.c 6 additions, 5 deletionssrc/backend/access/transam/varsup.c
- src/backend/access/transam/xact.c 2 additions, 2 deletionssrc/backend/access/transam/xact.c
- src/backend/commands/analyze.c 2 additions, 2 deletionssrc/backend/commands/analyze.c
- src/backend/commands/vacuum.c 2 additions, 2 deletionssrc/backend/commands/vacuum.c
- src/backend/postmaster/postmaster.c 3 additions, 0 deletionssrc/backend/postmaster/postmaster.c
- src/backend/replication/walsender.c 1 addition, 1 deletionsrc/backend/replication/walsender.c
- src/backend/storage/ipc/ipci.c 1 addition, 1 deletionsrc/backend/storage/ipc/ipci.c
- src/backend/storage/ipc/procarray.c 171 additions, 105 deletionssrc/backend/storage/ipc/procarray.c
- src/backend/storage/lmgr/deadlock.c 3 additions, 1 deletionsrc/backend/storage/lmgr/deadlock.c
- src/backend/storage/lmgr/lock.c 2 additions, 1 deletionsrc/backend/storage/lmgr/lock.c
- src/backend/storage/lmgr/proc.c 62 additions, 25 deletionssrc/backend/storage/lmgr/proc.c
- src/backend/utils/time/snapmgr.c 1 addition, 1 deletionsrc/backend/utils/time/snapmgr.c
- src/include/storage/proc.h 31 additions, 16 deletionssrc/include/storage/proc.h
Loading
Please register or sign in to comment