User-level operating system transactions allow system administrators
and ordinary users to perform a sequence of file
operations and then
commit them as a group, or abort them without leaving any
trace behind.
Such a facility can aid many system administration and software
development tasks.
The snapshot isolation concurrency control mechanism allows transactions
to be implemented without locking individual system calls;
conflicts are detected when the transaction is ready to commit.
Along these lines we have implemented a user-space transaction monitor
that is based on ZFS snapshots and a file system event monitor.
Transactions are committed through a robust and efficient algorithm
that merges the operations performed on a file system's
clone back to its parent.
Both the performance impact and the implementation cost of the transaction
monitor we describe are fairly small.
This page contains the source code for the following publication.