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(-)
