Обсуждение: pgsql/src backend/access/hash/hash.c backend/a ...

Поиск
Список
Период
Сортировка

pgsql/src backend/access/hash/hash.c backend/a ...

От
momjian@postgresql.org (Bruce Momjian - CVS)
Дата:
CVSROOT:    /cvsroot
Module name:    pgsql
Changes by:    momjian@postgresql.org    02/03/06 15:49:46

Modified files:
    src/backend/access/hash: hash.c hashfunc.c hashinsert.c
                             hashovfl.c hashpage.c hashutil.c
    src/backend/executor: nodeHash.c
    src/backend/utils/cache: catcache.c
    src/include/access: hash.h
    src/include/utils: catcache.h

Log message:
    I've attached a patch which implements Bob Jenkin's hash function for
    PostgreSQL. This hash function replaces the one used by hash indexes and
    the catalog cache. Hash joins use a different, relatively poor-quality
    hash function, but I'll fix that later.

    As suggested by Tom Lane, this patch also changes the size of the fixed
    hash table used by the catalog cache to be a power-of-2 (instead of a
    prime: I chose 256 instead of 257). This allows the catcache to lookup
    hash buckets using a simple bitmask. This should improve the performance
    of the catalog cache slightly, since the previous method (modulo a
    prime) was slow.

    In my tests, this improves the performance of hash indexes by between 4%
    and 8%; the performance when using btree indexes or seqscans is
    basically unchanged.

    Neil Conway <neilconway@rogers.com>