Opportunistic tile-pulling, vacancy-filling method and apparatus for file-structure reorganization
First Claim
1. A method for reorganizing file data stored in a re-organizable storage space, where the storage space has addressable storage sub-areas each for storing data and where each file is defined by a directory structure as data contained in a directory-specified organization of storage sub-areas, said method comprising the steps of:
- (a) identifying one or more files or groups of files that are to be reorganized, the identified files or file groups residing in the re-organizable storage space;
(b) subdividing the data of the re-organizable storage space into tiles, each tile corresponding to one or more access-wise adjacent storage sub-areas;
(c) recording as a definition of a goal state, indications of goal locations for each tile in the re-organizable storage space;
(d) identifying an already-existing vacancy space within the re-organizable storage space, and if none;
creating at least one such vacancy space within the re-organizable storage space and identifying the created vacancy space; and
(e) moving (pulling) into the identified vacancy space the data of one or more source tiles that have that identified vacancy space defined by the goal state as the goal location for the moved one or more source tiles.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage reorganizing system subdivides a reorganizable storage space into tile areas. Each tile area either contains file data or does not contain file data. The data in a tile area that contains file data is referred to as a tile. A tile area that does not contain file data is referred to as a vacancy. Tiles that are not yet located in their goal positions, as defined by a recorded goal state definition, are opportunistically moved to available vacancies that are the goal positions for such tiles as the vacancies become available. Each tile move leaves behind it a new vacancy. The speed of opportunistic tile moving is optimized by first locating the largest vacancies that are each to be filled with the largest amount of tile data and by first moving tiles to such vacancies. One goal state produces a defragmented set of files. Another goal state produces an intentionally fragmented set of files. A third goal state produces a set of files that are fragmented and whose fragments are tightly interleaved on an access-wise basis so as to enable quick switching between a fragment of a first file and a fragment of a second file.
119 Citations
56 Claims
-
1. A method for reorganizing file data stored in a re-organizable storage space, where the storage space has addressable storage sub-areas each for storing data and where each file is defined by a directory structure as data contained in a directory-specified organization of storage sub-areas, said method comprising the steps of:
-
(a) identifying one or more files or groups of files that are to be reorganized, the identified files or file groups residing in the re-organizable storage space; (b) subdividing the data of the re-organizable storage space into tiles, each tile corresponding to one or more access-wise adjacent storage sub-areas; (c) recording as a definition of a goal state, indications of goal locations for each tile in the re-organizable storage space; (d) identifying an already-existing vacancy space within the re-organizable storage space, and if none;
creating at least one such vacancy space within the re-organizable storage space and identifying the created vacancy space; and(e) moving (pulling) into the identified vacancy space the data of one or more source tiles that have that identified vacancy space defined by the goal state as the goal location for the moved one or more source tiles. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for rearranging storage locations of data stored in a re-organizable storage space of a data storage means, where the storage means has addressable storage sub-areas each for storing a predefined maximum amount of data, where said sub-areas are logically linked to one another to thereby define a logical organization for the data contained in said storage sub-areas, said method comprising the steps of:
-
(a) subdividing the data of the re-organizable storage space into tiles, each tile corresponding to one or more access-wise adjacent storage sub-areas; (b) providing as a recorded definition of a goal state, pre-recorded indications of goal resting positions for each tile in the storage space of the re-organizable storage means; (c) identifying an already-existing vacancy space within the re-organizable storage space; and (d) moving into the identified vacancy space the data of one or more source tiles that have that identified vacancy space defined by the recorded goal state as the goal resting position for the moved one or more source tiles. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A method for defragmenting file data stored in a re-organizable storage space, where the storage space has addressable storage sub-areas each for storing a predefined maximum amount of data, where said sub-areas are logically linked to one another to thereby define a logical organization for the data contained in each said file, and where parts of the data of each file are defined as being logically adjacent to one another, said method comprising the steps of:
-
(a) identifying one or more files or groups of files that are to be defragmented, the identified files or file groups residing in the re-organizable storage space; (b) subdividing the data of the re-organizable storage space into tiles, each tile corresponding to one or more access-wise adjacent storage sub-areas; (c) recording as a definition of a goal state, indications of goal resting positions for each tile in the re-organizable storage space, where said goal state places logically adjacent tiles of each file in access-wise closer adjacency relative to one another than such tiles are in their original state; and (d) moving said tiles each from a current position to the corresponding goal resting position defined by the goal state, where a majority of said tile moves are performed just once for each of the moved tiles. - View Dependent Claims (27)
-
-
28. A method for fragmenting file data stored in a re-organizable storage space, where the storage space has addressable storage sub-areas each for storing a predefined maximum amount of data, where said sub-areas are logically linked to one another to thereby define a logical organization for the data contained in each said file, and where parts of the data of each file are defined as being logically adjacent to one another, said method comprising the steps of:
-
(a) identifying one or more files or groups of files that are to be fragmented, the identified files or file groups residing in the re-organizable storage space; (b) subdividing the data of the re-organizable storage space into tiles, each tile corresponding to one or more access-wise adjacent storage sub-areas; (c) recording as a definition of a goal state, indications of goal resting positions for each tile in the re-organizable storage space, where said goal state places logically adjacent tiles of each file in access-wise non-adjacency relative to one another; and (d) moving said tiles each from a current position to the corresponding goal resting position defined by the goal state. - View Dependent Claims (29)
-
-
30. A method for increasing fragmentation of file data stored in a re-organizable storage space, where the storage space has addressable storage sub-areas each for storing a predefined maximum amount of data, where said sub-areas are logically linked to one another to thereby define a logical organization for the data contained in each said file, and where parts of the data of each file are defined as being logically adjacent to one another, said method comprising the steps of:
-
(a) identifying one or more files or groups of files whose degree of fragmentation is to be increased, the identified files or file groups residing in the re-organizable storage space; (b) subdividing the data of the re-organizable storage space into tiles, each tile corresponding to one or more access-wise adjacent storage sub-areas; (c) recording as a definition of an original tile state, indications of original resting positions for each tile in the re-organizable storage space; (d) providing as a definition of a recorded goal state, pre-recorded indications of goal resting positions for each tile in the re-organizable storage space, where for each identified file whose degree of fragmentation is to be increased, said goal state places one or more of plural and respective source tiles that are access-wise adjacent to one another in the original tile state to one or more destination tiles that are each access-wise non-adjacent with respect to either one of the source tiles or another, logically-adjacent destination tile; and (e) moving said tiles each from a current position to the corresponding goal resting position defined by the goal state.
-
-
31. A method for interleave-wise fragmenting file data of two or more files, where said file data is stored in a re-organizable storage space, where the storage space has addressable storage sub-areas each for storing a predefined maximum amount of data, where said sub-areas are logically linked to one another to thereby define a logical organization for the data contained in each said file, where parts of the data of each file are defined as being logically adjacent to one another within the file, and where respective first, second and third parts that respectively belong to at least two different ones of said files are to be interleave-wise accessed one after the other by a predefined program, said method comprising the steps of:
-
(a) subdividing the data of the re-organizable storage space into tiles, each tile corresponding to one or more access-wise adjacent storage sub-areas; (b) providing as a recorded definition of a goal state, pre-recorded indications of goal resting positions for each tile in the re-organizable storage space, where said goal state places the respective first through third parts in interleaved access-wise adjacency to one another; and (c) moving said tiles each from a current position to the corresponding goal resting position defined by the goal state. - View Dependent Claims (32)
-
-
33. A method for rearranging storage locations of data stored in a re-organizable storage space of a data storage means, where the storage means has addressable storage sub-areas each for storing a predefined maximum amount of data, said method comprising the steps of:
-
(a) subdividing the data of the re-organizable storage space into tiles, each tile corresponding to one or more access-wise adjacent storage sub-areas; (b) identifying as a goal state, pre-recorded indications of goal resting positions for each tile in the re-organizable storage space; and (c) in accordance with the goal state, opportunistically moving tiles that are not in their goal resting positions to such goal resting positions when such goal resting positions are vacant.
-
-
34. An instructing apparatus for instructing a target data processing system to re-organize storage locations for data stored in a re-organizable storage space, where the storage space has addressable storage sub-areas each for storing a predefined maximum amount of data, said instructing apparatus providing instructions for causing said target data processing system to perform the steps of:
-
(a) subdividing the data of the re-organizable storage space into tiles, each tile corresponding to one or more access-wise adjacent storage sub-areas; (b) identifying as a goal state, pre-recorded indications of goal resting positions for each tile in the re-organizable storage space; and (c) in accordance with the identified goal state, opportunistically moving tiles that are not in their goal resting positions to such goal resting positions when such goal resting positions are vacant. - View Dependent Claims (35, 36, 37, 38, 39, 40)
-
-
41. A machine system for carrying out data structure reorganization comprising:
-
(a) a primary storage for storing a plurality of files in a file storage space in accordance with a first file storage organization, where the first file storage organization may be represented as a first mapping of tiles of data each in a corresponding tile space of the file storage space; and (b) file storage reorganizing means, operatively coupled to the primary storage, for reorganizing the storage organization of the primary storage such that one or more of the files are stored after the reorganization in the primary storage in accordance with a pre-defined second file storage organization that is different from said first file storage organization, where the pre-defined second file storage organization may be represented as a second mapping of the tiles of data each in a corresponding tile space; and
where the file storage reorganizing means includes;(b.1) vacancy locating means for searching through the file storage space of the primary storage looking for a to-be-filled vacant space that is to be ultimately occupied according to the second mapping by a corresponding tile of data; and (b.2) tile moving means, operatively coupled to the vacancy locating means, for moving, in response to the finding of said to-be-filled vacant space, the corresponding tile of data from its currently occupied storage space to the found vacant space. - View Dependent Claims (42, 43, 44, 45, 46)
-
-
47. An instructing apparatus for instructing a target data processing system to re-organize storage locations for data stored in a re-organizable storage means,
where the storage means has addressable storage sub-areas each for storing a predefined maximum amount of data, and where the storage means includes a directory structure for defining files of the storage means each as data contained in a respective directory-specified organization of said storage sub-areas and for further defining vacancy spaces each as provided by a respective directory-specified organization of said storage sub-areas, said instructing apparatus providing instructions for causing said target data processing system to perform the steps of: -
(a) subdividing the data of the re-organizable storage means into tiles, each tile corresponding to one or more access-wise adjacent storage sub-areas; (b) recognizing as a definition of a goal state, pre-recorded indications of goal locations for tiles in the re-organizable storage space; (c) identifying an already-existing vacancy space within the re-organizable storage means; and (d) opportunistically pulling into the identified vacancy space the data of one or more source tiles that have that identified vacancy space defined by the recognized goal state as the goal location for the moved one or more source tiles. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56)
-
Specification