Method for data retrieval from a distributed data storage system
First Claim
1. A method for requesting data, the method comprising:
- sending a multicast message that requests data to a plurality of storage nodes in a data storage system, wherein the data storage system operates without the use of permanent master storage nodes, and the multicast message includes a data identifier used to uniquely identify the requested data within the data storage system;
receiving a plurality of responses to the multicast message, wherein the plurality of responses comprise a first response from a first storage node and a second response from a second storage node, the first response comprises a first instance of the requested data and an indication of first version data associated with the first instance of the requested data, and the second response comprises a second instance of the requested data and an indication of second version data associated with the second instance of the requested data;
analyzing the first and second instances of the requested data to determine whether one or more of the first instance of the requested data or the second instance of the second data have met a desired integrity level;
determining that the first instance of the requested data corresponds to a correct version of the requested data based on the first version data being associated with a version of the requested data that is stored on a majority of the data storage nodes that store the requested data, wherein the first version data comprises a version number associated with the first instance of the requested data and an indication of an application programming interface (API) that last modified the first instance of the requested data; and
selecting the first instance of the requested data based on the first instance of the requested data being stored on a majority of the data storage nodes that store the requested data, and discarding the second instance of the requested data based on the second instance of the requested data being stored on less than a majority of the data storage nodes that store the requested data.
1 Assignment
0 Petitions
Accused Products
Abstract
There is provided a method and server for retrieving data from a data storage system including a plurality of storage nodes. The method may include sending a multicast message to at least a subset of the storage nodes. The multicast message may include a request for the subset of storage nodes to send the data. The multicast message may further include a data identifier, indicating the data to be retrieved. Moreover, the method may include receiving data from a first storage node of the subset of storage nodes. The data received from the first storage node may correspond to the requested data. At least the act of sending a multicast message or the act of receiving data from the first storage node may be performed on a condition that an estimated size of the data is less than a predetermined value.
-
Citations
19 Claims
-
1. A method for requesting data, the method comprising:
-
sending a multicast message that requests data to a plurality of storage nodes in a data storage system, wherein the data storage system operates without the use of permanent master storage nodes, and the multicast message includes a data identifier used to uniquely identify the requested data within the data storage system; receiving a plurality of responses to the multicast message, wherein the plurality of responses comprise a first response from a first storage node and a second response from a second storage node, the first response comprises a first instance of the requested data and an indication of first version data associated with the first instance of the requested data, and the second response comprises a second instance of the requested data and an indication of second version data associated with the second instance of the requested data; analyzing the first and second instances of the requested data to determine whether one or more of the first instance of the requested data or the second instance of the second data have met a desired integrity level; determining that the first instance of the requested data corresponds to a correct version of the requested data based on the first version data being associated with a version of the requested data that is stored on a majority of the data storage nodes that store the requested data, wherein the first version data comprises a version number associated with the first instance of the requested data and an indication of an application programming interface (API) that last modified the first instance of the requested data; and selecting the first instance of the requested data based on the first instance of the requested data being stored on a majority of the data storage nodes that store the requested data, and discarding the second instance of the requested data based on the second instance of the requested data being stored on less than a majority of the data storage nodes that store the requested data. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A server for accessing a data storage system, the server comprising a processor configured, at least in part, to:
-
send a multicast message that requests data to a plurality of storage nodes in the data storage system, wherein the data storage system operates without the use of permanent master storage nodes, and the multicast message includes a data identifier used to uniquely identify the requested data within the data storage system; receive a plurality of responses to the multicast message, wherein the plurality of responses comprise a first response from a first storage node and a second response from a second storage node, the first response comprises a first instance of the requested data and an indication of first version data associated with the first instance of the requested data, and the second response comprises a second instance of the requested data and an indication of second version data associated with the second instance of the requested data; analyze the first and second instances of the requested data to determine whether one or more of the first instance of the requested data or the second instance of the second data have met a desired integrity level; determine that the first instance of the requested data corresponds to a correct version of the requested data based on the first version data being associated with a version of the requested data that is stored on a majority of the data storage nodes that store the requested data, wherein the first version data comprises a version number associated with the first instance of the requested data and an indication of an application programming interface (API) that last modified the first instance of the requested data; and select the first instance of the requested data based on the first instance of the requested data being stored on a majority of the data storage nodes that store the requested data, and discarding the second instance of the requested data based on the second instance of the requested data being stored on less than a majority of the data storage nodes that store the requested data. - View Dependent Claims (8, 9, 10, 11, 12, 17)
-
-
13. A storage node of a data storage system, the storage node comprising a processor configured, at least in part, to:
-
send a multicast message that requests data to a plurality of other storage nodes in the data storage system, wherein the data storage system operates without the use of permanent master storage nodes, and the multicast message includes a data identifier used to uniquely identify the requested data within the data storage system; receive a plurality of responses to the multicast message, wherein the plurality of responses comprise a first response from a first storage node and a second response from a second storage node, the first response comprises a first instance of the requested data and an indication of first version data associated with the first instance of the requested data, and the second response comprises a second instance of the requested data and an indication of second version data associated with the second instance of the requested data; analyze the first and second instances of the requested data to determine whether one or more of the first instance of the requested data or the second instance of the second data have met a desired integrity level; determine that the first instance of the requested data corresponds to a correct version of the requested data based on the first version data being associated with a version of the requested data that is stored on a majority of the data storage nodes that store the requested data, wherein the first version data comprises a version number associated with the first instance of the requested data and an indication of an application programming interface (API) that last modified the first instance of the requested data; and select the first instance of the requested data based on the first instance of the requested data being stored on a majority of the data storage nodes that store the requested data, and discarding the second instance of the requested data based on the second instance of the requested data being stored on less than a majority of the data storage nodes that store the requested data. - View Dependent Claims (14, 15, 16, 18, 19)
-
Specification