> From: Kevin Walker [mailto:indigoskywal...@gmail.com]
> 
> You do seem to misunderstand ZIL.

Wrong.


> ZIL is quite simply write cache 

ZIL is not simply write cache, but it enables certain types of operations to
use write cache which otherwise would have been ineligible.

The Intent Log is where ZFS immediately writes sync-write requests, so it
can unblock the process which called write().  Once the data has been
committed to nonvolatile ZIL storage, the process can continue processing,
and ZFS can treat the write requests as async writes.  Which means, after
ZFS has written the ZIL, then the data is able to stay a while in the RAM
write buffer along with all the async writes.  Which means ZFS is able to
aggregate and optimize all the writes for best performance.

This means ZIL is highly sensitive to access times.  (seek + latency)


> using a short stroked rotating drive is
> never going to provide a performance increase that is worth talking about

If you don't add a dedicated log device, then the ZIL utilizes blocks from
the main storage pool, and all sync writes suddenly get higher priority than
all the queued reads and async writes.  If you have a busy storage pool,
your sync writes might see something like 20ms access times (seek + latency)
before they can hit nonvolatile storage, and every time this happens, some
other operation gets delayed.

If you add a spindle drive dedicated log device, then that drive is always
idle except when writing ZIL for sync writes, and also, the head will barely
move over the platter because all the ZIL blocks will be clustered tightly
together.  So the ZIL might require typically 2ms or 3ms access times
(negligible seek or 1ms seek + 2ms latency), which is an order of magnitude
better than before.  Plus the sync writes in this case don't take away
performance from the main pool reads & writes.

If you replace your spindle drive with a SSD, then you get another order of
magnitude smaller access time.  (Tens of thousands of IOPS effectively
compares to <<1ms access time per OP)

If you disable your ZIL completely, then you get another order of magnitude
smaller access time.  (Some ns to think about putting the data directly into
RAM write buffer and entirely bypass the ZIL).


> and more importantly ZIL was designed to be used with a RAM/Solid State
> Disk.

I hope you mean NVRAM or battery-backed RAM of some kind.  Because if you
use volatile RAM for ZIL, then you have disabled ZIL from being able to
function correctly.

The ZFS Best Practices Guide specifically mentions "Better performance might
be possible by using [...], or even a dedicated spindle disk."


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

Reply via email to