Distributed data storage grouping
First Claim
1. An apparatus comprising a processor component and a storage to store instructions that, when executed by the processor component, cause the processor component to perform operations comprising:
- receive, at a node device of multiple node devices, and from a control device via a network, a node device identifier of a set of node device identifiers assigned by the control device to multiple node devices, wherein;
the set of node device identifiers defines an ascending or descending series of numerical values that define an ordering among the multiple node devices; and
the ordering among the node devices defines a corresponding ordering among subsets of multiple blocks of data of a data set that are distributed among the multiple node devices;
transmit, to the control device via the network, an indication of a total size of a first subset of the multiple blocks of data that is stored within the storage of the node device;
receive, from the control device via the network, a block exchange instruction for the node device to participate in a performance of a set of block exchanges in which at least one node device of the multiple node devices serves as a source device to transmit one of the subsets of the multiple blocks of data to another node device of the multiple node devices that serves as a target node device; and
in response to the block exchange instruction comprising an indication that the node device is to serve as a target node to receive a second subset of the multiple blocks of data from another node device that serves as a source node device in the set of block exchanges, the processor component is caused to perform operations comprising;
receive, from the source node device via the network, the second subset;
store the second subset in the storage;
as part of a registration of the multiple blocks of data by the multiple node devices, transmit, to the control device via the network, an indication of a size of each block of data, or of each sub-block of each block of data, of the first subset and of the second subset, and in an order among the blocks of data of the first subset and the second subset that corresponds to an ordering among the multiple blocks of data that corresponds to the ordering among the multiple node devices;
group, by the processor component, the blocks of data of the first subset and the second subset into multiple segments of the data set in an order within each segment of the multiple segments and in an order among the multiple segments that corresponds to the ordering among the multiple blocks of data, wherein each segment of the multiple segments is formed to have a size that meets a minimum threshold size imposed on units of data that are transmitted to one or more storage devices;
transmit, to the one or more storage devices via the network, the multiple segments;
receive, from the one or more storage devices via the network, multiple segment identifiers, wherein each segment identifier of the multiple segment identifiers corresponds to a segment of the multiple segments; and
transmit, to the control device via the network, the multiple segment identifiers in an order that corresponds to the ordering among the multiple segments.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus includes a processor component to receive a node device identifier defining an ordering among multiple node devices and among multiple blocks of data distributed among the multiple node devices, and transmit a size of a first subset of the multiple blocks stored within the node device to a control device. In response to receiving instructions to receive a second subset from another node device, perform operations including: receive and store the second subset; group the blocks of data of the first and second subsets into multiple segments in an order that corresponds to the ordering among the multiple blocks, wherein each segment is sized to fit minimum and maximum sizes for transmission to storage device(s); transmit the multiple segments to the storage device(s); and relay multiple segment identifiers from the storage device(s) to the control device in an order corresponding to the ordering among the multiple segments.
17 Citations
30 Claims
-
1. An apparatus comprising a processor component and a storage to store instructions that, when executed by the processor component, cause the processor component to perform operations comprising:
-
receive, at a node device of multiple node devices, and from a control device via a network, a node device identifier of a set of node device identifiers assigned by the control device to multiple node devices, wherein; the set of node device identifiers defines an ascending or descending series of numerical values that define an ordering among the multiple node devices; and the ordering among the node devices defines a corresponding ordering among subsets of multiple blocks of data of a data set that are distributed among the multiple node devices; transmit, to the control device via the network, an indication of a total size of a first subset of the multiple blocks of data that is stored within the storage of the node device; receive, from the control device via the network, a block exchange instruction for the node device to participate in a performance of a set of block exchanges in which at least one node device of the multiple node devices serves as a source device to transmit one of the subsets of the multiple blocks of data to another node device of the multiple node devices that serves as a target node device; and in response to the block exchange instruction comprising an indication that the node device is to serve as a target node to receive a second subset of the multiple blocks of data from another node device that serves as a source node device in the set of block exchanges, the processor component is caused to perform operations comprising; receive, from the source node device via the network, the second subset; store the second subset in the storage; as part of a registration of the multiple blocks of data by the multiple node devices, transmit, to the control device via the network, an indication of a size of each block of data, or of each sub-block of each block of data, of the first subset and of the second subset, and in an order among the blocks of data of the first subset and the second subset that corresponds to an ordering among the multiple blocks of data that corresponds to the ordering among the multiple node devices; group, by the processor component, the blocks of data of the first subset and the second subset into multiple segments of the data set in an order within each segment of the multiple segments and in an order among the multiple segments that corresponds to the ordering among the multiple blocks of data, wherein each segment of the multiple segments is formed to have a size that meets a minimum threshold size imposed on units of data that are transmitted to one or more storage devices; transmit, to the one or more storage devices via the network, the multiple segments; receive, from the one or more storage devices via the network, multiple segment identifiers, wherein each segment identifier of the multiple segment identifiers corresponds to a segment of the multiple segments; and transmit, to the control device via the network, the multiple segment identifiers in an order that corresponds to the ordering among the multiple segments. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, the computer-program product including instructions operable to cause a processor component to perform operations comprising:
-
receive, at a node device of multiple node devices, and from a control device via a network, a node device identifier of a set of node device identifiers assigned by the control device to multiple node devices, wherein; the set of node device identifiers defines an ascending or descending series of numerical values that define an ordering among the multiple node devices; and the ordering among the node devices defines a corresponding ordering among subsets of multiple blocks of data of a data set that are distributed among the multiple node devices; transmit, to the control device via the network, an indication of a total size of a first subset of the multiple blocks of data that is stored within the storage of the node device; receive, from the control device via the network, a block exchange instruction for the node device to participate in a performance of a set of block exchanges in which at least one node device of the multiple node devices serves as a source device to transmit one of the subsets of the multiple blocks of data to another node device of the multiple node devices that serves as a target node device; and in response to the block exchange instruction comprising an indication that the node device is to serve as a target node to receive a second subset of the multiple blocks of data from another node device that serves as a source node device in the set of block exchanges, the processor component is caused to perform operations comprising; receive, from the source node device via the network, the second subset; store the second subset in the storage; as part of a registration of the multiple blocks of data by the multiple node devices, transmit, to the control device via the network, an indication of a size of each block of data, or of each sub-block of each block of data, of the first subset and of the second subset, and in an order among the blocks of data of the first subset and the second subset that corresponds to an ordering among the multiple blocks of data that corresponds to the ordering among the multiple node devices; group, by the processor component, the blocks of data of the first subset and the second subset into multiple segments of the data set in an order within each segment of the multiple segments and in an order among the multiple segments that corresponds to the ordering among the multiple blocks of data, wherein each segment of the multiple segments is formed to have a size that meets a minimum threshold size imposed on units of data that are transmitted to one or more storage devices; transmit, to the one or more storage devices via the network, the multiple segments; receive, from the one or more storage devices via the network, multiple segment identifiers, wherein each segment identifier of the multiple segment identifiers corresponds to a segment of the multiple segments; and transmit, to the control device via the network, the multiple segment identifiers in an order that corresponds to the ordering among the multiple segments. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer-implemented method comprising:
-
receiving, by a processor component at a node device of multiple node devices, and from a control device via a network, a node device identifier of a set of node device identifiers assigned by the control device to multiple node devices, wherein; the set of node device identifiers defines an ascending or descending series of numerical values that define an ordering among the multiple node devices; and the ordering among the node devices defines a corresponding ordering among subsets of multiple blocks of data of a data set that are distributed among the multiple node devices; transmitting, by the processor component to the control device via the network, an indication of a total size of a first subset of the multiple blocks of data that is stored within the storage of the node device; receiving, by the processor component from the control device via the network, a block exchange instruction for the node device to participate in a performance of a set of block exchanges in which at least one node device of the multiple node devices serves as a source device to transmit one of the subsets of the multiple blocks of data to another node device of the multiple node devices that serves as a target node device; and in response to the block exchange instruction comprising an indication that the node device is to serve as a target node to receive a second subset of the multiple blocks of data from another node device that serves as a source node device in the set of block exchanges, performing operations comprising; receiving, by the processor component from the source node device via the network, the second subset; storing the second subset in the storage; as part of a registration of the multiple blocks of data by the multiple node devices, transmitting, by the processor component to the control device via the network, an indication of a size of each block of data, or of each sub-block of each block of data, of the first subset and of the second subset, and in an order among the blocks of data of the first subset and the second subset that corresponds to an ordering among the multiple blocks of data that corresponds to the ordering among the multiple node devices; grouping, by the processor component, the blocks of data of the first subset and the second subset into multiple segments of the data set in an order within each segment of the multiple segments and in an order among the multiple segments that corresponds to the ordering among the multiple blocks of data, wherein each segment of the multiple segments is formed to have a size that meets a minimum threshold size imposed on units of data that are transmitted to one or more storage devices; transmitting, by the processor component to the one or more storage devices via the network, the multiple segments; receiving, by the processor component from the one or more storage devices via the network, multiple segment identifiers, wherein each segment identifier of the multiple segment identifiers corresponds to a segment of the multiple segments; and transmitting, by the processor component to the control device via the network, the multiple segment identifiers in an order that corresponds to the ordering among the multiple segments. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification