On 06/14/10 12:29, Bob Friesenhahn wrote:
On Mon, 14 Jun 2010, Roy Sigurd Karlsbakk wrote:
It is good to keep in mind that only small writes go to the dedicated
slog. Large writes to to main store. A succession of that many small
writes (to fill RAM/2) is highly unlikely. Also, that the zil is not
read back unless the system is improperly shut down.
I thought all sync writes, meaning everything NFS and iSCSI, went
into the slog - IIRC the docs says so.
Check a month or two back in the archives for a post by Matt Ahrens.
It seems that larger writes (>32k?) are written directly to main
store. This is probably a change from the original zfs design.
Bob
If there's a slog then the data, regardless of size, gets written to the
slog.
If there's no slog and if the data size is greater than
zfs_immediate_write_sz/zvol_immediate_write_sz
(both default to 32K) then the data is written as a block into the pool
and the block pointer
written into the log record. This is the WR_INDIRECT write type.
So Matt and Roy are both correct.
But wait, there's more complexity!:
If logbias=throughput is set we always use WR_INDIRECT.
If we just wrote more than 1MB for a single zil commit and there's more
than 2MB waiting
then we start using the main pool.
Clear as mud? This is likely to change again...
Neil.
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss