TOKEN-BASED ADMISSION CONTROL FOR REPLICATED WRITES
First Claim
Patent Images
1. A method, comprising:
- storing, corresponding to a logical partition of a data object comprising one or more logical partitions, a master replica of the logical partition and one or more slave replicas of the logical partition, wherein writes to the logical partition are replicated at the master replica and at least one slave replica in accordance with a replication policy;
storing, corresponding to the master replica, a master bucket set comprising one or more buckets, and a slave-snapshot bucket set comprising one or more buckets, wherein each bucket of the master bucket set and the slave-snapshot bucket set (a) comprises a respective refillable collection of tokens usable to limit throughput of operations directed at the logical partition and (b) has a token consumption policy indicating a number of tokens to be consumed for an allowed operation;
updating a token population of a particular bucket of the slave-snapshot bucket set based at least in part on a slave bucket update protocol, wherein, in accordance with the slave bucket update protocol, the master replica is configured to obtain an indication of an available throughput capacity at a shared storage device at which at least a portion of data of a particular slave replica of the one or more slave replicas is stored, wherein the shared storage device is configurable to store data corresponding to one or more logical partitions of one or more data objects;
in response to receiving a write request directed to the logical partition,determining whether the write request is to be accepted for execution based at least in part on whether a sufficient number of tokens is available in at least one bucket set of the master bucket set and the slave-snapshot bucket set, in accordance with respective token consumption policies of the buckets of the master bucket set and the slave-snapshot bucket set; and
in response to determining that the write request is to be accepted for execution, initiating one or more data modification operations corresponding to the write request.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus for token-based admission control for replicated writes are disclosed. Data objects are divided into partitions, and corresponding to each partition, at least a master replica and a slave replica are stored. A determination as to whether to accept a write request directed to the partition is made based at least in part on one or more of (a) available throughput capacity at the master replica, and (b) an indication, obtained using a token-based protocol, of available throughput capacity at the slave replica. If the write request is accepted, one or more data modification operations are initiated.
-
Citations
26 Claims
-
1. A method, comprising:
-
storing, corresponding to a logical partition of a data object comprising one or more logical partitions, a master replica of the logical partition and one or more slave replicas of the logical partition, wherein writes to the logical partition are replicated at the master replica and at least one slave replica in accordance with a replication policy; storing, corresponding to the master replica, a master bucket set comprising one or more buckets, and a slave-snapshot bucket set comprising one or more buckets, wherein each bucket of the master bucket set and the slave-snapshot bucket set (a) comprises a respective refillable collection of tokens usable to limit throughput of operations directed at the logical partition and (b) has a token consumption policy indicating a number of tokens to be consumed for an allowed operation; updating a token population of a particular bucket of the slave-snapshot bucket set based at least in part on a slave bucket update protocol, wherein, in accordance with the slave bucket update protocol, the master replica is configured to obtain an indication of an available throughput capacity at a shared storage device at which at least a portion of data of a particular slave replica of the one or more slave replicas is stored, wherein the shared storage device is configurable to store data corresponding to one or more logical partitions of one or more data objects; in response to receiving a write request directed to the logical partition, determining whether the write request is to be accepted for execution based at least in part on whether a sufficient number of tokens is available in at least one bucket set of the master bucket set and the slave-snapshot bucket set, in accordance with respective token consumption policies of the buckets of the master bucket set and the slave-snapshot bucket set; and in response to determining that the write request is to be accepted for execution, initiating one or more data modification operations corresponding to the write request. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system, comprising:
-
one or more processors; and a memory coupled to the one or more processors and storing program instructions that when executed by the one or more processors cause the one or more processors to perform; storing, corresponding to a master replica of a logical partition of one or more logical partitions of a data object, a master bucket set comprising one or more buckets and a slave-snapshot bucket set comprising one or more buckets, wherein each bucket of the master bucket set and the slave-snapshot bucket set comprises a respective collection of tokens usable to limit throughput of write operations directed at the logical partition; updating a token population of a particular bucket of the slave-snapshot bucket set based at least in part on an indication of an available throughput capacity at a shared storage device at which at least a portion of data of a particular slave replica of the logical partition is stored; in response to receiving a write request directed to the logical partition, determining whether the write request is to be accepted for execution based at least in part on whether a sufficient number of tokens is available in at least one bucket set of (a) the master bucket set and (b) the slave-snapshot bucket set in accordance with respective token consumption policies of the buckets of the master bucket set and the slave-snapshot bucket set; and in response to determining that the write request is to be accepted for execution, initiating one or more data modification operations corresponding to the write request. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors cause the one or more processors to perform:
-
storing, corresponding to a logical partition of a data object, a master replica and one or more slave replicas including a particular slave replica, wherein the master replica comprises data stored on a first storage device and the particular slave replica comprises data stored on a second storage device; receiving a write request directed to at least a portion of the logical partition; determining whether to accept the write request for execution based at least in part on one or more of (a) available throughput capacity at the master replica, and (b) an indication, obtained using a token-based protocol, of available throughput capacity at the particular slave replica; in response to accepting the write request for execution, initiating one or more data modification operations corresponding to the write request. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
-
Specification