Edge case handling in system with dynamic flow control
First Claim
1. An apparatus comprising:
- a storage system comprising a plurality of storage devices and a storage controller associated with the plurality of storage devices;
wherein the storage controller is configured;
to receive an input-output (IO) request;
to obtain a flow control window size of the storage system, the flow control window size being dynamically adjustable by the storage controller based at least in part on an IO latency of the storage system;
to determine whether or not an actual size of a portion of the IO request to be processed by the storage controller is greater than the flow control window size;
in response to determining that the actual size of the portion of the IO request is greater than the flow control window size, to add an entry corresponding to the portion of the IO request to a flow control queue of the storage system, the entry comprising an indication that the portion of the IO request has an effective size equal to the flow control window size; and
to process the entry in the flow control queue corresponding to the portion of the IO request, the processing comprising processing the actual size of the portion of the IO request.
3 Assignments
0 Petitions
Accused Products
Abstract
A storage system includes a storage controller that is configured to receive an input-output (IO) request and to obtain a flow control window size of the storage system. The flow control window size is dynamically adjustable by the storage controller based at least in part on an IO latency of the storage system. The storage controller is configured, in response to determining that an actual size of a portion of the IO request to be processed is greater than the flow control window size, to add an entry corresponding to the portion of the IO request to a flow control queue of the storage system with an indication that the portion of the IO request has an effective size equal to the flow control window size. The storage controller is further configured to process the entry in the flow control queue corresponding to the portion of the IO request using the actual size of the portion of the IO request.
-
Citations
20 Claims
-
1. An apparatus comprising:
-
a storage system comprising a plurality of storage devices and a storage controller associated with the plurality of storage devices; wherein the storage controller is configured; to receive an input-output (IO) request; to obtain a flow control window size of the storage system, the flow control window size being dynamically adjustable by the storage controller based at least in part on an IO latency of the storage system; to determine whether or not an actual size of a portion of the IO request to be processed by the storage controller is greater than the flow control window size; in response to determining that the actual size of the portion of the IO request is greater than the flow control window size, to add an entry corresponding to the portion of the IO request to a flow control queue of the storage system, the entry comprising an indication that the portion of the IO request has an effective size equal to the flow control window size; and to process the entry in the flow control queue corresponding to the portion of the IO request, the processing comprising processing the actual size of the portion of the IO request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising:
-
receiving an input-output (IO) request; obtaining a flow control window size of a storage system, the flow control window size being dynamically adjustable by a storage controller associated with the storage system based at least in part on an IO latency of the storage system; determining that an actual size of a portion of the IO request to be processed by the storage system is greater than the flow control window size; in response to determining that the actual size of the portion of the IO request is greater than the flow control window size, adding an entry corresponding to the portion of the IO request to a flow control queue of the storage system, the entry comprising an indication that the portion of the IO request has an effective size equal to the flow control window size; and processing the entry in the flow control queue corresponding to the portion of the IO request, the processing comprising processing the actual size of the portion of the IO request, wherein the method is implemented by at least one processing device comprising a processor coupled to a memory. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device to:
-
to receive an input-output (IO) request; to obtain a flow control window size of a storage system, the flow control window size being dynamically adjustable by a storage controller associated with the storage system based at least in part on an IO latency of the storage system; to determine whether or not an actual size of a portion of the IO request to be processed by the storage controller is greater than the flow control window size; in response to determining that the actual size of the portion of the IO request is greater than the flow control window size, to add an entry corresponding to the portion of the IO request to a flow control queue of the storage system, the entry comprising an indication that the portion of the IO request has an effective size equal to the flow control window size; and to process the entry in the flow control queue corresponding to the portion of the IO request, the processing comprising processing the actual size of the portion of the IO request.
-
Specification