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

Reply via email to