Re: Write Ahead Logging for Hash Indexes
Stephen Frost <sfrost@snowman.net>
From: Stephen Frost <sfrost@snowman.net>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>, Jesper Pedersen <jesper.pedersen@redhat.com>, Jeff Janes <jeff.janes@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-03-15T13:18:45Z
Lists: pgsql-hackers
Amit, * Amit Kapila (amit.kapila16@gmail.com) wrote: > On Wed, Mar 15, 2017 at 12:53 AM, Stephen Frost <sfrost@snowman.net> wrote: > > If that's the case then > > this does seem to at least be less of an issue, though I hope we put in > > appropriate comments about it. > > I think we have sufficient comments in code especially on top of > function _hash_alloc_buckets(). I don't see any comments regarding how we have to be sure to handle an out-of-space case properly in the middle of a file because we've made it sparse. I do see that mdwrite() should handle an out-of-disk-space case, though that just makes me wonder what's different here compared to normal relations that we don't have an issue with a sparse WAL'd hash index but we can't handle it if a normal relation is sparse. Additional comments here would be overkill if we think that the lower layers are already all set up to handle such a case properly and we don't have to do anything special, but I had understood that we didn't generally think that sparse files would just work. I'm certainly happy to be wrong there because, if that's the case, it'd be a great way to improve the problems we have returning large chunks of free space in the middle of a relation to the OS, but if there is a real concern here then we need to work out what it is and probably add comments or possibly add code to address whatever it is. Thanks! Stephen
Commits
-
Add a regression test for snapshot too old with hash indexes.
- 42bdaebf1618 10.0 landed
-
hash: Add write-ahead logging support.
- c11453ce0aea 10.0 landed
-
Improve coding in _hash_addovflpage.
- e898437460f5 10.0 cited
-
Remove _hash_wrtbuf() in favor of calling MarkBufferDirty().
- 25216c989384 10.0 cited
-
Improve hash index bucket split behavior.
- 6d46f4783efe 10.0 cited