On Wed, Mar 15, 2017 at 11:02 AM, 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.
Well, then it would presumably be worth reducing for hash indexes, too.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company