> From: Thomas Burgess [mailto:wonsl...@gmail.com]
> 
> I might be somewhat confused to how the ZIL
> works but i thought the point of the ZIL was to "pretend" a write
> actually happened when it may not have actually been flushed to disk
> yet...

No.  How the ZIL works is like this:

Whenever a process issues a sync write, the process blocks until the OS
acknowledges the write has been committed to nonvolatile storage.  Assuming
you have a dedicated log device, the OS immediately commits this data to the
log device, and unblocks the process.  Then, the data is able to float
around in RAM with all the async write requests, getting optimized for disk
performance and so forth.  The OS might aggregate up to 30 secs of small
writes into a single larger sequential transaction for the primary storage
devices.  If there's an unfortunate event such as system crash during the
meantime, then upon the next bootup, the OS will notice data in the ZIL log,
which was intended for a TXG, which never made its way out to primary
storage.  Therefore, the OS replays the log, and commits those writes now.
All the async writes that were still in RAM were lost, but the sync writes
were not.

The dedicated log device helps sync writes approach the performance of async
writes.  Nothing beats the performance of async writes.

If you disable ZIL, then sync writes are handled the same as async writes.
Both in terms of performance, and risk.

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

Reply via email to