As a followup, I see that there is an optional posix_fallocate() 
function defined in the POSIX standard 
(http://www.opengroup.org/onlinepubs/009695399/functions/posix_fallocate.html)
With some Linux-related discussion at http://lwn.net/Articles/226710/.

Recent Linux (2.6.23) has implemented this function and some of its 
filesystems support it (XFS and ext4).  I found an rsync list posting 
here http://www.mail-archive.com/[EMAIL PROTECTED]/msg20875.html 
which shows that for the XFS filesystem, there is substantial 
advantage (in terms of fragmentation) to using it.

Assuming that this functionality is not already in ZFS, ZFS would 
implement it by pre-allocating all of the requested filesystem blocks, 
but marking them in such a way that their content is unassigned and 
therefore the expensive copy-on-write semantics are avoided for the 
first update.  The allocation of the blocks should optimize future 
read or append access.  The system call permanently assigns these 
blocks to the file even if they are not yet used.

Bob
======================================
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to