I'll try to find out whether ZFS binding the same file always to the same opening transaction group.
Not sure what you mean by this. Transactions (eg writes) will go into the current open transaction group (txg). Subsequent writes may enter the same or a future txg. Txgs are obviously committed in order. So writes are not committed out of order. The txg commit is all or nothing, so on a crash you get to see all the transactions in that txg or none. I think this answers your original question/concern.
If so, I guess my assumption here would be true. Seems like there is only one opening transaction group at anytime. Can anybody give me a definitive answer here?
ZFS uses a 3 stage transaction model: Open, Quiescing and Syncing. Transactions enter in Open. Quiescing is where a new Open stage has started and waits for transactions that have yet to commit to finish. Syncing is where all the completed transactions are pushed to the pool in an atomic manner with the last write being the root of the new tree of blocks (uberblock). All the guarantees assume good hardware. As part of the new uberblock update we flush the write caches of the pool devices. If this is broken all bets are off. Neil. _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss