Dynamic ingestion throttling of data log
First Claim
1. A method of dynamically controlling acceptance of host application data into a data log in a data storage system, the method comprising:
- generating a throttle signal, the throttle signal having (i) a first value when an oldest log entry in the data log is younger than an age threshold and (ii) a second value when the oldest log entry in the data log is older than the age threshold, the data storage system dynamically updating the age threshold based on a set of heuristics pertaining to the data storage system;
in response to the throttle signal having the first value and the data storage system receiving a first IO request from a host application, (i) storing data specified in the first IO request in a first log entry of the data log and (ii) acknowledging completion of the first IO (Input/Output) request to the host application;
in response to the throttle signal having the second value and the data storage system receiving a second IO request from the host application, storing data specified in the second IO request in a pending list; and
after storing the data specified in the second IO request in the pending list and in response to the throttle signal then assuming the first value, (i) storing the data specified in the second IO request in a second log entry of the data log and (ii) acknowledging completion of the second IO request to the host application.
9 Assignments
0 Petitions
Accused Products
Abstract
A technique for controlling acceptance of host application data into a data log in a data storage system includes selectively accepting or refusing newly arriving host data into the data log based on a comparison between an oldest entry in the data log and an age threshold. The age threshold is dynamically updated based on system heuristics. As long as the oldest log entry is younger than the age threshold, the data log continues to accept newly arriving host application data, acknowledging IO requests to host applications as the data specified in those requests is entered into the log. However, when the oldest log entry is older than the age threshold, new log entries are temporarily refused entry into the data log. Instead, newly arriving data are placed in a pending list, where they are kept until the data log is again accepting new log entries.
-
Citations
20 Claims
-
1. A method of dynamically controlling acceptance of host application data into a data log in a data storage system, the method comprising:
-
generating a throttle signal, the throttle signal having (i) a first value when an oldest log entry in the data log is younger than an age threshold and (ii) a second value when the oldest log entry in the data log is older than the age threshold, the data storage system dynamically updating the age threshold based on a set of heuristics pertaining to the data storage system; in response to the throttle signal having the first value and the data storage system receiving a first IO request from a host application, (i) storing data specified in the first IO request in a first log entry of the data log and (ii) acknowledging completion of the first IO (Input/Output) request to the host application; in response to the throttle signal having the second value and the data storage system receiving a second IO request from the host application, storing data specified in the second IO request in a pending list; and after storing the data specified in the second IO request in the pending list and in response to the throttle signal then assuming the first value, (i) storing the data specified in the second IO request in a second log entry of the data log and (ii) acknowledging completion of the second IO request to the host application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A data storage system, comprising control circuitry that includes a set of processing units coupled to memory, the control circuitry constructed and arranged to:
-
generate a throttle signal, the throttle signal having (i) a first value when an oldest log entry in the data log is younger than an age threshold and (ii) a second value when the oldest log entry in the data log is older than the age threshold, the data storage system configured to dynamically update the age threshold based on a set of heuristics pertaining to the data storage system; in response to the throttle signal having the first value and the data storage system receiving a first IO request from a host application, (i) store data specified in the first IO (Input/Output) request in a first log entry of the data log and (ii) acknowledge completion of the first IO request to the host application; in response to the throttle signal having the second value and the data storage system receiving a second IO request from the host application, store data specified in the second IO request in a pending list; and after storing the data specified in the second IO request in the pending list and in response to the throttle signal then assuming the first value, (i) store the data specified in the second IO request in a second log entry of the data log and (ii) acknowledge completion of the second IO request to the host application.
-
-
13. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a data storage system, cause the control circuitry to perform a method for dynamically controlling acceptance of host application data into a data log in a data storage system, the method comprising:
-
generating a throttle signal, the throttle signal having (i) a first value when an oldest log entry in the data log is younger than an age threshold and (ii) a second value when the oldest log entry in the data log is older than the age threshold, the data storage system dynamically updating the age threshold based on a set of heuristics pertaining to the data storage system; in response to the throttle signal having the first value and the data storage system receiving a first IO request from a host application, (i) storing data specified in the first IO request in a first log entry of the data log and (ii) acknowledging completion of the first IO (Input/Output) request to the host application; in response to the throttle signal having the second value and the data storage system receiving a second IO request from the host application, storing data specified in the second IO request in a pending list; and after storing the data specified in the second IO request in the pending list and in response to the throttle signal then assuming the first value, (i) storing the data specified in the second IO request in a second log entry of the data log and (ii) acknowledging completion of the second IO request to the host application. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification