On Thu, 2003-04-17 at 10:09, Cahill, Ben M wrote: > Great info . . . will you add this to the locking doc? I agree! Nice job, Dominik! > Also, what exactly is a "transaction", and "completing a transaction"? > A transaction is an indivisible operation that changes the state of the filesystem. A good example would be the creation of a new inode which must perform multiple I/Os. In this case, the directory must be updated, an inode allocated, and the inode must be initialized with the new contents. The success of a create depends on the success of all parts. If the creation fails, all changes associated must also fail (or be un-done) to not leave an inconsistent, or partially created file. Transactions can be journaled (logged) to delay updating the actual filesystem and to provide fast recovery in the event of a crash. It's faster because all known changes (transactions) are in the journal and the entire filesystem does not have to be searched (as in fsck) to find possible incomplete changes. At the point when the journal entries are written to the actual filesystem, they are considered "complete". -- Joe DiMartino <joe@osdl.org> ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Opengfs-devel mailing list Opengfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opengfs-devel