Blocks are written to Petal before write locks are moved from one server to another. Locking guarantees that only one recovery daemon tries to recover a particular log. Assume no partial sector failures. Invalidate cached entries upon release of read lock. Write dirty data to disk before releasing write lock.
Logs are single lockable entities.
Bitmaps are partitioned into lockable entities. Global lock ordering avoids deadlocks. Locking Client failure handled via leases. Module linked into each Frangipani server. Lock ids are 64-bit integers.