This paper presents a portable, efficient method for accessing memory resident persistent objects in virtual memory in the context of the E programming language. Under the approach, objects are copied from the buffer pool of the underlying object manager into virtual memory on demand, as they are accessed by an E program. The cumulative effects of updates to a persistent object are then propagated back to the object manager via a single write operation at the end of each transaction. The method incorporates a comprehensive pointer swizzling mechanism to enhance performance. Swizzling is done a pointer-at-a-time and software checks are used to detect the use of swizzled pointers. The paper also presents the results of a performance study comparing the method presented here with several alternative software architectures
Seth J. White, David J. DeWitt