Re: possible patch to increase number of hash overflow pages? - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: possible patch to increase number of hash overflow pages?
Date
Msg-id 200106192346.f5JNk2C21641@candle.pha.pa.us
Whole thread Raw
In response to Re: possible patch to increase number of hash overflow pages?  (Stephen Ramsey <sramsey@internap.com>)
Responses Re: possible patch to increase number of hash overflow pages?  (Stephen Ramsey <sramsey@internap.com>)
List pgsql-patches
> It looks (from the hash algorithm code) as if the system is possibly
> needing more splitpoints than can be accomodated by the HashMetaPageData
> structure, rather than running out of overflow pages, because the error
> message that I'm getting is when the "splitnum" variable is greater than
> NCACHED, the latter being the array bound for the hashm_spares[] element
> of the HashMetaPageData structure.  From src/backend/access/hashovfl.c:
>
> #define OVMSG   "HASH: Out of overflow pages.  Out of luck.\n"
>
>         if (offset > SPLITMASK)
>         {
>                 if (++splitnum >= NCACHED)
>                         elog(ERROR, OVMSG);
>                 metap->OVFL_POINT = splitnum;
>                 metap->SPARES[splitnum] = metap->SPARES[splitnum - 1];
>                 metap->SPARES[splitnum - 1]--;
>                 offset = 0;
>         }
>
> So that's why I bumped the number of bits (in the OverflowPageAddress
> type) assigned to keep track of splitpoints to 8 bits.

If you want to work on the hash stuff, let us know.  We are looking for
someone to do performance testing and debugging on hash indexes.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: use GUC for cmdline
Next
From: Bruce Momjian
Date:
Subject: Re: [PATCH] Contrib C source for casting MONEY to INT[248] and FLOAT[48]