Modern file systems associate the deletion of a file with the release of the storage associated with that file, and file writes with the irrevocable change of file contents. We propose that this model of file system behavior is a relic of the past, when disk storage was a scarce resource. We believe that the correct model should ensure that all user actions are revocable. Deleting a file should change only the name space and file writes should overwrite no old data. The file system, not the user, should control storage allocation using a combinationof user specified policies and information gleaned from file-edit histories to determine which old versions of a file to retain and for how long. This paper presents the Elephant file system, which provides users with a new contract: Elephant will automatically retain all important versions of the users files. Users name previous file versions by combininga traditionalpathname with a time when the desired version of a file or directory exis...
Douglas J. Santry, Michael J. Feeley, Norman C. Hu