Object location service for network-based content repository
First Claim
1. A method comprising:
- providing, by a computing device, a layer of indirection between storage locations of data objects and path names of the data objects so that the path names of the data objects are independent of the storage locations of the data objects;
receiving, by the computing device, a request from a client device to access a particular one of the data objects, the request comprising one of the path names of the particular data object;
obtaining, by the computing device, a location-independent object identifier of the particular data object from a path namespace using the path name of the particular data object, wherein the path namespace includes a mapping between the path names of the data objects and corresponding location-independent object identifiers of the data objects;
locating, by the computing device, the particular data object using the location-independent object identifier of the particular data object to look up a location identifier of the particular data object in a multi-level hierarchical mapping structure, wherein different portions of the location-independent object identifier are used to identify respective entries in different levels of the multi-level hierarchical mapping structure; and
accessing, by the computing device, the particular data object using the location identifier and returning a response to the client device, wherein the response is based on a type of the request to access the particular data object received from the client device.
0 Assignments
0 Petitions
Accused Products
Abstract
A distributed object store in a network storage system uses location-independent global object identifiers (IDs) for stored data objects. The global object ID enables a data object to be seamlessly moved from one location to another without affecting clients of the storage system, i.e., “transparent migration”. The global object ID can be part of a multilevel object handle, which also can include a location ID indicating the specific location at which the data object is stored, and a policy ID identifying a set of data management policies associated with the data object. The policy ID may be associated with the data object by a client of the storage system, for example when the client creates the object, thus allowing “inline” policy management. An object location subsystem (OLS) can be used to locate an object when a client request does not contain a valid location ID for the object.
-
Citations
9 Claims
-
1. A method comprising:
-
providing, by a computing device, a layer of indirection between storage locations of data objects and path names of the data objects so that the path names of the data objects are independent of the storage locations of the data objects; receiving, by the computing device, a request from a client device to access a particular one of the data objects, the request comprising one of the path names of the particular data object; obtaining, by the computing device, a location-independent object identifier of the particular data object from a path namespace using the path name of the particular data object, wherein the path namespace includes a mapping between the path names of the data objects and corresponding location-independent object identifiers of the data objects; locating, by the computing device, the particular data object using the location-independent object identifier of the particular data object to look up a location identifier of the particular data object in a multi-level hierarchical mapping structure, wherein different portions of the location-independent object identifier are used to identify respective entries in different levels of the multi-level hierarchical mapping structure; and accessing, by the computing device, the particular data object using the location identifier and returning a response to the client device, wherein the response is based on a type of the request to access the particular data object received from the client device. - View Dependent Claims (2, 3)
-
-
4. A computing device comprising:
-
a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of facilitating an content repository object location service; a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to; provide a layer of indirection between storage locations of data objects and path names of the data objects so that the path names of the data objects are independent of the storage locations of the data objects; receive a request from a client device to access a one of the data objects, the request comprising one of the path names of the particular data object; obtain a location-independent object identifier of the particular data object from a path namespace using the path name of the particular data object, wherein the path namespace includes a mapping between the path names of the data objects and corresponding location-independent object identifiers of the data objects; locate the particular data object using the location-independent object identifier of the particular data object to look up a location identifier of the particular data object in a multi-level hierarchical mapping structure, wherein different portions of the location-independent object identifier are used to identify respective entries in different levels of the multi-level hierarchical mapping structure; and access the particular data object using the location identifier and returning a response to the client device, wherein the response is based on a type of the request to access the particular data object received from the client device. - View Dependent Claims (5, 6)
-
-
7. A non-transitory machine readable medium having stored thereon instructions for performing a method comprising machine executable code which when executed by at least one machine, causes the machine to:
-
provide a layer of indirection between storage locations of data objects and path names of the data objects so that the path names of the data objects are independent of the storage locations of the data objects; receive a request from a client device to access a particular one of the data objects, the request comprising one of the path names of the particular data object; obtain a location-independent object identifier of the particular data object from a path namespace using the path name of the particular data object, wherein the path namespace includes a mapping between the path names of the data objects and corresponding location-independent object identifiers of the data objects; locate the particular data object using the location-independent object identifier of the particular data object to look up a location identifier of the particular data object in a multi-level hierarchical mapping structure, wherein different portions of the location-independent object identifier are used to identify respective entries in different levels of the multi-level hierarchical mapping structure; and access the particular data object using the location identifier and returning a response to the client device, wherein the response is based on a type of the request to access the particular data object received from the client device. - View Dependent Claims (8, 9)
-
Specification