RE: Hash index build performance tweak from sorting

Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com>

From: "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
To: "shiy.fnst@fujitsu.com" <shiy.fnst@fujitsu.com>, Simon Riggs <simon.riggs@enterprisedb.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Amit Kapila <amit.kapila16@gmail.com>
Date: 2022-07-22T03:46:35Z
Lists: pgsql-hackers
On Monday, May 30, 2022 4:13 PMshiy.fnst@fujitsu.com <shiy.fnst@fujitsu.com> wrote:
> 
> On Tue, May 10, 2022 5:43 PM Simon Riggs <simon.riggs@enterprisedb.com>
> wrote:
> >
> > On Sat, 30 Apr 2022 at 12:12, Amit Kapila <amit.kapila16@gmail.com>
> > wrote:
> > >
> > > Few comments on the patch:
> > > 1. I think it is better to use DatumGetUInt32 to fetch the hash key
> > > as the nearby code is using.
> > > 2. You may want to change the below comment in HSpool
> > > /*
> > > * We sort the hash keys based on the buckets they belong to. Below
> > masks
> > > * are used in _hash_hashkey2bucket to determine the bucket of given
> > hash
> > > * key.
> > > */
> >
> > Addressed in new patch, v2.
> >
> 
> I think your changes looks reasonable.

+1, the changes look good to me as well.

Best regards,
Hou zj


Commits

  1. Speedup hash index builds by skipping needless binary searches

  2. Improve speed of hash index build.

  3. Change hash indexes to store only the hash code rather than the whole indexed