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.