摘要 |
A data storage subsystem employs managed files comprising one or a contiguous aggregation of multiple constituent user files. A mapping table cross-references each managed file with the names and locations of its constituent user files. A storage table cross-references each managed file with its address. Eventually, "deleted-file space" arises as individual user files are deleted from managed files. "Reconstruction" consolidates managed files to regain this wasted space. Reconstruction preferably permits multiple embodiments of a managed file called "siblings". Reconstruction identifies contiguous regions of user files within a managed file, and copies these regions to adjacent locations in a target area. Before entering the reconstructed file in any tables, the mapping table is searched for a "paradigm" managed file containing the same user files as the reconstructed file. Finding a paradigm file, the storage table is modified by deleting reference to the pre-reconstruction filename, and adding an entry cross-referencing the paradigm file with the reconstructed file's storage address. Not finding the paradigm file, a new sibling filename is designated for the reconstructed file, an entry is added to the mapping table, cross-referencing the sibling with its constituent user files and their locations within the reconstructed file, reference to the pre-reconstruction file is deleted from the storage table, and an entry is added to the storage table, cross-referencing the sibling with its address. Finally, if the storage table has no other instances of the pre-reconstruction file, reference to the pre-reconstruction file is purged from the mapping table.
|