Distributed data storage
First Claim
1. A method for maintaining data in a data storage system that includes a plurality of data storage nodes, the method being employed in a first data storage node in the data storage system, the method comprising:
- the first data storage node monitoring two or more other storage nodes, wherein a node list stored at the first data storage node indicates that the two or more other storage nodes are members of a storage group, the first data storage node is also a member of the storage group, and each member of the storage group is configured to monitor the other members of the storage group in order to determine whether locally stored data needs to be replicated among the members of the storage group;
the first data storage node detecting, based on the monitoring, conditions in the data storage system that indicate that at least one storage node included on the node list is malfunctioning;
the first data storage node performing a local search of host lists stored on the first data storage node, and the first storage node determining that a data entity that is stored on the first data storage node is to be replicated based on a host list for the data entity indicating that the data entity was stored on the at least one malfunctioning storage node, wherein the host list for the data entity comprises an associated list identifying a subset of storage nodes within the storage group that store the data entity, and each of a plurality of data entities that are stored on the data storage node are associated with a corresponding host list that indicates which storage nodes store a corresponding data entity; and
the first data storage node initiating a replication process for the data entity based on detecting that the at least one storage node is malfunctioning and the host list for the data entity indicating that the data entity was stored on the at least one malfunctioning storage node.
3 Assignments
0 Petitions
Accused Products
Abstract
The present invention relates to a distributed data storage system comprising a plurality of storage nodes. Using unicast and multicast transmission, a server application may read and write data in the storage system. Each storage node may monitor reading and writing operations on the system as well as the status of other storage nodes. In this way, the storage nodes may detect a need for replication of files on the system, and may carry out a replication process that serves to maintain a storage of a sufficient number of copies of files with correct versions at geographically diverse locations.
-
Citations
20 Claims
-
1. A method for maintaining data in a data storage system that includes a plurality of data storage nodes, the method being employed in a first data storage node in the data storage system, the method comprising:
-
the first data storage node monitoring two or more other storage nodes, wherein a node list stored at the first data storage node indicates that the two or more other storage nodes are members of a storage group, the first data storage node is also a member of the storage group, and each member of the storage group is configured to monitor the other members of the storage group in order to determine whether locally stored data needs to be replicated among the members of the storage group; the first data storage node detecting, based on the monitoring, conditions in the data storage system that indicate that at least one storage node included on the node list is malfunctioning; the first data storage node performing a local search of host lists stored on the first data storage node, and the first storage node determining that a data entity that is stored on the first data storage node is to be replicated based on a host list for the data entity indicating that the data entity was stored on the at least one malfunctioning storage node, wherein the host list for the data entity comprises an associated list identifying a subset of storage nodes within the storage group that store the data entity, and each of a plurality of data entities that are stored on the data storage node are associated with a corresponding host list that indicates which storage nodes store a corresponding data entity; and the first data storage node initiating a replication process for the data entity based on detecting that the at least one storage node is malfunctioning and the host list for the data entity indicating that the data entity was stored on the at least one malfunctioning storage node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A data storage node for maintaining data in a data storage system that includes a plurality of data storage nodes, the data storage node comprising a processor configured to:
-
monitor two or more other storage nodes, wherein a node list stored at the data storage node indicates that the two or more other storage nodes are members of a storage group, the data storage node is also a member of the storage group, and each member of the storage group is configured to monitor the other members of the storage group in order to determine whether locally stored data needs to be replicated among the members of the storage group; detect, based on the monitoring, conditions in the data storage system that indicate that at least one storage node included on the node list is malfunctioning; perform a local search of host lists stored on the data storage node; determine that a data entity that is stored on the data storage node is to be replicated based on a host list for the data entity indicating that the data entity was stored on the at least one malfunctioning storage node, wherein the host list for the data entity comprises an associated list identifying a subset of storage nodes within the storage group that store the data entity, and each of a plurality of data entities that are stored on the data storage node are associated with a corresponding host list that indicates which storage nodes store a corresponding data entity; and initiate a replication process for the data entity based on detecting that the at least one storage node is malfunctioning and the host list for the data entity indicating that the data entity was stored on the at least on malfunctioning storage node. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A data storage system comprising at least three data storage nodes organized as a storage group, wherein each data storage node in the storage group comprises a processor configured to:
-
monitor two or more other storage nodes, wherein a node list stored at the data storage node indicates that the two or more other storage nodes are members of the storage group, the data storage node is also a member of the storage group, and each member of the storage group is configured to monitor the other members of the storage group in order to determine whether locally stored data needs to be replicated among the members of the storage group; detect, based on the monitoring, conditions in the data storage system that indicate that at least one storage node included on the node list is malfunctioning; perform a local search of host lists stored on the data storage node; determine that a data entity that is stored on the data storage node is to be replicated based on a host list for the data entity indicating that the data entity was stored on the at least one malfunctioning storage node, wherein the host list for the data entity comprises an associated list identifying a subset of storage nodes within the storage group that store the data entity, and each of a plurality of data entities that are stored on the data storage node are associated with a corresponding host list that indicates which storage nodes store a corresponding data entity; and initiate a replication process for the data entity based on detecting that the at least one storage node is malfunctioning and the host list for the data entity indicating that the data entity was stored on the at least on malfunctioning storage node.
-
Specification