This invention provides a specified retention date within a data set that
is locked against deletion or modification within a WORM storage
implementation. This retention date scheme does not utilize any
proprietary application program interfaces (APIs) or protocols, but
rather, employs native functionality within conventional file (or other
data containers, data sets or block-based logical unit numbers)
properties available in commonly used operating systems. In an
illustrative embodiment, the retention date/time is calculated by
querying the file's last-modified time prior to commit, adding the
retention period to this value and thereby deriving a retention date
after which the file can be released from WORM. Prior to commit, the
computed retention date is stored in the file's "last access time"
property/attribute field, or another metadata field that remains
permanently associated with the file and that, in being used for
retention date, does not interfere with file management in a WORM state.
Since this field is not utilized in a WORM context, it can be adapted to
store this date. Once stored, the retention date in this field is locked
against modification. Where extension (never reduction) of a retention
period is desired, the last access time field be updated, wherein the new
retention period is added to the existing last access time value to
derive a new, later retention date for the file. Upon expiry of the
retention date, the system allows deletion of the expired WORM file/data
set.