Version Management

To achieve failure transparency in a system that allows nested atomic operations, a reliable system must maintain versions of objects in stable storage (i.e. storage which has a much lower failure rate than the operations system). There is one version per outstanding transaction. The concurrency control system makes use of the interface to the version management system to provide independent versions of the object to independent operations. When an operation commits, the version manager ensures that changes are only reflected in the stable store after all ancestor operations commit.