mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
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
This commit is contained in:
@@ -68,7 +68,6 @@ typedef struct HASHCTL
|
||||
long ssize; /* segment size */
|
||||
long dsize; /* (initial) directory size */
|
||||
long max_dsize; /* limit to dsize if dir size is limited */
|
||||
long ffactor; /* fill factor */
|
||||
Size keysize; /* hash key length in bytes */
|
||||
Size entrysize; /* total user element size in bytes */
|
||||
HashValueFunc hash; /* hash function */
|
||||
@@ -83,7 +82,6 @@ typedef struct HASHCTL
|
||||
#define HASH_PARTITION 0x0001 /* Hashtable is used w/partitioned locking */
|
||||
#define HASH_SEGMENT 0x0002 /* Set segment size */
|
||||
#define HASH_DIRSIZE 0x0004 /* Set directory size (initial and max) */
|
||||
#define HASH_FFACTOR 0x0008 /* Set fill factor */
|
||||
#define HASH_ELEM 0x0010 /* Set keysize and entrysize */
|
||||
#define HASH_BLOBS 0x0020 /* Select support functions for binary keys */
|
||||
#define HASH_FUNCTION 0x0040 /* Set user defined hash function */
|
||||
|
||||
Reference in New Issue
Block a user