Re: Write Ahead Logging for Hash Indexes
Stephen Frost <sfrost@snowman.net>
From: Stephen Frost <sfrost@snowman.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, Amit Kapila <amit.kapila16@gmail.com>, Jesper Pedersen <jesper.pedersen@redhat.com>, Jeff Janes <jeff.janes@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-03-15T15:06:41Z
Lists: pgsql-hackers
Tom, * Tom Lane (tgl@sss.pgh.pa.us) wrote: > Robert Haas <robertmhaas@gmail.com> writes: > > That theory seems inconsistent with how mdextend() works. My > > understanding is that we zero-fill the new blocks before populating > > them with actual data precisely to avoid running out of disk space due > > to deferred allocation at the OS level. If we don't care about > > failures due to deferred allocation at the OS level, we can rip that > > logic out and improve the performance of relation extension > > considerably. > > See my reply to Stephen. The fact that this fails to guarantee no > ENOSPC on COW filesystems doesn't mean that it's not worth doing on > other filesystems. We're reducing the risk, not eliminating it, > but reducing risk is still a worthwhile activity. Considering how much work we end up doing to extend a relation and how we know that's been a hotspot, I'm not entirely sure I agree that avoiding the relativly infrequent out-of-disk-space concern when extending the relation (instead of letting it happen when we go to actually write data into the page) really is a good trade-off to make. 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