Merge init and max size options on shmem hash tables

Replace the separate init and max size options with a single size
option. We didn't make much use of the feature, all callers except the
ones in wait_event.c already used the same size for both, and the hash
tables in wait_event.c are small so there's little harm in just
allocating them to the max size.

The only reason why you might want to not reserve the max size upfront
is to make the memory available for other hash tables to grow beyond
their max size. Letting hash tables grow much beyond their max size is
bad for performance, however, because we cannot resize the directory,
and we never had very much "wiggle room" to grow to anyway so you
couldn't really rely on it. We recently marked the LOCK and PROCLOCK
tables with HAS_FIXED_SIZE, so there's nothing left in core that would
benefit from more unallocated shared memory.

Reviewed-by: Tomas Vondra <[email protected]>
Discussion: 
https://www.postgresql.org/message-id/[email protected]

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/9ebe1c4f2c7cecd0fc2d02afd87a74f6ba44569e

Modified Files
--------------
contrib/pg_stat_statements/pg_stat_statements.c |  2 +-
src/backend/storage/buffer/buf_table.c          |  2 +-
src/backend/storage/ipc/shmem.c                 | 16 ++++------------
src/backend/storage/lmgr/lock.c                 |  2 --
src/backend/storage/lmgr/predicate.c            |  3 ---
src/backend/utils/activity/wait_event.c         | 22 +++++++++-------------
src/include/storage/shmem.h                     |  2 +-
7 files changed, 16 insertions(+), 33 deletions(-)

Reply via email to