The paper describes a way of implementing locking in an OODB. Given a program expressed in a persistent dialect of C++, the mechanism preprocesses the program and replaces application-defined object references by surrogate object references defined by the OODB. These surrogate object references include a parameter that indicates whether the access is a read or a write. The surrogate object implements the reference by accessing the object cache, getting the object from persistent storage if necessary, and setting the appropriate lock.
This is a clean and clever mechanism. It is early-bound and therefore quite efficient. It should work with any persistent dialect of C++. It operates at object granularity, and therefore allows much concurrency. (They're operating on the Wisconsin Stoages System (WiSS), which uses page grained locks. But if WiSS used record locks, their mechanism would automatically get this benefit without modification.)
The paper is well written. The examples are excellent in helping to understand the algorithm and are easy to follow. The paper will be of interest to anyone involved in OODB implementation.