Metadata subsystem for a distributed object store in a network storage system
AssigneeNetApp, Inc.
InventorsGaurav Makkar, Sudhir Srinivasan, Ravi Kavuri
Life of this patent
Estimating the term…
Abstract
A network storage server system includes a distributed object store and a metadata subsystem. The metadata subsystem stores metadata relating to the stored data objects and allows data objects to be located and retrieved easily via user-specified search queries. It manages and allows searches on at least three categories of metadata via the same user interface and technique. These categories include user-specified metadata, inferred metadata and system-defined metadata. Search queries for the metadata can include multi-predicate queries.
Claims32
A method, comprising:
- maintaining a distributed object store to store a plurality of data objects in a network storage system, wherein a first data object of the plurality of data objects is accessed using a first global object identification (ID) that uniquely identifies the first data object in the distributed object store and a first location ID associated with the first global object ID that identifies a storage location of the first data object in the distributed object store;
- and
- operating a metadata subsystem in the network storage system to store and retrieve metadata of a plurality of types, relating to the plurality of data objects, the plurality of types of metadata including system defined metadata, inferred metadata and user-defined metadata, and further operating the metadata subsystem to search the metadata of the plurality of types to identify a set of the data objects that satisfy a user-specified search query, the operating the metadata subsystem to identify the set of the data objects including:
- retrieving a first metadata from the search query,
- retrieving a metadata subsystem-specific object ID of a target data object of the set of the data objects from a first mapping based on a value of the first metadata, the first mapping containing a mapping of a plurality of metadata subsystem-specific object IDs and values of metadata of the set of the data objects,
- retrieving, based on the metadata subsystem-specific object ID and from a second mapping, a second global object ID of the target data object, the second mapping containing a mapping of the plurality of metadata subsystem-specific object IDs and a plurality of global object IDs of the set of the data objects, and
- obtaining the target data object from the distributed object store using the second global object ID and an associated second location ID.
A network storage server node comprising:
- a network module using which the node can communicate with a network storage client;
- a data module using which the node can manage a persistent storage subsystem;
- and
- a management host configured to provide management services of the network storage server node and to interface with an external administrative user, the management host including a metadata subsystem to store and retrieve metadata of a plurality of types, relating to a plurality of data objects stored in a distributed object store implemented at least partially in the persistent storage subsystem, the plurality of types of metadata including system defined metadata, inferred metadata and user-defined metadata, the metadata subsystem further being capable of searching the metadata of the plurality of types to identify a set of the data objects that satisfy a user-specified search query, the searching to identify the set of the data objects including:
- retrieving a first metadata from the search query,
- retrieving a metadata subsystem-specific object ID of a target data object of the set of the data objects from a first mapping based on a value of the first metadata, the first mapping containing a mapping of a plurality of metadata subsystem-specific object IDs and values of metadata of the set of the data objects,
- retrieving, based on the metadata subsystem-specific object ID and from a second mapping, a global object ID of the target data object, the second mapping containing a mapping of the plurality of metadata subsystem-specific object IDs and a plurality of global object IDs of the set of the data objects, and
- obtaining the target data object from the distributed object store using the global object ID and an associated location ID.
A network storage server node comprising:
- a network adapter through which to receive a data access request from a storage client via a network;
- a storage adapter through which to access a persistent storage subsystem;
- a memory;
- and
- a processor coupled to the memory and implementing a metadata subsystem, to store and retrieve metadata of a plurality of types, relating to a plurality of data objects stored in a distributed object store implemented at least partially in said persistent storage subsystem, the plurality of types of metadata including system defined metadata, inferred metadata and user-defined metadata, the metadata subsystem being configured to search metadata of the plurality of types to identify a set of the data objects that satisfy a user-specified search query, the metadata subsystem configured to perform the search to identify the set of the data objects including:
- retrieving a first metadata from the search query,
- retrieving a metadata subsystem-specific object ID of a target data object of the set of the data objects from a first mapping based on a value of the first metadata, the first mapping containing a mapping of a plurality of metadata subsystem-specific object IDs and values of metadata of the set of the data objects,
- retrieving, based on the metadata subsystem-specific object ID and from a second mapping, a global object ID of the target data object, the second mapping containing a mapping of the plurality of metadata subsystem-specific object IDs and a plurality of global object IDs of the set of the data objects, and
- obtaining the target data object from the distributed object store using the global object ID and an associated location ID.
A network storage system comprising:
- a distributed object store to store a plurality of data objects, the distributed object store implemented in a plurality of storage nodes of a network storage system;
- means for storing and retrieving metadata of a plurality of types, relating to the data objects, the plurality of types of metadata including system defined metadata, inferred metadata and user-defined metadata;
- and
- means for identifying a set of the data objects that satisfy a user-specified search query by searching the metadata of the plurality of types, the identifying the set of the data objects including:
- retrieving a first metadata from the search query,
- retrieving a metadata subsystem-specific object ID of a target data object of the set of the data objects from a first mapping based on a value of the first metadata, the first mapping containing a mapping of a plurality of metadata subsystem-specific object IDs and values of metadata of the set of the data objects,
- retrieving, based on the metadata subsystem-specific object ID and from a second mapping, a global object ID of the target data object, the second mapping containing a mapping of the plurality of metadata subsystem-specific object IDs and a plurality of global object IDs of the set of the data objects, and
- obtaining the target data object from the distributed object store using the global object ID and an associated location ID.
Dependencies are inferred from the claim text.