Storage-side storage request management
First Claim
1. A system comprising:
- database servers, configured to receive database requests to perform database operations and execute those database operations based on data stored within at least one storage system;
one or more first computing devices comprising hardware components configured to execute instructions that implement the database servers;
a storage system, configured to receive input/output requests for specified blocks of data stored in one or more storage devices in the storage system and respond to the input/output requests at least by retrieving the specified blocks of data from the one or more storage devices;
one or more second computing devices comprising hardware components configured to implement the storage system;
wherein the one or more first computing devices are operatively coupled to the one or more second computing devices to enable communication between the database servers and the storage system;
logic, at the database servers and/or the storage system, that categorizes at least particular input/output requests, sent to the storage system by the database servers, into different groups based at least partly on logical characteristics associated with particular database operations for which the database servers issued the particular input/output requests, the logical characteristics including at least one or more of;
service identifiers, user identifiers, program names, purpose identifiers, or database operation statistics;
logic, at the storage system, configured to prioritizes processing of the particular input/output requests based at least on the groups into which the particular input/output requests are categorized.
0 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided for managing, within a storage system, the sequence in which I/O requests are processed by the storage system based, at least in part, on one or more logical characteristics of the I/O requests. The logical characteristics may include, for example, the identity of the user for whom the I/O request was submitted, the service that submitted the I/O request, the database targeted by the I/O request, an indication of a consumer group to which the I/O request maps, the reason why the I/O request was issued, a priority category of the I/O request, etc. Techniques are also provided for automatically establishing a scheduling policy within a storage system, and for dynamically changing the scheduling policy in response to changes in workload.
98 Citations
31 Claims
-
1. A system comprising:
-
database servers, configured to receive database requests to perform database operations and execute those database operations based on data stored within at least one storage system; one or more first computing devices comprising hardware components configured to execute instructions that implement the database servers; a storage system, configured to receive input/output requests for specified blocks of data stored in one or more storage devices in the storage system and respond to the input/output requests at least by retrieving the specified blocks of data from the one or more storage devices; one or more second computing devices comprising hardware components configured to implement the storage system; wherein the one or more first computing devices are operatively coupled to the one or more second computing devices to enable communication between the database servers and the storage system; logic, at the database servers and/or the storage system, that categorizes at least particular input/output requests, sent to the storage system by the database servers, into different groups based at least partly on logical characteristics associated with particular database operations for which the database servers issued the particular input/output requests, the logical characteristics including at least one or more of;
service identifiers, user identifiers, program names, purpose identifiers, or database operation statistics;logic, at the storage system, configured to prioritizes processing of the particular input/output requests based at least on the groups into which the particular input/output requests are categorized. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A storage system comprising:
-
one or more storage devices storing data for databases; one or more interfaces configured to receive input/output requests to read data from or write data to the one or more storage devices, the requests indicating locations within the one or more storage devices of the data to be read or written; one or more memories configured to store at least some of the input/output requests in one or more waiting queues; first logic configured to categorizes the input/output requests into groups based on request metadata associated with input/output requests; second logic configured to determines to which of the databases the data read or written by the input/output request belongs; third logic configured to process the input/output requests; fourth logic configured to, when the third logic is ready to process an input/output request in the one or more waiting queues, selects a next input/output request to process from the one or more waiting queues based at least on selection policies, wherein the selection policies include at least one selection policy that is based at least on;
(a) the groups into which the input/output requests are categorized, and (b) the databases to which the data read or written by the input/output request belongs. - View Dependent Claims (21, 22, 23)
-
-
24. A method comprising:
-
at one or more storage devices of a storage system, storing data for databases; using one or more interfaces of the storage system to receive input/output requests to read data from or write data to the one or more storage devices, the requests indicating locations within the one or more storage devices of the data to be read or written; storing at least some of the input/output requests in one or more waiting queues at the storage system; categorizing, by the storage system, the input/output requests into groups based on request metadata associated with input/output requests; determining, by the storage system, to which of the databases the data read or written by the input/output request belongs; processing, by the storage system, the input/output requests; when the storage system is ready to process an input/output request in the one or more waiting queues, selecting a next input/output request to process from the one or more waiting queues based at least on selection policies, wherein the selection policies include at least one selection policy that is based at least on;
(a) the groups into which the input/output requests are categorized, and (b) the databases to which the data read or written by the input/output request belongs. - View Dependent Claims (25, 26, 27)
-
-
28. One or more non-transitory computer-readable media storing instructions configured to, when executed by one or more computing devices, cause:
-
at one or more storage devices of a storage system, storing data for databases; using one or more interfaces of the storage system to receive input/output requests to read data from or write data to the one or more storage devices, the requests indicating locations within the one or more storage devices of the data to be read or written; storing at least some of the input/output requests in one or more waiting queues at the storage system; categorizing, by the storage system, the input/output requests into groups based on request metadata associated with input/output requests; determining, by the storage system, to which of the databases the data read or written by the input/output request belongs; processing, by the storage system, the input/output requests; when the storage system is ready to process an input/output request in the one or more waiting queues, selecting a next input/output request to process from the one or more waiting queues based at least on selection policies, wherein the selection policies include at least one selection policy that is based at least on;
(a) the groups into which the input/output requests are categorized, and (b) the databases to which the data read or written by the input/output request belongs. - View Dependent Claims (29, 30, 31)
-
Specification