Re: Why hash OIDs? - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Why hash OIDs?
Date
Msg-id 19810.1535423204@sss.pgh.pa.us
Whole thread Raw
In response to Re: Why hash OIDs?  (Andres Freund <andres@anarazel.de>)
Responses Re: Why hash OIDs?
List pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> On 2018-08-28 13:50:43 +1200, Thomas Munro wrote:
>> What bad thing would happen if we used OIDs directly as hash values in
>> internal hash tables (that is, instead of uint32_hash() we'd use
>> uint32_identity(), or somehow optimise it away entirely, as you can
>> see in some C++ standard libraries for eg std::hash<int>)?

> Oids are very much not equally distributed, so in all likelihood you'd
> get cases very you currently have a reasonably well averaged out usage
> of the hashtable, not be that anymore.

Right.  In particular, most of our hash usages assume that all bits of
the hash value are equally "random", so that we can just mask off the
lowest N bits of the hash and not get values that are biased towards
particular hash buckets.  It's unlikely that raw OIDs would have that
property.

            regards, tom lane


pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Why hash OIDs?
Next
From: Michael Paquier
Date:
Subject: Re: Postmaster doesn't send SIGTERM to bgworker during fast shutdownwhen pmState == PM_STARTUP