Comparative experimentation is increasingly important in computer science, but performing such experiments can be challenging. The paper presents a set of experiments that compare the performance of two persistent storage managers, and answer the question of whether the safer storage manager has performance comparable to the less safe one. This comparison was difficult for a number of reasons, among them: relatively few programs using either storage manager existed and no established benchmarks existed, and the two techniques are incompatible at the source code level, thus making a direct comparison impossible. In particular one storage manager used a malloc-and-free style of dynamic storage allocation, while the other used a high performance concurrent garbage collector. A number of approaches were used to overcome this difficulty. The most novel approach involved tracing the memory management of a production program that used the malloc-and-free based storage manager and then replaying the trace in an environment that allowed garbage collection and malloc-and-free to be compared. The study represents the most extensive study of a garbage collected persistent storage system to date.
[1]
Benjamin G. Zorn,et al.
Memory allocation costs in large C and C++ programs
,
1994,
Softw. Pract. Exp..
[2]
Scott M. Nettles.
Safe and Efficient Persistent Heaps.
,
1995
.
[3]
Mahadev Satyanarayanan,et al.
Coda: A Highly Available File System for a Distributed Workstation Environment
,
1990,
IEEE Trans. Computers.
[4]
Marc Shapiro,et al.
Garbage Collection of Persistent Objects in Distributed Shared Memory
,
1994,
POS.
[5]
Alexander L. Wolf,et al.
Partition selection policies in object database garbage collection
,
1994,
SIGMOD '94.
[6]
Ronald Morrison,et al.
An Approach to Persistent Programming
,
1989,
Comput. J..
[7]
J. Gregory Morrisett,et al.
Composing first-class transactions
,
1994,
TOPL.
[8]
Benjamin G. Zorn,et al.
The measured cost of conservative garbage collection
,
1993,
Softw. Pract. Exp..
[9]
David K. Gifford,et al.
Concurrent compacting garbage collection of a persistent heap
,
1993,
SOSP '93.