On Mon, 9 Nov 2009, Ilya wrote:

2. I came upon this statement in a forum post:

[i]"ZFS uses 128K data blocks by default whereas other filesystems typically use 4K or 8K blocks. This naturally reduces the potential for fragmentation by 32X over 4k blocks."[/i]

How is this true? I mean, if you have a 128k default block size and you store a 4k file within that block then you will have a ton of slack space to clear up.

Short files are given a short block. Files larger than 128K are diced into 128K blocks, but the last block may be shorter.

The fragmentation discussed is fragmentation at the file level.

3. Another statement from a post:

[i]"the seek time for single-user contiguous access is essentially zero since the seeks occur while the application is already busy processing other data. When mirror vdevs are used, any device in the mirror may be used to read the data."[/i]

All this is saying that is when you are reading off of one physical device you will already be seeking for the blocks that you need from the other device so the seek time will no longer be an issue right?

The seek time becomes less of an issue for sequential reads if blocks are read from different disks, and the reads are scheduled in advance. It still consumes drive IOPS if the disk needs to seek.

6. Could anyone clarify this post:

[i]"ZFS uses a copy-on-write model. Copy-on-write tends to cause fragmentation if portions of existing files are updated. If a large portion of a file is overwritten in a short period of time, the result should be reasonably fragment-free but if parts of the file are updated over a long period of time (like a database) then the file is certain to be fragmented. This is not such a big problem as it appears to be since such files were already typically accessed using random access."[/i]

The point here is that zfs buffers unwritten data in memory for up to 30 seconds. With a large amount of buffered data, zfs is able to write the data in a more sequential and better-optimized fashion, while wasting fewer IOPS. Databases usually use random I/O and synchronous writes, which tends to scramble the data layout on disk with a copy-on-write model. Zfs is not optimized for database performance. On the other hand, the copy-on-write model reduces the chance of database corruption if there is a power failure or system crash.

Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, 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