Robert Milkowski wrote On 06/28/06 15:52,:
Hello Neil,

Wednesday, June 21, 2006, 8:15:54 PM, you wrote:


NP> Robert Milkowski wrote On 06/21/06 11:09,:

Hello Neil,

Why is this option available then? (Yes, that's a loaded question.)

NP> I wouldn't call it an option, but an internal debugging switch that I
NP> originally added to allow progress when initially integrating the ZIL.
NP> As Roch says it really shouldn't be ever set (as it does negate POSIX
NP> synchronous semantics). Nor should it be mentioned to a customer.
NP> In fact I'm inclined to now remove it - however it does still have a use
NP> as it helped root cause this problem.

Isn't it similar to unsupported fastfs for ufs?


NP> It is similar in the sense that it speeds up the file system.
NP> Using fastfs can be much more dangerous though as it can lead
NP> to a badly corrupted file system as writing meta data is delayed
NP> and written out of order. Whereas disabling the ZIL does not affect
NP> the integrity of the fs. The transaction group model of ZFS gives
NP> consistency in the event of a crash/power fail. However, any data that
NP> was promised to be on stable storage may not be unless the transaction
NP> group committed (an operation that is started every 5s).

NP> We once had plans to add a mount option to allow the admin
NP> to control the ZIL. Here's a brief section of the RFE (6280630):

NP>          sync={deferred,standard,forced}

NP>                  Controls synchronous semantics for the dataset.

NP>                  When set to 'standard' (the default), synchronous 
operations
NP>                  such as fsync(3C) behave precisely as defined in
NP>                  fcntl.h(3HEAD).

NP>                  When set to 'deferred', requests for synchronous semantics
NP>                  are ignored.  However, ZFS still guarantees that ordering
NP>                  is preserved -- that is, consecutive operations reach 
stable
NP>                  storage in order.  (If a thread performs operation A 
followed
NP>                  by operation B, then the moment that B reaches stable 
storage,
NP>                  A is guaranteed to be on stable storage as well.)  ZFS also
NP>                  guarantees that all operations will be scheduled for write 
to
NP>                  stable storage within a few seconds, so that an unexpected
NP>                  power loss only takes the last few seconds of change with 
it.

NP>                  When set to 'forced', all operations become synchronous.
NP>                  No operation will return until all previous operations
NP>                  have been committed to stable storage.  This option can be
NP>                  useful if an application is found to depend on synchronous
NP>                  semantics without actually requesting them; otherwise, it
NP>                  will just make everything slow, and is not recommended.

NP> Of course we would need to stress the dangers of setting 'deferred'.
NP> What do you guys think?

I think it would be really useful.
I found myself many times in situation that such features (like
fastfs) were my last resort help.

The over-whelming consensus was that it would be useful. So I'll go ahead and
put that on my to do list.


The same with txg_time - in some cases tuning it could probably be
useful. Instead of playing with mdb it would be much better put into
zpool/zfs or other util (and if possible made per fs not per host).

This one I'm less sure about. I have certainly tuned txg_time myself to
force certain situations, but I wouldn't be happy exposing the inner workings
of ZFS - which may well change.

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

Reply via email to