Patent ID: 8832154

Claim:
A method comprising: in a network storage server system, storing a plurality of data objects which are sub-volume level data objects; in the network storage server system, providing a layer of indirection between storage locations of the data objects and at least one of path names of the data objects, or object identifiers of the data objects, so that the path names and/or object identifiers of the data objects are independent of the storage locations of the data objects, wherein providing the layer of indirection includes: implementing, in the network storage system, a first mapping structure that represents mappings between location-independent object identifiers of the plurality of data objects and corresponding location identifiers of the plurality of data objects; and implementing, in the network storage server system, a path namespace associated with the plurality of data objects, wherein the path namespace includes a second mapping structure that represents a mapping between the path names of the plurality of data objects and corresponding location-independent object identifiers of the plurality of data objects; wherein the path namespace in conjunction with the first mapping structure provides a multilevel mapping between path names of the plurality of data objects and corresponding location identifiers of the plurality of data objects; in the network storage server system, receiving from one of a plurality of storage clients a request that includes a path name of a particular data object of the plurality of data objects; using the path name to look up an entry in the path namespace; and retrieving from said entry in the path namespace the location-independent object identifier of the particular data object; locating the particular data object by using the location-independent object identifier of the particular data object to look up a location identifier of the particular data object in the first mapping structure, wherein the first mapping structure is a multilevel hierarchical structure, and wherein using the location-independent object identifier of the particular data object to look up a location identifier of the particular data object in the multilevel hierarchical structure comprises: using a first portion of the location-independent object identifier of the data object to identify a first entry in a first level of the multilevel hierarchical structure; using a second portion of the location-independent object identifier of the data object to identify a second entry in a second level of the multilevel hierarchical structure, the second entry being descendent from the first entry in the multilevel hierarchical structure; and retrieving the location identifier of the particular data object from the second entry.