Input and output scheduling method and device, electronic equipment and storage medium

By acquiring historical data from the storage system and using a time-series prediction model to adjust the request response order and resource allocation, the problem of system performance fluctuations in mixed read/write load scenarios was solved, achieving low-latency response for critical requests and improved system stability.

CN121996167APending Publication Date: 2026-05-08JINAN INSPUR DATA TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
JINAN INSPUR DATA TECH CO LTD
Filing Date
2026-01-27
Publication Date
2026-05-08

AI Technical Summary

Technical Problem

In mixed read/write load scenarios, the lack of a mapping relationship between the prediction model and the characteristics of the storage medium leads to uncontrollable latency of critical requests when the load surges, causing fluctuations in system throughput and affecting the overall performance and stability of the system.

Method used

By acquiring historical input/output request data of the storage system, the load status of future periods is calculated using a time-series prediction model. Based on the load status, the response order and resource allocation strategy for requests of different priorities are adjusted, including adjusting the caching strategy, bandwidth allocation ratio, and garbage collection operation of storage nodes, and a mapping relationship between load prediction and storage media characteristics is established.

Benefits of technology

It achieves low-latency response to critical requests during load surges, stabilizes system throughput, improves overall system performance and stability, and ensures system stability and efficient operation in mixed read/write load scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121996167A_ABST
    Figure CN121996167A_ABST
Patent Text Reader

Abstract

The invention discloses an input and output scheduling method and device, electronic equipment and a storage medium, and relates to the technical field of computers.According to the input and output scheduling method and device, the future load state of a storage system is predicted based on historical input and output request data, and the response sequence and the resource allocation strategy of requests with different priorities are dynamically adjusted accordingly; therefore, a mapping relation between load prediction and storage medium characteristics is established, so that the technical problems that key request delay is uncontrollable and system throughput fluctuates when the load suddenly increases in a mixed read-write load scene can be solved; the technical effects of ensuring the low-delay response of the key request, stabilizing the system throughput and improving the overall performance and stability of the system are achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to methods, apparatus, electronic devices and storage media for scheduling input and output. Background Technology

[0002] Distributed all-flash storage, as a core technology of modern storage systems, is widely used in scenarios such as cloud storage and databases where latency is sensitive and throughput requirements are stringent.

[0003] In existing technologies, under mixed read / write load scenarios, the lack of a mapping relationship between the prediction model and the characteristics of the storage medium leads to uncontrollable latency of critical requests during load surges, resulting in fluctuations in system throughput and affecting the overall performance and stability of the system. Summary of the Invention

[0004] This application provides a method, apparatus, electronic device, and storage medium for scheduling input and output, in order to at least solve the problem in related technologies where system throughput fluctuations affect the overall performance and stability of the system.

[0005] This application provides an input / output scheduling method, including: Obtain historical input / output request data for each storage node in the storage system; Based on the historical input / output request data, the load status of the storage system in future time periods is calculated; Adjust the response order of input and output requests with different priorities according to the load status; Based on the response order, the resource allocation strategy of the storage node is adjusted.

[0006] Optionally, the historical input / output request data includes at least one of the following: request type, request priority, logical address range accessed by the request, data volume requested, and response time of the request.

[0007] Optionally, calculating the load status of the storage system in future time periods based on the historical input / output request data includes: The historical input / output request data is processed based on a time-series prediction model to obtain the load change trend for future periods; wherein, the load status includes at least one of load level, read / write request ratio, input / output operations per second, or bandwidth requirement.

[0008] Optionally, adjusting the response order of input / output requests of different priorities according to the load status includes: When the load status is increased, the response order of high-priority requests is improved; When the load status is reduced, the response order of low-priority requests is improved.

[0009] Optionally, adjusting the resource allocation strategy of the storage node based on the response order includes: Adjust caching strategies for different storage media; Adjust the bandwidth allocation ratio of the input and output channels; Coordinate garbage collection operations across multiple storage nodes; Migrate data whose access frequency exceeds a preset threshold.

[0010] Optionally, the method further includes: When transferring data between storage nodes, integrity checks are performed on the transmitted data blocks.

[0011] This application also provides an input / output scheduling device, comprising: The acquisition unit is used to acquire historical input / output request data from each storage node in the storage system. The calculation unit is used to calculate the load status of the storage system in a future time period based on the historical input / output request data. An adjustment unit is used to adjust the response order of input and output requests of different priorities according to the load status; The adjustment unit is also used to adjust the resource allocation strategy of the storage node based on the response order.

[0012] Optionally, the historical input / output request data includes at least one of the following: request type, request priority, logical address range accessed by the request, data volume requested, and response time of the request.

[0013] Optionally, the computing unit is further configured to: The historical input / output request data is processed based on a time-series prediction model to obtain the load change trend for future periods; wherein, the load status includes at least one of load level, read / write request ratio, input / output operations per second, or bandwidth requirement.

[0014] Optionally, the adjustment unit is further configured to: When the load status is increased, the response order of high-priority requests is improved; When the load status is reduced, the response order of low-priority requests is improved.

[0015] Optionally, the adjustment unit is further configured to: Adjust caching strategies for different storage media; Adjust the bandwidth allocation ratio of the input and output channels; Coordinate garbage collection operations across multiple storage nodes; Migrate data whose access frequency exceeds a preset threshold.

[0016] Optionally, the device further includes: The verification unit is used to perform integrity verification on the transmitted data blocks when data is transmitted between storage nodes.

[0017] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for implementing the input / output scheduling method described above when executing the computer program.

[0018] This application also provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of any of the above-described input / output scheduling methods.

[0019] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the above-described input / output scheduling methods.

[0020] This application establishes a mapping relationship between load prediction and storage medium characteristics by predicting the future load state of the storage system based on historical input / output request data and dynamically adjusting the response order and resource allocation strategy for different priority requests accordingly. Therefore, it can solve the technical problems of uncontrollable latency of critical requests and fluctuations in system throughput when the load suddenly increases in mixed read / write load scenarios, and achieve the technical effects of ensuring low-latency response of critical requests, stabilizing system throughput, and improving the overall performance and stability of the system. Attached Figure Description

[0021] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0022] Figure 1 A flowchart illustrating an input / output scheduling method provided in an embodiment of this application; Figure 2 An architecture diagram provided for an embodiment of this application; Figure 3 A schematic diagram of the structure of an input / output scheduling device provided in an embodiment of this application; Figure 4 This is a schematic diagram of another input / output scheduling device provided in an embodiment of this application. Detailed Implementation

[0023] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0024] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0025] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0026] The embodiments of this application provide an input / output scheduling method, and the method is described in detail below in conjunction with the execution flow of the input / output scheduling method. Figure 1 This is a flowchart illustrating an input / output scheduling method provided in an embodiment of this application.

[0027] like Figure 1 As shown, the method includes the following steps: Step 101: Obtain historical input / output request data for each storage node in the storage system; The system continuously and with low overhead collects and records input / output operation information flowing through each storage controller using data acquisition components deployed on various nodes of the distributed all-flash storage. This information covers both the micro-characteristics and macro-level trends of requests. The collection is not simply recording; instead, it utilizes a specially optimized protocol parser, such as one for the NVMe over Fabrics protocol, to parse request headers in real time and extract key metadata. Simultaneously, a lightweight probe cluster deployed at the SSD controller level directly reads performance counters from hardware registers, thereby capturing information with extremely high time precision, including the request initiation time, operation type (read, write, or flush), the range of logical block addresses accessed, the size of the data carried in the request, and priority identifiers defined by the upper-layer application or the protocol itself.

[0028] The collected data is aggregated and stored in a high-throughput time-series database cluster, forming a structured historical data sequence. Basic performance metrics, such as the number of input / output operations per second, are sampled and updated at a high frequency of milliseconds to ensure that instantaneous fluctuations in load are captured. More comprehensive request snapshot data is periodically persisted to a reliable underlying object storage for long-term model training and trend analysis. This systematic data acquisition mechanism ensures that the collected historical input / output request data is timely, complete, and accurate.

[0029] Step 102: Based on the historical input / output request data, calculate the load status of the storage system in future time periods; Based on time-series historical input / output request data, the built-in load prediction engine analyzes and extrapolates to calculate the load status of the storage system at a specific future time period. This calculation process is not a simple trend extrapolation, but rather employs advanced time-series prediction algorithms to deeply mine multi-dimensional data features. The load prediction engine first cleans and standardizes the imported historical data, transforming it into a regular feature sequence suitable for model training. These feature sequences contain information across multiple dimensions, including the distribution of read / write request quantities over time, statistical patterns in request sizes, and priority markers.

[0030] The prediction engine invokes a pre-trained machine learning prediction model, using processed recent historical data feature sequences as input. Internally, this model identifies and learns complex nonlinear relationships within the historical data to infer the evolution trend of system load in the coming future timeframe, such as the next few milliseconds to tens of milliseconds. The model's output is a quantitative description of the load state in the future timeframe, typically presented as a comprehensive index. This index includes key performance dimensions such as the predicted ratio of read / write operations in the future timeframe, the expected number of input / output operations per second, and an estimated bandwidth requirement.

[0031] Transforming massive historical records into forward-looking insights into system status provides crucial future contextual information for subsequent dynamic scheduling decisions, enabling scheduling strategies to shift from passive response to proactive planning.

[0032] Step 103: Adjust the response order of input and output requests with different priorities according to the load status; The tiered response controller maps quantified load status predictions to specific resource scheduling strategies. Specifically, the controller maintains a set of response strategy rules associated with load status levels. When the predicted load status indicates that the system is about to enter a high-load or critical phase, the controller immediately generates control commands, directing the system's input / output processing channels to prioritize high-priority requests. For example, allocating a higher proportion of transmission bandwidth to these requests ensures they can be processed immediately, thereby meeting the stringent low-latency requirements of critical business operations.

[0033] When the predicted load is low, the controller proactively adjusts its strategy, guiding the system to allocate more processing power to lower-priority requests or background maintenance tasks, such as data compression and archiving, while ensuring basic service quality. This fully leverages the system's throughput potential during low-load periods, improving overall resource utilization. This dynamic adjustment of response order is real-time and continuous, breaking the rigid boundaries of traditional static scheduling strategies. It enables the storage system to proactively and adaptively direct computing and input / output resources precisely to where they are most needed in the face of constantly changing load pressure, thereby achieving an optimal balance between system latency and overall throughput.

[0034] Step 104: Based on the response order, adjust the resource allocation strategy of the storage node.

[0035] The dynamic scheduler translates the scheduling decisions of the front-end controller into precise configurations and instructions for the underlying storage hardware resources. The core objective of this adjustment is to perfectly align the allocation pattern of physical resources with the request processing priorities determined by the upper layers. For example, when the system needs to prioritize high-priority requests, the resource allocation strategy will allocate more cache resources, such as flash memory areas using a single-cell (SLC) model, to the data read / write paths of these critical requests, while potentially temporarily limiting or suspending the bandwidth of background batch processing channels for low-priority requests.

[0036] When the system load is light and can handle more low-priority tasks, resource allocation tends to enable high-density storage media such as four-level cell (QLC) for direct writes, and allocates excess computing and I / O resources to background jobs such as data compression and archiving. Furthermore, the adjustment strategy includes coordinating the timing of garbage collection operations across multiple SSDs to avoid competing for bandwidth with critical requests during peak load periods; and migrating hot data to faster storage tiers via high-speed interconnect protocols based on predicted data access frequency. Through this series of deep, multi-dimensional dynamic resource reallocations within the storage nodes, the system can ensure that, under any load condition, its valuable hardware capabilities—including cache, bandwidth, compute cycles, and storage media lifetime—are used most effectively to execute the most critical I / O tasks, thereby achieving an optimal balance between performance, efficiency, and cost.

[0037] In some embodiments, the historical input / output request data includes at least one of the following: request type, request priority, logical address range accessed by the request, data volume requested, and response time of the request.

[0038] Each historical input / output request record collected by the system contains several core attribute fields in a structured manner. The request type distinguishes whether the current operation is a data read, data write, or cache refresh instruction, directly reflecting the read / write mix and characteristics of the load. The request priority is usually defined by the upper-layer application or transport protocol specification, indicating the importance and urgency of the request at the business level. The logical address range of the requested access indicates the specific location distribution of data on the storage medium, helping to analyze the spatial locality and hotspot areas of data access.

[0039] The requested data volume indicates the size of the data block to be transferred for each input / output operation, and is a key factor in assessing instantaneous bandwidth requirements and queue latency. The request response time records the time interval from request initiation to completion of processing by the storage node, and is a direct indicator of the actual performance and latency level of the storage subsystem. By collecting and integrating historical data containing at least one or even all dimensions, the system can construct a multi-layered, comprehensive system load profile. This allows subsequent load status calculations to be based on rich and detailed contextual information, significantly improving the accuracy of prediction results and the relevance of scheduling decisions.

[0040] In some embodiments, calculating the load status of the storage system in a future time period based on the historical input / output request data includes: The historical input / output request data is processed based on a time-series prediction model to obtain the load change trend for future periods; wherein, the load status includes at least one of load level, read / write request ratio, input / output operations per second, or bandwidth requirement.

[0041] In implementing the load state calculation method according to claim 1, the specific process involves the deep application of a time-series forecasting model. The system provides the collected historical input-output request data sequence, arranged in chronological order, as the core input to a specially trained time-series forecasting model. This model can deeply analyze the periodicity, trend, and sudden patterns contained in the historical data, thereby inferring and outputting the load change trend for future periods.

[0042] This predicted trend is a probabilistic or deterministic depiction of the system's future behavior. Based on this trend, the system further calculates the specific load state for future periods. This load state is a multi-dimensional, quantifiable set of system performance descriptions, which includes at least one or more of the following key indicators: load level, a general evaluation that quantifies continuous load into discrete levels such as critical, high, normal, and low based on predefined thresholds; read / write request ratio, which accurately predicts the ratio of the number of read operations to the number of write operations or the amount of data in the future period; input / output operations per second, i.e., an estimate of the average or peak number of input / output operations completed per second in the future period; and bandwidth requirement, i.e., an estimate of the data transmission channel bandwidth required to maintain this load level in the future period.

[0043] By using time-series forecasting models to extract these specific and forward-looking state indicators from historical data, the system is able to transform a vague concept of future "load" into a series of clear and actionable parameters, laying a solid foundation for subsequent precise resource scheduling.

[0044] In some embodiments, adjusting the response order of input / output requests of different priorities according to the load state includes: When the load status is increased, the response order of high-priority requests is improved; When the load status is reduced, the response order of low-priority requests is improved.

[0045] Establish a deterministic mapping between load status and response strategy. When the load status calculated through prediction is determined to be overloaded—for example, if prediction metrics show a surge in read / write ratios, the number of input / output operations per second is about to exceed the high-water mark threshold, or the load level enters a high-level range—the system scheduling logic will immediately trigger an adjustment to the response order. The core action is to prioritize high-priority requests. This means that high-priority requests will be given a higher queuing position, allocated more immediate processing channels, or receive a higher scheduling weight, thereby ensuring that they can be served preferentially and quickly during periods of resource scarcity, effectively guaranteeing the performance goals of critical business operations.

[0046] When the predicted load condition is identified as a period of reduced load, such as a drop in load level or a significant decrease in bandwidth demand, the system implements the opposite scheduling strategy: proactively prioritizing the response order of low-priority requests. At this time, while ensuring no service quality commitments are violated, the system allocates more idle processing power, cache resources, or transmission bandwidth to low-priority requests or background tasks that are not sensitive to latency. This fully utilizes the system's idle resources, improving overall throughput and storage media utilization efficiency. This bidirectional response order adjustment mechanism based on load condition assessment enables intelligent and smooth switching between strict guarantee and elastic optimization modes of the system scheduling strategy.

[0047] In some embodiments, adjusting the resource allocation strategy of the storage node based on the response order includes: Adjust caching strategies for different storage media; Adjust the bandwidth allocation ratio of the input and output channels; Coordinate garbage collection operations across multiple storage nodes; Migrate data whose access frequency exceeds a preset threshold.

[0048] The system dynamically reallocates physical and logical resources within storage nodes based on the optimized input / output request response order. First, it adjusts the caching strategies for different storage media. For example, when prioritizing high-priority requests, more data is directed to the single-cell (SLC) cache area, which offers higher write speeds and durability. Conversely, when processing low-priority batch tasks, high-density four-cell (QLC) media is primarily used for caching or direct writing, thus achieving a balance between performance and storage cost. Second, the system dynamically adjusts the bandwidth allocation ratio of input / output channels.

[0049] Specifically, this involves real-time control of the bandwidth ratio between the real-time channel used to handle high-priority requests and the batch processing channel used to handle background tasks. This ensures that the real-time channel receives sufficient bandwidth under high load, while the batch processing channel fully utilizes idle bandwidth under low load. Furthermore, the system coordinates garbage collection operations across multiple storage nodes. Through a centralized coordinator, the timing of flash memory garbage collection on each node is uniformly planned, avoiding resource contention caused by multiple nodes performing garbage collection simultaneously, thereby reducing performance interference to the processing of high-priority requests.

[0050] The system will migrate data accessed more frequently than a preset threshold. By monitoring data access patterns, it automatically migrates hot data to higher-speed storage media or storage tiers closer to computing resources. For example, it leverages the memory semantics of the CXL (Compute Fast Link) protocol to accelerate the migration process, further improving the response speed of frequently accessed data. Through the coordinated adjustment of these multi-layered resource allocation strategies, the system can accurately implement scheduling decisions and maximize resource utilization efficiency.

[0051] In some embodiments, the method further includes: When transferring data between storage nodes, integrity checks are performed on the transmitted data blocks.

[0052] In the overall process of the method according to claim 1, the system further includes a key step to enhance data reliability: performing integrity verification on each data block being transmitted during data transfer between storage nodes. This step is typically integrated into the end-to-end data transmission path. Specifically, when data needs to be moved between different nodes in the distributed storage system due to read / write requests or background migration, the system calculates a checksum at the sending end for each data block to be transmitted, for example, each 4-kilobyte data unit. This checksum is generated using a cyclic redundancy check algorithm, such as CRC64, which has extremely high error detection capabilities. This checksum is sent to the target node along with the original data block.

[0053] After receiving the data block and checksum, the receiving node recalculates the checksum of the received data block using the same algorithm and compares it with the received checksum. If they match perfectly, it confirms that no bit errors occurred during data transmission, ensuring data integrity. The data will then be written or submitted to the upper-layer application normally. If the comparison fails, it indicates that data corruption may have occurred during transmission. The receiving node will immediately request the sending end to retransmit the data block, effectively preventing silent data errors.

[0054] Integrity verification mechanism, as a standard security element on the data path, works in conjunction with the aforementioned dynamic scheduling and resource allocation strategies. While fully optimizing performance, it also lays a solid foundation for data consistency and reliability. It is especially suitable for high-performance lock-free transmission architectures built on technologies such as Remote Direct Memory Access (RDMA), ensuring the accuracy of data throughout the storage system under high-speed operation.

[0055] The following example illustrates an input / output scheduling device provided in an embodiment of this application.

[0056] Please see Figure 2 , Figure 2 An architecture diagram provided for an embodiment of this application, such as Figure 2As shown, it includes the following steps: 1. Historical Data Acquisition Module. Collects historical I / O request data from the system, including information such as the number, size, and type of requests.

[0057] Component composition: NVMe-oF protocol parser (parses I / O request packet headers); Distributed probe cluster (deployed on each SSD controller); Time series database (InfluxDB cluster).

[0058] Sampling frequency: Basic metrics: Sampling every 5ms (direct read from SSD controller registers); Full snapshot: Persist to object storage every 60 seconds (S3 compatible).

[0059] Load prediction engine training module. Uses historical data to train a prediction model to predict the system's future load.

[0060] Predictive model:

[0061] Model architecture: LSTM neural network (3 hidden layers / 128 neurons); Input feature window: 50ms historical data; Output: Load heatmap for the next 10ms (read / write ratio / IOPS / bandwidth requirement).

[0062] 3. Load Prediction Engine. Uses a trained prediction model to predict the future load on the system, including the number and distribution of read and write requests.

[0063] 4. Tiered Response Controller. Based on predicted load changes, the system tiers I / O requests for response. Specifically, when the predicted load increases, the system prioritizes responding to high-priority I / O requests; when the predicted load decreases, the system prioritizes responding to low-priority I / O requests.

[0064] Hardware acceleration: FPGA implementation of decision pipeline (Xilinx Versal ACAP); 5μs-level policy switching latency (PCIe Gen4 DMA transfer).

[0065] 5. Dynamic Scheduling Executor: Adjusts the I / O scheduling strategy based on the results of hierarchical response to optimize system throughput and response time.

[0066] Core components: Priority-aware queue manager (P99 latency <10μs); Cross-device GC coordinator (RAID array-level garbage collection); Hot data migration engine (CXL 2.0 memory semantic acceleration).

[0067] Distributed all-flash storage optimization Key innovations: Hybrid SLC / QLC media management (wear leveling algorithm); ZNS (Zoned Namespace) hardware-accelerated partitioning; End-to-end data path CRC64 check (per 4K block).

[0068] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0069] Embodiments of this application also provide an input / output scheduling device, such as... Figure 3 As shown, it includes: Acquisition unit 21 is used to acquire historical input / output request data of each storage node in the storage system; The calculation unit 22 is used to calculate the load status of the storage system in a future time period based on the historical input / output request data; Adjustment unit 23 is used to adjust the response order of input and output requests of different priorities according to the load status; The adjustment unit 23 is also used to adjust the resource allocation strategy of the storage node based on the response order.

[0070] Furthermore, in one possible implementation of this application embodiment, the historical input / output request data includes at least one of the following: request type, request priority, logical address range accessed by the request, data volume requested, and response time of the request.

[0071] Furthermore, in one possible implementation of this application embodiment, the computing unit 22 is further configured to: The historical input / output request data is processed based on a time-series prediction model to obtain the load change trend for future periods; wherein, the load status includes at least one of load level, read / write request ratio, input / output operations per second, or bandwidth requirement.

[0072] Furthermore, in one possible implementation of this application embodiment, the adjustment unit 23 is further configured to: When the load status is increased, the response order of high-priority requests is improved; When the load status is reduced, the response order of low-priority requests is improved.

[0073] Furthermore, in one possible implementation of this application embodiment, the adjustment unit 23 is further configured to: Adjust caching strategies for different storage media; Adjust the bandwidth allocation ratio of the input and output channels; Coordinate garbage collection operations across multiple storage nodes; Migrate data whose access frequency exceeds a preset threshold.

[0074] Furthermore, in one possible implementation of the embodiments of this application, such as Figure 4 As shown, the device further includes: The verification unit 24 is used to perform integrity verification on the transmitted data blocks when transmitting data between storage nodes.

[0075] For a description of the features in the embodiment corresponding to the input / output scheduling device, please refer to the relevant description in the embodiment corresponding to the input / output scheduling method, which will not be repeated here.

[0076] Embodiments of this application also provide an electronic device, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above-described input / output scheduling method embodiments.

[0077] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above-described input / output scheduling method embodiments when running.

[0078] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0079] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above-described input / output scheduling method embodiments.

[0080] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described input / output scheduling method embodiments.

[0081] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0082] The foregoing has provided a detailed description of an input / output scheduling method, apparatus, electronic device, and storage medium provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are merely for the purpose of helping to understand the method and its core ideas. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. An input / output scheduling method, characterized in that, include: Obtain historical input / output request data for each storage node in the storage system; Based on the historical input / output request data, the load status of the storage system in future time periods is calculated; Adjust the response order of input and output requests with different priorities according to the load status; Based on the response order, the resource allocation strategy of the storage node is adjusted.

2. The method according to claim 1, characterized in that, The historical input / output request data includes at least one of the following: request type, request priority, logical address range accessed by the request, data volume requested, and response time of the request.

3. The method according to claim 1, characterized in that, The calculation of the storage system's load status in future time periods based on the historical input / output request data includes: The historical input / output request data is processed based on a time-series prediction model to obtain the load change trend for future periods; wherein, the load status includes at least one of load level, read / write request ratio, input / output operations per second, or bandwidth requirement.

4. The method according to claim 1, characterized in that, The step of adjusting the response order of input / output requests of different priorities according to the load status includes: When the load status is increased, the response order of high-priority requests is improved; When the load status is reduced, the response order of low-priority requests is improved.

5. The method according to claim 1, characterized in that, The adjustment of the resource allocation strategy for the storage node based on the response order includes: Adjust caching strategies for different storage media; Adjust the bandwidth allocation ratio of the input and output channels; Coordinate garbage collection operations across multiple storage nodes; Migrate data whose access frequency exceeds a preset threshold.

6. The method according to claim 1, characterized in that, The method further includes: When transferring data between storage nodes, integrity checks are performed on the transmitted data blocks.

7. An input / output scheduling device, characterized in that, include: The acquisition unit is used to acquire historical input / output request data from each storage node in the storage system. The calculation unit is used to calculate the load status of the storage system in a future time period based on the historical input / output request data. An adjustment unit is used to adjust the response order of input and output requests of different priorities according to the load status; The adjustment unit is also used to adjust the resource allocation strategy of the storage node based on the response order.

8. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the input / output scheduling method as described in any one of claims 1 to 6 when executing the computer program.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the input / output scheduling method as described in any one of claims 1 to 6.

10. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the steps of the input / output scheduling method as described in any one of claims 1 to 6.