Locking Principles
Independence of locks. It must be possible to lock a resource without re-reading the resource.
Multi-resource locking. It must be possible to take out a lock on multiple resources in the same action, and this locking operation must be atomic across these resources.
Partial resource locking. It must be possible to take out a lock on a subsection of a resource.