aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-01-09 07:30:49 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-01-09 07:30:49 +0000
commit69db0091639dceab3c94802a4c9c39a84e0f215d (patch)
tree01151520b955c60328a147fd55cc17a5528fb6f4 /src
parent352871c357502100585b4101087b7241465bb8e5 (diff)
downloadpostgresql-69db0091639dceab3c94802a4c9c39a84e0f215d.tar.gz
postgresql-69db0091639dceab3c94802a4c9c39a84e0f215d.zip
Add a citation to Seltzer and Yigit's Usenix '91 paper about hash table
management. The paper clearly describes many of the ideas embodied in our current hashing code, but as far as I could find out there is not a direct code heritage. (Mike Olsen recalls discussion of this paper at Postgres meetings but believes it "informed the Postgres implementation probably just at the design level". Margo herself says she wasn't involved with Postgres' hash code.) Credit where credit is due 'n all that, even if fifteen years after the fact.
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/hash/README11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/backend/access/hash/README b/src/backend/access/hash/README
index 3ff70cde3ce..719c6828464 100644
--- a/src/backend/access/hash/README
+++ b/src/backend/access/hash/README
@@ -1,6 +1,11 @@
-$PostgreSQL: pgsql/src/backend/access/hash/README,v 1.4 2003/11/29 19:51:40 pgsql Exp $
-
-This directory contains an implementation of hash indexing for Postgres.
+$PostgreSQL: pgsql/src/backend/access/hash/README,v 1.5 2007/01/09 07:30:49 tgl Exp $
+
+This directory contains an implementation of hash indexing for Postgres. Most
+of the core ideas are taken from Margo Seltzer and Ozan Yigit, A New Hashing
+Package for UNIX, Proceedings of the Winter USENIX Conference, January 1991.
+(Our in-memory hashtable implementation, src/backend/utils/hash/dynahash.c,
+also relies on some of the same concepts; it is derived from code written by
+Esmond Pitt and later improved by Margo among others.)
A hash index consists of two or more "buckets", into which tuples are
placed whenever their hash key maps to the bucket number. The