I'll answer the ZIL question:

On 02/05/09 03:38, Ben Rockwood wrote:
> I need some help with clarification.
> 
> My understanding is that there are 2 instances in which ZFS will write
> to disk:
> 1) TXG Sync
> 2) ZIL
> 
> Post-snv_87 a TXG should sync out when the TXG is either over filled or
> hits the timeout of 30 seconds.
> 
> First question is... is there some place I can see what this max TXG
> size is?  If I recall its 1/8th of system memory... but there has to be
> a counter somewhere right?
> 
> I'm unclear on ZIL writes.   I think that they happen independently of
> the normal txg rotation, but I'm not sure.
> 
> So the second question is: do they happen with a TXG sync (expitied) or
> independent of the normal TXG sync flow?

They are independent of the normal TXG flow. It would be too slow to
force a txg commit for any synchronous write.

In rare error situations (like failure to allocate an intent log block)
then the ZIL will wait for the txg to commit. It has no choice, as it
cannot return to the application until data is stable.  

> 
> Finally, I'm unclear on exactly what constitutes a TXG Stall.  I had
> assumed that it indicated TXG's that exceeded the alloted time, but
> after some dtracing I'm uncertain.
> 
> Any help is appreciated.
> 
> benr.
> 

Reply via email to