On Jun 16, 2009, at 4:42 PM, Smit Shah wrote:
On 6/16/09, Felix Blyakher <felixb@xxxxxxx> wrote:
On Jun 16, 2009, at 12:28 PM, Smit Shah wrote:
but the write performance is going to suffer.
It's not clear why it should. Not doing preallocation doesn't
mean that there is no inode updates with every write. Why
would extent conversion be more expensive that creating the
space (extent) and updating the inode size for every write?
It'd interesting to reproduce your results. Any details on
your tests and the iometer usage?
Since fallocate uses the RESVSP cmd for xfs. And as given given for
RESVSP in man page for xfsctl
If the XFS filesystem is configured to flag unwritten file extents,
Good point, we should update the man page, there is no 'if'
performance will be negatively affected when writing to preallocated
space, since extra filesystem transactions are required to convert
extent flags on the range of the file written.
Yes, absolutely, there is overhead to handle unwritten
extents, no doubt. My remark was wrt comparison between
not doing preallocation at all and preallocation with
unwritten extents. Both cases would incur the metadata
updates with every write. And I doubt that write performance
would suffer more in the preallocation case.
Though, if you prefer to trade extra time spent at every
write to setup time, you can/should manually fill the
file with zeros.