From 3e854d2ff1a6ee1d9e0e01319ef41eb466f06c23 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Fri, 3 Apr 2026 20:26:18 +0300 Subject: [PATCH] Remove 10% safety margin from lock manager hash table estimates As the comment says, the hash table sizes are just estimates, but that doesn't mean we need a "safety margin" here. hash_estimate_size() estimates the needed size in bytes pretty accurately for the given number of elements, so if we wanted room for more elements in the table, we should just use larger max_table_size in the hash_estimate_size() call. Reviewed-by: Ashutosh Bapat Reviewed-by: Matthias van de Meent Discussion: https://www.postgresql.org/message-id/e07be2ba-856b-4ff5-8313-8b58b6b4e4d0@iki.fi --- src/backend/storage/lmgr/lock.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c index 234643e4dd7..2159de9015a 100644 --- a/src/backend/storage/lmgr/lock.c +++ b/src/backend/storage/lmgr/lock.c @@ -3778,11 +3778,6 @@ LockManagerShmemSize(void) max_table_size *= 2; size = add_size(size, hash_estimate_size(max_table_size, sizeof(PROCLOCK))); - /* - * Since NLOCKENTS is only an estimate, add 10% safety margin. - */ - size = add_size(size, size / 10); - return size; }