mirror of
https://github.com/postgres/postgres.git
synced 2025-10-27 00:12:01 +03:00
Change hash index creation so that rather than always establishing exactly
two buckets at the start, we create a number of buckets appropriate for the estimated size of the table. This avoids a lot of expensive bucket-split actions during initial index build on an already-populated table. This is one of the two core ideas of Tom Raney and Shreya Bhargava's patch to reduce hash index build time. I'm committing it separately to make it easier for people to test the effects of this separately from the effects of their other core idea (pre-sorting the index entries by bucket number).
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/access/hash.h,v 1.84 2008/01/01 19:45:56 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/include/access/hash.h,v 1.85 2008/03/15 20:46:31 tgl Exp $
|
||||
*
|
||||
* NOTES
|
||||
* modeled after Margo Seltzer's hash implementation for unix.
|
||||
@@ -298,7 +298,7 @@ extern void _hash_dropbuf(Relation rel, Buffer buf);
|
||||
extern void _hash_wrtbuf(Relation rel, Buffer buf);
|
||||
extern void _hash_chgbufaccess(Relation rel, Buffer buf, int from_access,
|
||||
int to_access);
|
||||
extern void _hash_metapinit(Relation rel);
|
||||
extern void _hash_metapinit(Relation rel, double num_tuples);
|
||||
extern void _hash_pageinit(Page page, Size size);
|
||||
extern void _hash_expandtable(Relation rel, Buffer metabuf);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user