Practical Techniques for Eliminating Storage of Deleted Data

Date of Submission: 
March 20, 2007
Report Number: 
Report PDF: 
The layered design of modern file systems hides the liveness of data from the underlying storage systems. In this paper, we define a generic "purge" operation that can be used by a file system to pass liveness information to the storage system with minimal changes in the layer interfaces. We present three approaches for implementing such a purge operation: direct call, zero pages, and flagged writes. We demonstrate the feasibility of these techniques through a reference implementation in User-mode Linux to dynamically manage a copy-on-write (COW) data store. Performance results obtained from this reference implementation show that these techniques can achieve significant storage savings with a reasonable execution time overhead. Our results demonstrate that passing liveness information across the file system-block layer interface with minimal changes is not only feasible but practical.