Only the base development environment needs to be modified. The server component provides facilities to manage recoverable data with transactional integrity. This allows users to build their own databases or resource managers. The server component includes the client component. The lock service provides read, write, and hierarchical intention locks.
Locks are transactional so that they are held until the transaction commits or aborts.
The log service provides a distributed common log facility to store transaction outcomes and update images of recoverable data. Many applications may share the same log physically, and logically they see only their own log records. It is achieved by logging before images and after images of data updates to the log via the log service. By replaying the log, recoverable data may be rolled forward or rolled back according to the outcome of the transaction after a system failure. In order to guarantee recoverability, the log is flushed in such a way that no dirty data can go to disk before its associated log record goes to disk.