On 11-Feb-09, at 5:52 PM, David Dyer-Bennet wrote:


On Wed, February 11, 2009 15:52, Bob Friesenhahn wrote:
On Wed, 11 Feb 2009, Tim wrote:

Right, except the OP stated he unmounted the filesystem in question, and
it
was the *ONLY* one on the drive, meaning there is absolutely 0 chance of
their being pending writes.  There's nothing to write to.

This is an interesting assumption leading to a wrong conclusion.  If
the file is updated and the filesystem is "unmounted", it is still
possible for there to be uncommitted data in the pool. ...

As a practical matter, it seems unreasonable to me that there would be
uncommitted data in the pool after some quite short period of time ...

That is, if I plug in a memory stick with ZFS on it, read and write for a while, then when I'm done and IO appears to have quiesced, observe that the IO light on the drive is inactive for several seconds, I'd be kinda
disappointed if I got actual corrution if I pulled it.

Absolutely. You should never get "actual corruption" (inconsistency) at any time *except* in the case Jeff Bonwick explained: i.e. faulty/ misbehaving hardware! (That's one meaning of "always consistent on disk".)

I think this is well understood, is it not?

Write barriers are not a new concept, and nor is the necessity. For example, they are a clearly described feature of DEC's MSCP protocol*, long before ATA or SCSI - presumably so that transactional systems could actually be built at all. Devices were held to a high standard of conformance since DEC's customers (like Sun's) were traditionally those whose data was of very high value. Storage engineers across the industry were certainly implementing them long before MSCP.

--Toby


* - The related patent that I am looking at is #4,449,182, filed 5 Oct, 1981. "Interface between a pair of processors, such as host and peripheral- controlling processors in data processing systems."

Also the MSCP document released with the UDA50 mass storage subsystem, dated April 1982:

"4.5 Command Categories and Execution Order
...
Sequential commands are those commands that, for the same unit, must be executed in precise order. ... All sequential commands for a particular unit that are received on the same connection must be executed in the exact order that the MSCP server receives them. The execution of a sequential command may not be interleaved with the execution of any other sequential or non-sequential commands for the same unit. Furthermore, any non-sequential commands received before and on the same connection as a particular sequential command must be completed before execution of that sequential command begins, and any non-sequential commands received after and on the same conection as a particular sequential command must not begin execution until after that sequential command is completed. Sequential commands are, in effect, a barrier than non-sequential commands cannot pass or penetrate. Non-sequential commands are those commands that controllers may re-order so as to optimize performance. Controllers may furthermore interleave the execution of several non-sequential commands among themselves, ..."



Complaints about
not being exported next time I tried to import it, sure.  Maybe other
complaints.  I wouldn't do this deliberately (other than for testing).
...

--
David Dyer-Bennet, d...@dd-b.net; http://dd-b.net/
Snapshots: http://dd-b.net/dd-b/SnapshotAlbum/data/
Photos: http://dd-b.net/photography/gallery/
Dragaera: http://dragaera.info

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

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

Reply via email to