Re: Hash Indexes
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Jeff Janes <jeff.janes@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2016-09-16T18:38:08Z
Lists: pgsql-hackers
On 2016-09-16 09:12:22 -0700, Jeff Janes wrote: > On Thu, Sep 15, 2016 at 7:23 AM, Andres Freund <andres@anarazel.de> wrote: > > One earlier question about this is whether that is actually a worthwhile > > goal. Are the speed and space benefits big enough in the general case? > > Could those benefits not be achieved in a more maintainable manner by > > adding a layer that uses a btree over hash(columns), and adds > > appropriate rechecks after heap scans? > > > > Note that I'm not saying that hash indexes are not worthwhile, I'm just > > doubtful that question has been explored sufficiently. > I think that exploring it well requires good code. If the code is good, > why not commit it? Because getting there requires a lot of effort, debugging it afterwards would take effort, and maintaining it would also takes a fair amount? Adding code isn't free. I'm rather unenthused about having a hash index implementation that's mildly better in some corner cases, but otherwise doesn't have much benefit. That'll mean we'll have to step up our user education a lot, and we'll have to maintain something for little benefit. Andres
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