Storage management system with file aggregation supporting multiple aggregated file counterparts
First Claim
1. A method of reconstructing a managed file originally created with a contiguous aggregation of constituent user files, said deleted-file space arising from deletion of individual user files from the managed file, said managed file residing at a source storage area, the managed file and all constituent user files being represented in (1) a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file, and (2) a storage table cross-referencing each managed file with an address in the subsystem containing that managed file, the method comprising:
- receiving a request to reconstruct a first managed file having an original filename;
reconstructing the first managed file by identifying contiguous regions of user files within the first managed file and copying each identified contiguous region to adjacent locations in a target storage area;
searching the mapping table for a paradigm managed file having contents identical to the reconstructed first managed file;
if the paradigm managed file is found, the paradigm managed file having a paradigm filename,deleting reference in the storage table to the original filename; and
in the storage table, adding a new entry cross-referencing the paradigm filename with an address in the subsystem containing the reconstructed managed file;
if the paradigm managed file is not found,designating a sibling filename for the reconstructed first managed file;
in the mapping table, adding a new entry cross-referencing the sibling filename with all constituent user files and corresponding locations of those user files within the reconstructed first managed file;
deleting reference in the storage table to the original filename; and
in the storage table, adding a new entry cross-referencing the sibling filename with an address in the subsystem containing the reconstructed managed file; and
searching the storage table for the original filename, and if not found, updating the mapping table by deleting reference to the original filename and all data cross-referenced thereto.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
223 Citations
42 Claims
-
1. A method of reconstructing a managed file originally created with a contiguous aggregation of constituent user files, said deleted-file space arising from deletion of individual user files from the managed file, said managed file residing at a source storage area, the managed file and all constituent user files being represented in (1) a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file, and (2) a storage table cross-referencing each managed file with an address in the subsystem containing that managed file, the method comprising:
-
receiving a request to reconstruct a first managed file having an original filename; reconstructing the first managed file by identifying contiguous regions of user files within the first managed file and copying each identified contiguous region to adjacent locations in a target storage area; searching the mapping table for a paradigm managed file having contents identical to the reconstructed first managed file; if the paradigm managed file is found, the paradigm managed file having a paradigm filename, deleting reference in the storage table to the original filename; and in the storage table, adding a new entry cross-referencing the paradigm filename with an address in the subsystem containing the reconstructed managed file; if the paradigm managed file is not found, designating a sibling filename for the reconstructed first managed file; in the mapping table, adding a new entry cross-referencing the sibling filename with all constituent user files and corresponding locations of those user files within the reconstructed first managed file; deleting reference in the storage table to the original filename; and in the storage table, adding a new entry cross-referencing the sibling filename with an address in the subsystem containing the reconstructed managed file; and searching the storage table for the original filename, and if not found, updating the mapping table by deleting reference to the original filename and all data cross-referenced thereto. - View Dependent Claims (2, 3, 4)
-
-
5. A method of processing requests to access a storage subsystem that maintains managed files each originally created with a contiguous aggregation of constituent user files, each managed file and all constituent user files therein being represented in a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file, the method comprising:
-
receiving a request to restore a first managed file to the storage subsystem; utilizing the mapping table to identify a user file occupying a predetermined position in the first managed file; utilizing the mapping table to identify all managed files containing the identified user file; if one or more managed files other than the first managed file are identified, using predetermined criteria to select one of the identified managed files and restoring the first managed file from the selected managed file. - View Dependent Claims (6, 7, 8, 9)
-
-
10. A method of processing requests to access a storage subsystem that maintains managed files each originally created with a contiguous aggregation of constituent user files, each managed file and all constituent user files therein being represented in a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file, the method comprising:
-
receiving a request to delete a first user file from the storage subsystem; utilizing the mapping table to identify all managed files containing the first user file; and if one or more managed files are identified, updating the mapping table by deleting each entry referencing the first user file.
-
-
11. A method of processing requests to access a storage subsystem that maintains managed files each originally created with a contiguous aggregation of constituent user files, each managed file and all constituent user files therein being represented in a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file, the method comprising:
-
receiving a request to retrieve a first user file from the storage subsystem; utilizing the mapping table to identify all managed files containing the first user file; and if one or more managed files are identified, using predetermined criteria to select one of the identified managed files and providing an output of the first user file from the selected managed file. - View Dependent Claims (12, 13, 14)
-
-
15. A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method for reconstructing a managed file originally created with a contiguous aggregation of constituent user files, said deleted-file space arising from deletion of individual user files from the managed file, said managed file residing at a source storage area, the managed file and all constituent user files being represented in (1) a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file, and (2) a storage table cross-referencing each managed file with an address in the subsystem containing that managed file, the method comprising:
-
receiving a request to reconstruct a first managed file having an original filename; reconstructing the first managed file by identifying contiguous regions of user files within the first managed file and copying each identified contiguous region to adjacent locations in a target storage area; searching the mapping table for a paradigm managed file having contents identical to the reconstructed first managed file; if the paradigm managed file is found, the paradigm managed file having a paradigm filename, deleting reference in the storage table to the original filename; and in the storage table, adding a new entry cross-referencing the paradigm filename with an address in the subsystem containing the reconstructed managed file; if the paradigm managed file is not found, designating a sibling filename for the reconstructed first managed file; in the mapping table, adding a new entry cross-referencing the sibling filename with all constituent user files and corresponding locations of those user files within the reconstructed first managed file; deleting reference in the storage table to the original filename; and in the storage table, adding a new entry cross-referencing the sibling filename with an address in the subsystem containing the reconstructed managed file; and searching the storage table for the original filename, and if not found, updating the mapping table by deleting reference to the original filename and all data cross-referenced thereto. - View Dependent Claims (16, 17, 18)
-
-
19. A signal-bearing medium of processing requests to access a storage subsystem that maintains managed files each originally created with a contiguous aggregation of constituent user files, each managed file and all constituent user files therein being represented in a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file, the method comprising:
-
receiving a request to restore a first managed file to the storage subsystem; utilizing the mapping table to identify a user file occupying a predetermined position in the first managed file; utilizing the mapping table to identify all managed files containing the identified user file; if one or more managed files other than the first managed file are identified, using predetermined criteria to select one of the identified managed files and restoring the first managed file from the selected managed file. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A signal-bearing medium of processing requests to access a storage subsystem that maintains managed files each originally created with a contiguous aggregation of constituent user files, each managed file and all constituent user files therein being represented in a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file, the method comprising:
-
receiving a request to delete a first user file from the storage subsystem; utilizing the mapping table to identify all managed files containing the first user file; and if one or more managed files are identified, updating the mapping table by deleting each entry referencing the first user file.
-
-
25. A signal-bearing medium of processing requests to access a storage subsystem that maintains managed files each originally created with a contiguous aggregation of constituent user files, each managed file and all constituent user files therein being represented in a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file, and the method comprising:
-
receiving a request to retrieve a first user file from the storage subsystem; utilizing the mapping table to identify all managed files containing the first user file; and if one or more managed files are identified, using predetermined criteria to select one of the identified managed files and providing an output of the first user file from the selected managed file. - View Dependent Claims (26, 27, 28)
-
-
29. A data storage subsystem, comprising:
-
a storage including a source storage area and a target storage area, said source storage area containing one or more managed files each including one or an aggregation of multiple constituent user files; a database, including (1) a mapping table cross-referencing each managed file with each constituent user file and a corresponding location of that user file within the managed file, and (2) a storage table cross-referencing each managed file with an address in the subsystem containing that managed file; and a digital data processing apparatus coupled to the storage and the database; wherein the digital data processing apparatus is programmed to perform a method for reconstructing a managed file originally created with a contiguous aggregation of constituent user files, said managed file containing deleted-file space arising from deletion of individual user files from the managed file, said managed file residing in the source storage area, the method comprising; receiving a request to reconstruct a first managed file having an original filename; reconstructing the first managed file by identifying contiguous regions of user files within the first managed file and copying each identified contiguous region to adjacent locations in a target storage area; searching the mapping table for a paradigm managed file having contents identical to the reconstructed first managed file; if the paradigm managed file is found, the paradigm managed file having a paradigm filename, deleting reference in the storage table to the original filename; and in the storage table, adding a new entry cross-referencing the paradigm filename with an address in the subsystem containing the reconstructed managed file; if the paradigm managed file is not found, designating a sibling filename for the reconstructed first managed file; in the mapping table, adding a new entry cross-referencing the sibling filename with all constituent user files and corresponding locations of those user files within the reconstructed first managed file; deleting reference in the storage table to the original filename; and in the storage table, adding a new entry cross-referencing the sibling filename with an address in the subsystem containing the reconstructed managed file; and searching the storage table for the original filename, and if not found, updating the mapping table by deleting reference to the original filename and all data cross-referenced thereto. - View Dependent Claims (30, 31, 32)
-
-
33. A data storage subsystem, comprising:
-
a storage including a source storage area and a target storage area, said storage containing one or more managed files each originally created with a contiguous aggregation of constituent user files; a database, including a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file; a digital data processing apparatus coupled to the storage and the database; wherein the digital data processing apparatus is programmed to perform a method for processing requests to access data in the storage, the method comprising; receiving a request to restore a first managed file to the storage subsystem; utilizing the mapping table to identify a user file occupying a predetermined position in the first managed file; utilizing the mapping table to identify all managed files containing the identified user file; if one or more managed files other than the first managed file are identified, using predetermined criteria to select one of the identified managed files and restoring the first managed file from the selected managed file. - View Dependent Claims (34, 35, 36, 37)
-
-
38. A data storage subsystem, comprising:
-
a storage including a source storage area and a target storage area, said storage containing one or more managed files each originally created with a contiguous aggregation of constituent user files; a database, including a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file; a digital data processing apparatus coupled to the storage and the database; wherein the digital data processing apparatus is programmed to perform a method for processing requests to access data in the storage, the method comprising; receiving a request to delete a first user file from the storage subsystem; utilizing the mapping table to identify all managed files containing the first user file; and if one or more managed files are identified, updating the mapping table by deleting each entry referencing the first user file.
-
-
39. A data storage subsystem, comprising:
-
a storage including a source storage area and a target storage area, said storage containing one or more managed files each originally created with a contiguous aggregation of constituent user files; a database, including a mapping table cross-referencing each managed file with its constituent user files and a corresponding location of each user file within the managed file; a digital data processing apparatus coupled to the storage and the database; wherein the digital data processing apparatus is programmed to perform a method for processing requests to access data in the storage, the method comprising; receiving a request to retrieve a first user file from the storage subsystem; utilizing the mapping table to identify all managed files containing the first user file; and if one or more managed files are identified, using predetermined criteria to select one of the identified managed files and providing an output of the first user file from the selected managed file. - View Dependent Claims (40, 41, 42)
-
Specification