Remove large fill factor support from dynahash.c.
authorThomas Munro <tmunro@postgresql.org>
Fri, 18 Sep 2020 23:28:34 +0000 (11:28 +1200)
committerThomas Munro <tmunro@postgresql.org>
Fri, 18 Sep 2020 23:40:39 +0000 (11:40 +1200)
commitbe0a6666656ec3f68eb7d8e7abab5139fcd47012
tree35ffd7aa1145d6b33d51c50d227a20ab410cdf77
parent06a7c3154f5bfad65549810cc84f0e3a77b408bf
Remove large fill factor support from dynahash.c.

Since ancient times we have had support for a fill factor (maximum load
factor) to be set for a dynahash hash table, but:

1.  It was an integer, whereas for in-memory hash tables interesting
load factor targets are probably somewhere near the 0.75-1.0 range.

2.  It was implemented in a way that performed an expensive division
operation that regularly showed up in profiles.

3.  We are not aware of anyone ever having used a non-default value.

Therefore, remove support, effectively fixing it at 1.

Author: Jakub Wartak <Jakub.Wartak@tomtom.com>
Reviewed-by: Alvaro Herrera <alvherre@2ndquadrant.com>
Reviewed-by: Tomas Vondra <tomas.vondra@2ndquadrant.com>
Reviewed-by: Thomas Munro <thomas.munro@gmail.com>
Reviewed-by: David Rowley <dgrowleyml@gmail.com>
Discussion: https://postgr.es/m/VI1PR0701MB696044FC35013A96FECC7AC8F62D0%40VI1PR0701MB6960.eurprd07.prod.outlook.com
src/backend/utils/hash/dynahash.c
src/include/utils/hsearch.h