EFFICIENT DATA OBJECT STORAGE AND RETRIEVAL
First Claim
1. A method, comprising:
- in a data storage system, maintaining a logical container for a plurality of data objects, wherein the data objects are stored in one or more of a plurality of logical extents of the data storage system and the data objects are uniquely identified by object identifiers; and
maintaining first and second indexes for locating the data objects, wherein;
the first index maps a first range of the object identifiers to the second index; and
the second index indicates storage locations of the data objects associated with the first range of the object identifiers.
1 Assignment
0 Petitions
Accused Products
Abstract
A data storage system includes a processor, a system memory, and logical extents. Blocks of storage in one or more physical storage devices are allocated to each of the logical extents. The processor maintains a logical container for data objects and the volume includes one or more of the logical extents. The processor stores data objects that are uniquely identified by object identifiers in the logical extents. The processor also maintains a first index that is stored in the system memory and maps a range of the object identifiers to a second index. The second index is also stored in a logical extent and indicates storage locations of the data objects associated with the range of the object identifiers.
-
Citations
30 Claims
-
1. A method, comprising:
-
in a data storage system, maintaining a logical container for a plurality of data objects, wherein the data objects are stored in one or more of a plurality of logical extents of the data storage system and the data objects are uniquely identified by object identifiers; and maintaining first and second indexes for locating the data objects, wherein; the first index maps a first range of the object identifiers to the second index; and the second index indicates storage locations of the data objects associated with the first range of the object identifiers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A data storage system, comprising:
-
a system memory; a plurality of logical extents, wherein one or more blocks of storage in one or more physical storage devices are allocated to each of the plurality of logical extents; and a processor configured to; maintain a volume as a logical container for a plurality of data objects, wherein the volume includes one or more of the logical extents; store data objects in one or more of the plurality of logical extents, wherein the data objects are uniquely identified by object identifiers; maintain a first index, wherein the first index is stored in the system memory and maps a first range of the object identifiers to a second index; and maintain the second index, wherein the second index is stored in a logical extent of the logical extents and indicates storage locations of the data objects associated with the first range of the object identifiers. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A non-transitory machine-readable medium comprising instructions that, when executed by one or more processors, direct the one or more processors to:
-
in a data storage system, define a plurality of regions to contain data objects, the plurality of regions including a plurality of logical extents, wherein allocated to each said logical extent is at least a portion of one or more slabs allocated to a region that includes said logical extent, each said slab defined as a set of blocks of storage in one or more physical storage devices; in the data storage system, maintain a plurality of volumes as logical containers of data, each of the volumes including one or more of the logical extents from one or more of the regions, wherein layouts of the logical extents within the regions are not visible to the plurality of volumes; and maintain a first index in which a first group of unique object identifiers associated with a first group of the data objects is mapped to a second index and a second group of unique object identifiers associated with a second group of the data objects is mapped to a third index, wherein; the first index is stored in solid state memory; the second index is stored in one of the logical extents and indicates storage locations of the data objects of the first group; and the third index is stored in another of the logical extents and indicates storage locations of the data objects associated with the second group. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
28. A method, comprising:
-
in a data storage system, using a multi-level index for tracking locations of a plurality of data objects stored in a logical data container, the multi-level index including a first index and a second index mapped to the first index; maintaining the first index in its entirety in a solid state memory in the data storage system; maintaining the second index in a persistent mass storage facility separate from the solid state memory; and accessing a logical extent in the persistent mass storage to retrieve one of the plurality of data objects by no more than two storage I/O operations, wherein said accessing includes using information contained in the first index and the second index to identify a storage location of said one of the plurality of data objects. - View Dependent Claims (29, 30)
-
Specification