With a pg_stat_statements.max of 1,000, on my system with the patch applied the additional amount of shared memory required is only 192KiB. That compares with about 1.17MiB for the same setting in master's version of pg_stat_statements. Surely with this huge reduction, we should revisit that default - I think that a default setting of 5,000 for pg_stat_statements.max makes more sense.
entry_dealloc() requires an exclusive lock, locking all queries out of simply recording their costs. With a lot of cache pressure this could be really expensive. In my opinion that risk alone justifies the change. Without adding another GUC, we might even go so far as to have a mechanism like checkpoint_warning warn that entry_dealloc() calls occur too frequently... -- Peter Geoghegan -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers