Metadata management for fixed content distributed data storage
First Claim
1. In a redundant array of independent nodes networked together, wherein each node executes an instance of an application that provides object-based storage, a metadata management method, comprising:
- storing metadata objects in a set of regions distributed across the array, wherein a given region is identified by hashing a metadata object attribute and extracting a given set of bits of a resulting hash value;
generating a map that, for each region, identifies a node that stores an authoritative copy of the region and thereby is responsible for receiving and responding to update requests directed to the region, and that further identifies zero or more nodes that each store a backup copy of the region and thereby are capable of acting as backup region copies to the authoritative region copy, wherein the map is generated by the following sub-steps;
performing a census across at least a subset of the independent nodes networked together to determine which regions are located on which nodes currently in the array and, for each such region, a timestamp associated with a last update processed at the region; and
based on the timestamps, deleting obsolete regions to generate the map;
distributing the map across the array of independent nodes so that each node has an identical, global view of where the authoritative and backup region copies are located;
upon receiving a request to update a given metadata object, using the map to identify the authoritative region copy for the metadata object;
processing the update request;
if synchronization between the authoritative region copy and at least one of its associated backup region copies cannot be maintained as the update is processed, issuing a new map so that each node continues to have an identical, global view of where the authoritative and backup region copies are located.
4 Assignments
0 Petitions
Accused Products
Abstract
An archival storage cluster of preferably symmetric nodes includes a metadata management system that organizes and provides access to given metadata, preferably in the form of metadata objects. Each metadata object may have a unique name, and metadata objects are organized into regions. Preferably, a region is selected by hashing one or more object attributes (e.g., the object'"'"'s name) and extracting a given number of bits of the resulting hash value. The number of bits may be controlled by a configuration parameter. Each region is stored redundantly. A region comprises a set of region copies. In particular, there is one authoritative copy of the region, and zero or more backup copies. The number of backup copies may be controlled by a configuration parameter. Region copies are distributed across the nodes of the cluster so as to balance the number of authoritative region copies per node, as well as the number of total region copies per node. Backup region copies are maintained synchronized to their associated authoritative region copy.
-
Citations
20 Claims
-
1. In a redundant array of independent nodes networked together, wherein each node executes an instance of an application that provides object-based storage, a metadata management method, comprising:
-
storing metadata objects in a set of regions distributed across the array, wherein a given region is identified by hashing a metadata object attribute and extracting a given set of bits of a resulting hash value; generating a map that, for each region, identifies a node that stores an authoritative copy of the region and thereby is responsible for receiving and responding to update requests directed to the region, and that further identifies zero or more nodes that each store a backup copy of the region and thereby are capable of acting as backup region copies to the authoritative region copy, wherein the map is generated by the following sub-steps; performing a census across at least a subset of the independent nodes networked together to determine which regions are located on which nodes currently in the array and, for each such region, a timestamp associated with a last update processed at the region; and based on the timestamps, deleting obsolete regions to generate the map; distributing the map across the array of independent nodes so that each node has an identical, global view of where the authoritative and backup region copies are located; upon receiving a request to update a given metadata object, using the map to identify the authoritative region copy for the metadata object; processing the update request; if synchronization between the authoritative region copy and at least one of its associated backup region copies cannot be maintained as the update is processed, issuing a new map so that each node continues to have an identical, global view of where the authoritative and backup region copies are located. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method, operative in a redundant array of independent nodes networked together, wherein metadata objects are stored in a set of regions distributed across the array, and wherein a given region is identified by hashing a metadata object attribute and extracting a given set of bits of a resulting hash value, comprising:
-
generating a map that, for each region, identifies a node that stores an authoritative copy of the region and thereby is responsible for receiving and responding to requests directed to the region, and that further identifies zero or more nodes that each store a backup copy of the region and thereby are capable of acting as backup region copies to the authoritative region copy, wherein the map is generated by the following sub-steps; performing a census across at least a subset of the independent nodes networked together to determine which regions are located on which nodes currently in the array and, for each such region, a timestamp associated with a last update processed at the region; and based on the timestamps, deleting obsolete regions to generate the map; distributing the map across the array of independent nodes so that each node has an identical, global view of where the authoritative and backup region copies are located, wherein, upon its distribution, the map has associated therewith a guarantee that a given authoritative region copy and its associated zero or more backup region copies are deemed to be synchronized; and issuing a new map and distributing the new map across the array if the guarantee cannot continue to be assumed so that each node continues to have an identical, global view of where the authoritative and backup region copies are located. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. An apparatus for use in a redundant array of independent nodes networked together, wherein metadata objects are stored in a set of regions distributed across the array, and wherein a given region is identified by hashing a metadata object attribute and extracting a given set of bits of a resulting hash value, comprising:
-
one or more processors; a virtual machine executed by at least one processor; a database; a map stored in the database, wherein, for each region, the map identifies a node that stores an authoritative copy of the region and thereby is responsible for receiving and responding to update requests directed to the region, and that further identifies zero or more nodes that each store a backup copy of the region and thereby are capable of acting as backup region copies to the authoritative region copy, where the map has associated therewith a guarantee that a given authoritative region copy and its associated zero or more backup region copies are deemed to be synchronized, the map being replaceable by a new map if the guarantee cannot continue to be assumed; one or more region manager processes executed in the virtual machine, wherein a given region copy is associated with its own region manager process; a metadata manager process executed by a processor for generating and managing the one or more region manager processes, wherein the metadata manager process is adapted to assume a leadership role in which it performs a census across at least a subset of the independent nodes networked together to determine which regions are located on which nodes currently in the array and, for each such region, any timestamp associated with a last update processed at the region, the metadata manager process using results of the census to identify obsolete regions to thereby generate the map or the new map, wherein the map or the new map is distributed across the array of independent nodes so that each node can maintain an identical, global view of where the authoritative and backup region copies are located; and a client process executed by a processor for receiving and responding to an update request.
-
Specification