language: en

Towards Effective and Efficient Free Space Management

Mark L. McAuliffe
University of Wisconsin|Madison
mcauliff@cs.wisc.edu
Michael J. Carey
IBM Almaden Research Center
carey@almaden.ibm.com
Marvin H. Solomon
University of Wisconsin|Madison
solomon@cs.wisc.edu

Abstract An important problem faced by many database management systems is the "online object placement problem"|the problem of choosing a disk page to hold a newly allocated object. In the absence of clustering criteria, the goal is to maximize storage utilization. For main-memory based systems, simple heuristics exist that provide reasonable space utilization in the worst case and excellent utilization in typical cases. However, the storage management problem for databases includes significant additional challenges, such as minimizing I/O traffic, coping with crash recovery, and gracefully integrating space management with locking and logging. We survey several object placement algorithms, including techniques that can be found in commercial and research database systems. We then present a new object placement algorithm that we have designed for use in Shore, an object-oriented database system under development at the University of Wisconsin|Madison. Finally, we present results from a series of experiments involving actual Shore implementations of some of these algorithms. Our results show that while current object placement algorithms have serious performance deficiencies, including excessive CPU or main memory overhead, I/O traffic, or poor disk utilization, our new algorithm consistently demonstrates excellent performance in all of these areas.

1 Introduction