Andreas Schäfer wrote:
Don't get too excited -- the transactions probably aren't done yet. Without those, no filesystem that claims to journal data is really any better than a filesystem which only journals metadata. Even once
they are implemented (or even if they are already), applications have to support them directly.
Actually, I think transactions in a filesystem context are a bit
different from the transactions you know form databases. Generally
Yes, generally speaking, you're entirely right. But in the case of
Reiser4, at least for a single file, you can perform a number of writes
and declare them a single transaction.
I believe there are some other oddities, such as: The FS doesn't always
do the rollback, sometimes it delegates to the app for that, and it may
be possible to perform transactions on a number of files. I don't
believe transactions imply locking, only serialization -- that is, the
last transaction that goes through is the one that counts, and
overwrites any transactions that completed before, even if they were
started after. So:
Alice opens foo
Alice starts writing
Bob opens foo
Bob starts writing
Alice writes some more
Bob writes more
Bob closes foo
Alice closes foo
Even though Bob opened foo last, and did the last write, Alice was the
last to close a transaction. If you want to avoid this situation, you
use locking. Locking isn't mandatory, but neither are transactions.
But I could be entirely wrong also.