Re: ResourceOwner refactoring
От | Heikki Linnakangas |
---|---|
Тема | Re: ResourceOwner refactoring |
Дата | |
Msg-id | aabd6a93-c110-4ba2-fa2d-d6f7c44e49dd@iki.fi обсуждение исходный текст |
Ответ на | Re: ResourceOwner refactoring (Michael Paquier <michael@paquier.xyz>) |
Ответы |
Re: ResourceOwner refactoring
|
Список | pgsql-hackers |
On 18/11/2020 10:06, Michael Paquier wrote: > On Tue, Nov 17, 2020 at 04:21:29PM +0200, Heikki Linnakangas wrote: >> Attached patch refactors the ResourceOwner internals to do that. > > + * Size of the small fixed-size array to hold most-recently remembered resources. > */ > -#define RESARRAY_INIT_SIZE 16 > +#define RESOWNER_ARRAY_SIZE 8 > Why did you choose this size for the initial array? Just a guess. The old init size was 16 Datums. The entries in the new array are twice as large, Datum+pointer. The "RESOWNER_STATS" #ifdef blocks can be enabled to check how many lookups fit in the array. With pgbench, RESOWNER_ARRAY_SIZE 8: RESOWNER STATS: lookups: array 235, hash 32 If RESOWNER_ARRAY_STATS is increased to 16, all the lookups fit in the array. But I haven't done any benchmarking to see which is faster. BTW, I think there would be an easy win in the hashing codepath, by changing to a cheaper hash function. Currently, with or without this patch, we use hash_any(). Changing that to murmurhash32() or something similar would be a drop-in replacement. - Heikki
В списке pgsql-hackers по дате отправления: