Re: bus error when disk is full, with mmap & sparse file

Richard Laager <[email protected]> Thu, 02 Feb 2012 01:11:05 -0600
Newsgroups gmane.comp.db.rrdtool.devel
Message-ID <1328166665.3572.15.camel__45192.1363398016$1328166692$gmane$org@watermelon.coderich.net>
On Thu, 2012-02-02 at 07:22 +0100, Tobias Oetiker wrote:
> * with the patch, we get performance and a sort of thin provisioning (files
>   with holes).

fallocate() does not create holes. From fallocate(2), "After a
successful call, subsequent writes into this range are guaranteed not to
fail because of lack of disk space."

fallocate() is Linux-specific. The portable equivalent is
posix_fallocate(). On Linux, that does much the same thing as with this
patch; it tries fallocate() first and then falls back to zero-filling.
I'm not sure if that zero filling code performs better or worse than
your mmap() code.

-- 
Richard