Richard Elling wrote:

Tristan Ball wrote:
Also - Am I right in thinking that if a 4K write is made to a filesystem block with a recordsize of 8K, then the original block is read (assuming it's not in the ARC), before the new block is written elsewhere (the "copy", from copy on write)? This would be one of the reasons that aligning application IO size and filesystem record sizes is a good thing, because where such IO is aligned, you remove the need for that original read?

No. Think of recordsize as a limit. As long as the recordsize >= 4 KB, a 4KB file will only use one, 4KB record.
-- richard

I didn't read Tristan's question as refering to a 4KB file.

If a file with an 8KB recordsize already has one or more 8KB records, then a single 4KB non-synchronous write to a record not already in the ARC will require a read as part of the copy on write operation.

Howver, I'm assuming that mutiple synchronous sequential writes to, say, an Oracle redo log, which are first committed to the ZIL, will generally coalesce before the file's records are COW-ed, thus avoiding reads for all but the last record (assuming it's not aligned or cached).

But I'm always open to having my assumptions verified :)

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

Reply via email to