Working with persistent objects: to swizzle or not to swizzle

J.E.B. Moss
1992 IEEE Transactions on Software Engineering  
Pointer swizzling 3 is the conversion of database objects between an external form (object identifiers) and an internal form (direct memory pointers). Swizzling is used in some object-oriented databases, persistent object stores, and persistent and database programming language implementations to speed manipulation of memory resident data. Here we describe a simplifying model of application behavior, revealing those aspects where swizzling is most relevant in both benefits and costs. The model
more » ... as a number of parameters, which we have measured for a particular instance of the Mneme persistent object store, varying the swizzling technique used. The results confirm most of the intuitive, qualitative tradeoffs, with the quantitative data showing that some performance differences between schemes are smaller than might be expected. However, there are some interesting effects that run counter to naive intuition, most of which we explain using deeper analysis of the algorithms and data structures.
doi:10.1109/32.153378 fatcat:m6u6k3u525bzpcj2n7uhrxgggq