Distributed object store for network-based content repository

US9507799B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9507799-B1
Application numberUS-63372509-A
CountryUS
Kind codeB1
Filing dateDec 8, 2009
Priority dateDec 8, 2009
Publication dateNov 29, 2016
Grant dateNov 29, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: storing a data object in a network storage server system, wherein the data object is a sub-volume level data object; assigning an object identifier to the data object; creating an object handle in the network storage server system, the object handle including the object identifier and a location identifier, the object identifier being independent of a location at which the data object is stored in the network storage server system, the location identifier being indicative of the location at which the data object is stored within the network storage server system, wherein the location identifier is distinct from the object identifier; and engaging in communications between the network storage server system and a storage client regarding the data object by using the object handle, wherein the object identifier that is independent of the location at which the data object is stored in the network storage server system is used to identify the data object in said communications. 2. A method as recited in claim 1 , further comprising: maintaining, in the network storage server system, a data structure representing a mapping between a location-independent object identifier and a corresponding location identifier for each of a plurality of data objects stored by the network storage server system. 3. A method as recited in claim 2 , further comprising: migrating the data object from a first location to a second location; and updating the location identifier for the data object in an entry for the data object in the data structure to correspond to the second location. 4. A method as recited in claim 3 , further comprising: not notifying the storage client of said migrating or said updating at least until the storage client subsequently attempts to access the data object. 5. A method as recited in claim 2 , further comprising: receiving from the storage client, at the network storage server system, a request relating to the data object, the request including the object handle; in response to the request, determining whether a location identifier within the object handle in the request is valid; if the location identifier within the object handle in the request is valid, then using the location identifier within the object handle in the request to access the data object in response to the request; and otherwise, using the object identifier to look up in the data structure a valid location identifier for the data object, and using the valid location identifier to access the data object in response to the request. 6. A method as recited in claim 5 , further comprising: if the location identifier within the object handle in the request is not valid, then sending an updated version of the object handle from the network storage server system to the storage client, the updated version containing the valid location identifier. 7. A method as recited in claim 2 , further comprising: receiving from the storage client, at the network storage server system, a request relating to the data object, the request including an object identifier of the data object but not including a location identifier of the data object; using the object identifier to look up a valid location identifier for the data object; and using the valid location identifier to access the data object. 8. A method as recited in claim 1 , wherein the object handle further includes a policy identifier that identifies a set of one or more data management policies. 9. A method as recited in claim 8 , further comprising: receiving from the storage client, at the network storage server system, a request relating to the data object; in response to the request, using the policy identifier in the object handle to look up the set of one or more data management policies in a data structure; and applying the set of one or more data management policies in response to the request. 10. A method as recited in claim 8 , wherein the set of one or more data management policies has been previously associated with the data object in response to a request from the storage client. 11. A method as recited in claim 10 , wherein the set of one or more data management policies has been previously associated with the data object in response to a request from the storage client to create the data object. 12. A storage server node configured for use in a storage server cluster that includes a plurality of storage server nodes, the storage server node comprising: a processor; a D-module configured to provide backend storage and retrieval of data objects in a nonvolatile mass storage facility; and an N-module configured to provide network communication services to communicate with a storage client over a network, the N-module configured to communicate with the D-module through an interconnect; the storage server node further configured with the ability to: assign a location-independent object identifier to a data object, wherein the data object is a sub-volume level data object, the location-independent object identifier being part of an object handle for the data object, the object handle including, in addition to the location-independent object identifier, a location identifier that indicates the location at which the data object is stored in the storage server cluster, wherein the location identifier is distinct from the object identifier, wherein the storage server cluster and a particular storage client use the object handle to engage in communications regarding the data object; and use the location-independent object identifier included in the object handle to identify the data object in communications with the storage client, the location-independent object identifier being independent of the location at which the data object is stored in the storage server cluster. 13. A storage server node as recited in claim 12 , the storage server node further configured to maintain a data structure representing a mapping between a location-independent object identifier and a corresponding location identifier, for each of a plurality of data objects. 14. A storage server node as recited in claim 13 , the storage server node further configured with the ability to: migrate the data object from a first location to a second location; and update the location identifier for the data object in an entry for the data object in the data structure to correspond to the second location. 15. A storage server node as recited in claim 12 , wherein the object handle further includes a policy identifier that identifies a set of one or more data management policies. 16. A storage server node as recited in claim 15 , the storage server node further configured with the ability to: receive from the storage client a request relating to the data object; in response to the request, use the policy identifier in the object handle to look up the set of one or more data management policies in a data structure; and apply the set of one or more data management policies in response to the request. 17. A storage server node as recited in claim 16 , the storage server node further configured with the ability to associate the data object with the set of one or more data management policies in response to a request from the storage client. 18. A network storage server system comprising: a processor; a network interface through which to communicate with a plurality of storage clients over a network; a storage interface through which to communicate with a nonvolatile mass storage subsystem; and a me

Assignees

Inventors

Classifications

  • G06F16/122Primary

    using management policies (point-in-time backing up or restoration of persistent data G06F11/1446; file migration policies for HSM systems G06F16/185) · CPC title

  • Management specifically adapted to NAS (management of storage area networks [SAN] G06F3/067) · CPC title

  • File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06) · CPC title

  • Details of searching files based on file metadata · CPC title

  • G06F16/183Primary

    Provision of network file services by network file servers, e.g. by using NFS, CIFS (network file access protocols H04L67/1097) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9507799B1 cover?
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 inclu…
Who is the assignee on this patent?
Goodson Garth, Pasupathy Shankar, Voruganti Kaladhar, and 3 more
What technology area does this patent fall under?
Primary CPC classification G06F16/122. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 29 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).