Practical Techniques for Eliminating Storage of Deleted Data
The layered design of modern file systems hides the liveness of data from the underlying storage systems. In this paper, the authors 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. They present three approaches for implementing such a purge operation: direct call, zero pages, and flagged writes. They 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.