Re: RFC: Improve CPU cache locality of syscache searches - Mailing list pgsql-hackers

From Andres Freund
Subject Re: RFC: Improve CPU cache locality of syscache searches
Date
Msg-id 20210806034945.fbfrcqtjffzfuo7b@alap3.anarazel.de
Whole thread Raw
In response to Re: RFC: Improve CPU cache locality of syscache searches  (Yura Sokolov <y.sokolov@postgrespro.ru>)
Responses Re: RFC: Improve CPU cache locality of syscache searches  (Yura Sokolov <y.sokolov@postgrespro.ru>)
List pgsql-hackers
Hi,

On 2021-08-06 06:43:55 +0300, Yura Sokolov wrote:
> Why don't use simplehash or something like that? Open-addressing schemes
> show superior cache locality.

I thought about that as well - but it doesn't really resolve the question of
what we want to store in-line in the hashtable and what not. We can't store
the tuples themselves in the hashtable for a myriad of reasons (need pointer
stability, they're variably sized, way too large to move around frequently).


> Well, simplehash entry will be 24 bytes this way. If simplehash template
> supports external key/element storage, then it could be shrunk to 16 bytes,
> and syscache entries will not need dlist_node. (But it doesn't at the
> moment).

I think storing keys outside of the hashtable entry defeats the purpose of the
open addressing, given that they are always checked and that our conflict
ratio should be fairly low.

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Yura Sokolov
Date:
Subject: Re: RFC: Improve CPU cache locality of syscache searches
Next
From: Noah Misch
Date:
Subject: Re: Commitfest overflow