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

Reply via email to