Scaling stateful clusters while maintaining access
First Claim
Patent Images
1. A distributed storage system, comprising:
- a first plurality of storage nodes implemented via respective processors and memory that together implement a storage cluster that stores data for a client, wherein the data is segmented across the plurality of storage nodes;
a control plane for the distributed storage system, implemented via one or more processors and memory to;
detect a scaling event for the storage cluster;
in response to the detection of the scaling event;
adjust the storage cluster to include an adjusted number of storage nodes that is different than the first plurality of storage nodes according to the scaling event;
provide an indication of the scaling event to a leader node for the storage cluster;
the leader node for the storage cluster, implemented via one or more processors and memory to;
receive the indication of the scaling event;
in response to the receipt of the scaling event,logically reassign responsibility for processing access requests for the data across the adjusted number of storage nodes in the adjusted storage cluster according to a monotone distribution scheme before the data is moved to the adjusted number of storage nodes;
at least one of the adjusted number of storage nodes in the adjusted storage cluster to physically redistribute the data, comprising;
obtain, in response to receipt of an access request distributed according to the logically reassigned responsibility, a portion of data from at least one of the first plurality of storage nodes that maintains a segment of the data in order to process the access request; and
store the obtained portion of the data;
the adjusted storage cluster to process access requests for the data at the number of storage nodes in the adjusted storage cluster according to the monotone distribution scheme, wherein prior to making the adjusted storage cluster available, the plurality of storage nodes are available to process other access requests for the data as segmented across the plurality of storage nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
A stateful cluster may implement scaling of the stateful cluster while maintaining access to the state of the stateful cluster. A scaling event for a stateful cluster may be detected, and in response the stateful cluster may be adjusted to include a different number of nodes. The state of the cluster may then be logically distributed among the different number of nodes according to a monotone distribution scheme. The adjusted node may then service access requests according to the monotone distribution scheme. Prior to making the adjusted storage cluster available for servicing access requests, the nodes from the original cluster may still service access requests for state.
61 Citations
20 Claims
-
1. A distributed storage system, comprising:
-
a first plurality of storage nodes implemented via respective processors and memory that together implement a storage cluster that stores data for a client, wherein the data is segmented across the plurality of storage nodes; a control plane for the distributed storage system, implemented via one or more processors and memory to; detect a scaling event for the storage cluster; in response to the detection of the scaling event; adjust the storage cluster to include an adjusted number of storage nodes that is different than the first plurality of storage nodes according to the scaling event; provide an indication of the scaling event to a leader node for the storage cluster; the leader node for the storage cluster, implemented via one or more processors and memory to; receive the indication of the scaling event; in response to the receipt of the scaling event, logically reassign responsibility for processing access requests for the data across the adjusted number of storage nodes in the adjusted storage cluster according to a monotone distribution scheme before the data is moved to the adjusted number of storage nodes; at least one of the adjusted number of storage nodes in the adjusted storage cluster to physically redistribute the data, comprising; obtain, in response to receipt of an access request distributed according to the logically reassigned responsibility, a portion of data from at least one of the first plurality of storage nodes that maintains a segment of the data in order to process the access request; and store the obtained portion of the data; the adjusted storage cluster to process access requests for the data at the number of storage nodes in the adjusted storage cluster according to the monotone distribution scheme, wherein prior to making the adjusted storage cluster available, the plurality of storage nodes are available to process other access requests for the data as segmented across the plurality of storage nodes. - View Dependent Claims (2, 3, 4)
-
-
5. A method, comprising:
performing, by a plurality of computing devices; maintaining state segmented across a stateful cluster that comprises a first plurality of nodes maintaining the state; detecting a scaling event for the stateful cluster; in response to detecting the scaling event; adjusting the stateful cluster to include a number of nodes that is different than the first plurality of nodes according to the scaling event; logically reassigning responsibility for the state across the number of nodes in the adjusted stateful cluster according to a monotone distribution scheme before moving the state to the number of nodes; physically redistributing, by at least one node of the adjusted stateful cluster, the state, comprising; obtaining, in response to receiving an access request distributed according to the logically reassigned responsibility, a portion of state from at least one of the first plurality of nodes according to a segmentation of the state across the first plurality of nodes as maintained prior to the scaling event in order to process access requests; and storing the obtained portion of the state; and processing access requests for the state at the number of nodes in the adjusted stateful cluster according to the monotone distribution scheme, wherein prior to making the adjusted stateful cluster available, the plurality of nodes are available to process other access requests for the state as segmented across the plurality of nodes. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13)
-
14. A non-transitory, computer-readable storage medium, storing program instructions that when executed by one or more computing devices cause the one or more computing devices to implement:
-
maintaining data for a storage client that is segmented across a storage cluster that comprises a first plurality of storage nodes; detecting a scaling event for the storage cluster; and in response to detecting the scaling event; adjusting the storage cluster to include a number of storage nodes that is different than the plurality of storage nodes according to the scaling event; logically reassigning responsibility for the data across the number of storage nodes in the adjusted storage cluster according to a monotone distribution scheme before moving the data to the number of storage nodes; physically redistributing the data, comprising; obtaining, in response to receiving an access request distributed according to the logically reassigned responsibility, by at least one of the number of storage nodes in the adjusted storage cluster, a portion of data from at least one of the first plurality of storage nodes maintaining a segment of the data in order to process access requests; and storing, by the at least one storage node, the portion of the data; and processing access requests for the data at the number of storage nodes in the adjusted storage cluster according to the monotone distribution scheme, wherein prior to making the adjusted storage cluster available, the plurality of storage nodes are available to process other access requests for the data as segmented across the plurality of storage nodes. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification