CPC G06F 9/5044 (2013.01) [G06F 2209/501 (2013.01)] | 20 Claims |
1. A system, comprising:
a plurality of storage servers, respectively comprising a first one or more processors and a first memory, that provide committed rates of input/output (TO) operations for a plurality of data volumes on behalf of different users of a network-available data storage service, wherein individual ones of the IO operations are submitted to respective ones of the plurality of storage servers by respective ones of the different users, and wherein the plurality of data volumes comprise a first data volume provisioned for a user of the different users and a second data volume provisioned for another user of the different users;
a plurality of management servers, respectively comprising a second one or more processors and a second memory, that implement a control plane for the network-available data storage service, the control plane configured to:
receive, via an interface for the control plane, a request to commit a rate of IO operations for the first data volume to the user;
evaluate, responsive to receipt of the request, committed rates of TO operations of the plurality of storage servers to:
determine respective rates of unused IO operations committed to the other user for the second data volume based on respective predicted rates of IO operations, submitted by the other user for the second data volume at one or more of the plurality of storage servers, that are less than the respective committed rates of IO operations for the second data volume to predict available IO capacities of the respective one or more of the plurality of storage servers; and
identify a storage server of the plurality of storage servers that:
provides a committed rate of IO operations for the second data volume provisioned for the other user; and
has predicted available IO capacity sufficient to additionally provide at least a portion of the requested rate of IO operations for the first data volume; and
commit, according to the respective predicted available IO capacity, the identified storage server to provide, to the user, the portion of the requested rate of IO operations for the first data volume in addition to the committed rate of IO operations for the second data volume, wherein the committed portion of the requested rate of IO operations for the first data volume and the committed rate of IO operations for the second data volume are cumulatively above a total amount of available IO operations capacity of the identified storage server, and wherein the committed portion of the requested rate of IO operations for the first data volume is based on the respective determined rate of unused IO operations committed to the other user for the second data volume.
|