Re: Hash Indexes
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: Oskari Saarenmaa <os@ohmu.fi>, Robert Haas <robertmhaas@gmail.com>,
Bruce Momjian <bruce@momjian.us>, Jeff Janes <jeff.janes@gmail.com>,
Amit Kapila <amit.kapila16@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2016-09-22T02:23:27Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes: > Sure. But that can be addressed, with a lot less effort than fixing and > maintaining the hash indexes, by adding the ability to do that > transparently using btree indexes + a recheck internally. How that > compares efficiency-wise is unclear as of now. But I do think it's > something we should measure before committing the new code. TBH, I think we should reject that argument out of hand. If someone wants to spend time developing a hash-wrapper-around-btree AM, they're welcome to do so. But to kick the hash AM as such to the curb is to say "sorry, there will never be O(1) index lookups in Postgres". It's certainly conceivable that it's impossible to get decent performance out of hash indexes, but I do not agree that we should simply stop trying. Even if I granted the unproven premise that use-a-btree-on-hash-codes will always be superior, I don't see how it follows that we should refuse to commit work that's already been done. Is committing it somehow going to prevent work on the btree-wrapper approach? regards, tom lane
Commits
-
Remove _hash_wrtbuf() in favor of calling MarkBufferDirty().
- 25216c989384 10.0 landed
-
Fix race introduced by 6d46f4783efe457f74816a75173eb23ed8930020.
- 2f4193c3509a 10.0 cited
-
Improve hash index bucket split behavior.
- 6d46f4783efe 10.0 landed
-
Reduce pinning and buffer content locking for btree scans.
- 2ed5b87f96d4 9.5.0 cited