IO processing method and device, equipment and medium

By monitoring the strip hit situation of the RAID array and the reordering mechanism of IO requests, the accuracy problem of the traditional sliding window mechanism when IO requests are out of order is solved, the accurate marking and efficient processing of IO requests is achieved, and the system performance is improved .

CN119105703AActive Publication Date: 2024-12-10WUXI STARS MICRO SYSTEM TECHNOLOGIES CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202411137186.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-19
Publication Date
2024-12-10
Estimated Expiration
2044-08-19

AI Technical Summary

Technical Problem

The traditional sliding window mechanism is difficult to accurately identify continuity when IO requests are executed out of order, resulting in a decrease in data access efficiency, especially in RAID5/6.

Method used

By monitoring the strip hit situation of the RAID array, combined with the reordering mechanism of IO requests, IO requests are read from the waiting queue in turn, their starting strip ID is determined, and they are allocated to the IO queue corresponding to the matching monitoring window. , evaluate the continuity to mark the IO request as random or continuous.

Benefits of technology

It improves the efficiency and accuracy of IO request processing, ensures that request attributes can be accurately marked when IO requests are out of order, and improves the overall performance of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119105703A_ABST
    Figure CN119105703A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of storage, and discloses an IO processing method and device, equipment and a medium, and the method comprises the steps: reading each IO request from a waiting queue in sequence, and determining the initial stripe ID of each IO request; the waiting queue comprises a group of IO requests; for a target IO request in the IO requests, if the initial stripe ID of the target IO request is matched with a target monitoring window in the effective monitoring windows, distributing the target IO request to a target IO queue corresponding to the target monitoring window; and determining the continuity of the IO requests in the IO queues corresponding to the monitoring windows and issuing the IO requests. According to the technical scheme provided by one or more embodiments, the problems that the IO request is difficult to accurately identify due to out-of-order execution, and the continuity, the efficiency and the accuracy are reduced can be solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of storage technology, and in particular to an IO processing method, device, equipment and medium. Background Art

[0002] In computer architecture, RAID technology is widely used because of its advantages in improving the reliability and performance of data storage. However, the randomness and continuity of IO requests require storage systems to adopt differentiated processing strategies. Inappropriate processing mechanisms may lead to a significant decrease in data access efficiency. This is particularly critical in Raid5 / 6. Traditional marking technology usually uses a sliding window mechanism to monitor the continuity of IO operations. This method sets the end point of each IO as the center of the window and expands the window to cover the adjacent area. If the IO operation occurs within this window, it is marked as continuous, and the center of the window is then updated. However, this method is prone to errors in the case of out-of-order IO execution. Because the order reversal may cause the originally continuous IO operations to be unable to be correctly identified. This misjudgment is particularly common when multiple IO streams are carried out simultaneously, because out-of-order execution frequently changes the reference position of the sliding window, increasing the complexity of continuity judgment.

[0003] In view of this, an IO processing method is needed to ensure that even when IO requests are out of order, requests can be accurately identified and marked, providing precise instructions for subsequent IO processing and improving the overall performance of the system. Summary of the invention

[0004] In view of this, the present invention provides an IO processing method, device, equipment and medium technology field to solve the problem that out-of-order execution of IO requests makes it difficult to accurately identify continuity, thereby reducing efficiency and accuracy.

[0005] In a first aspect, the present invention provides an IO processing method, comprising: reading each IO request from a waiting queue in turn, and determining a starting stripe ID of each IO request; the waiting queue includes a group of IO requests; for a target IO request in each IO request, if the starting stripe ID of the target IO request matches a target monitoring window in each effective monitoring window, the target IO request is allocated to a target IO queue corresponding to the target monitoring window; and the continuity of the IO requests in the IO queues corresponding to each monitoring window is determined and issued.

[0006] In an optional implementation, determining the continuity of IO requests in the IO queues corresponding to the respective monitoring windows and issuing them includes:

[0007] If the number of IO requests in the target IO queue is 1, the IO requests in the target IO queue are marked as random IO and issued.

[0008] If the number of IO requests in the target IO queue is greater than 1, the IO requests in the target IO queue are marked as continuous IO and sent down.

[0009] In an optional implementation, the IO processing method further includes: if the starting stripe ID of the target IO request does not match any of the effective monitoring windows, determining whether there is an unused monitoring window;

[0010] If there is no unused monitoring window, the target IO request is assigned to the queue to be migrated back.

[0011] In an optional implementation, if there is an unused monitoring window, the target IO request is allocated to the IO queue corresponding to the unused monitoring window.

[0012] In an optional implementation, after reading of each IO request in the waiting queue is completed, the IO requests in the queue to be migrated back are allocated to the waiting queue.

[0013] In an optional implementation, after the IO requests in the IO queues corresponding to the respective monitoring windows are issued, the next group of IO requests is obtained and allocated to the waiting queue.

[0014] In a second aspect, the present invention provides an IO processing device, which includes: an IO reading module, which is used to read each IO request from a waiting queue in sequence and determine the starting stripe ID of each IO request; the waiting queue includes a group of IO requests; an IO allocation module, which is used to allocate the target IO request to the target IO queue corresponding to the target monitoring window for the target IO request in each IO request if the starting stripe ID of the target IO request matches the target monitoring window in each effective monitoring window; and a continuity determination module, which is used to determine the continuity of the IO requests in the IO queue corresponding to each monitoring window and issue them.

[0015] In a third aspect, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor are communicatively connected to each other, computer instructions are stored in the memory, and the processor executes the IO processing method of the first aspect or any corresponding embodiment thereof by executing the computer instructions.

[0016] In a fourth aspect, the present invention provides a computer-readable storage medium having computer instructions stored thereon, the computer instructions being used to enable a computer to execute the IO processing method of the first aspect or any corresponding embodiment thereof.

[0017] In a fifth aspect, the present invention provides a computer program product, comprising computer instructions for causing a computer to execute the IO processing method of the first aspect or any corresponding embodiment thereof.

[0018] The technical solution provided by one or more embodiments of the present invention effectively identifies and marks the random or continuous attributes of IO requests within the stripe by monitoring the stripe hit status of the RAID array and combining the reordering mechanism of IO requests. First, each IO request is read from the waiting queue in turn, and its starting stripe ID is determined for each request. In a group of IO requests, the starting stripe ID of the target IO request is matched with the effective monitoring window, and the request will be assigned to the target IO queue corresponding to the monitoring window. The requests in the IO queue corresponding to each monitoring window are evaluated to determine whether these requests are continuous, and finally the IO requests are issued. The present invention improves the efficiency of IO request processing, ensures that even in the case of disordered IO requests, accurate marking of requests can be achieved, provides precise indications for subsequent IO processing, and improves the overall performance of the system. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] In order to more clearly illustrate the specific implementation methods of the present invention or the technical solutions in the prior art, the drawings required for use in the specific implementation methods or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some implementation methods of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0020] Figure 1 is a schematic diagram of the structure of a data storage system according to an embodiment of the present invention;

[0021] Figure 2 is a flowchart of an IO processing method according to an embodiment of the present invention;

[0022] Figure 3 is another flowchart of an IO processing method according to an embodiment of the present invention;

[0023] Figure 4 is a schematic diagram of an architecture of IO request continuity according to an embodiment of the present invention;

[0024] Figure 5 is a flowchart of specific implementation steps of a method for IO continuity according to an embodiment of the present invention;

[0025] Figure 6 is a structural block diagram of an IO processing device according to an embodiment of the present invention;

[0026] Figure 7It is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. DETAILED DESCRIPTION

[0027] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.

[0028] Please refer to Figure 1 , which shows a schematic diagram of the structure of a data storage system involved in an embodiment of the present invention. The data storage system is provided with a server 101; the server 101 is provided with a disk array (Redundant Arrays of Independent Disks, RAID). The disk array is composed of many independent disks, which are combined into a disk group with huge capacity. The additive effect of the data provided by individual disks is used to improve the performance of the entire disk system. Using this technology, the data is cut into many segments and stored on each hard disk.

[0029] RAID technology is widely used because of its advantages in improving the reliability and performance of data storage. However, the randomness and continuity of IO requests require storage systems to adopt differentiated processing strategies. Inappropriate processing mechanisms may lead to a significant decrease in data access efficiency. Traditional marking technology usually uses a sliding window mechanism to monitor the continuity of IO operations. This method sets the end point of each IO as the center of the window and expands the window to cover the adjacent area. If the IO operation occurs within this window, it is marked as continuous, and the center of the window is then updated. However, this method is prone to errors in the case of out-of-order IO execution. Because the reversed order may cause the originally continuous IO operations to not be correctly identified.

[0030] In order to solve the above problems, an embodiment of the present invention provides an IO processing method, which classifies IOs and then identifies and marks the random / continuous characteristics of IOs to achieve the effect of accurately and efficiently identifying and marking the continuity of IO requests.

[0031] According to an embodiment of the present invention, an IO processing method embodiment is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.

[0032] In this embodiment, an IO processing method is provided. Figure 2 is a flow chart of an IO processing method according to an embodiment of the present invention. Figure 2 As shown, the process includes the following steps:

[0033] S201, reading each IO request from the waiting queue in sequence, and determining the starting stripe ID of each IO request; the waiting queue includes a group of IO requests.

[0034] It can be understood that the waiting queue is an IO buffer used to cache received IO commands, read out IO requests one by one, and determine the starting stripe ID of each request. The stripe ID is the location identifier of the data on the storage device, and determines the physical storage location of the data for the RAID system. A set of IO requests refers to the collection of all pending IO requests currently in the waiting queue. This step is the basis of the process and provides the necessary information for subsequent IO request processing.

[0035] S202 , for a target IO request in each IO request, if the starting stripe ID of the target IO request matches the target monitoring window in each effective monitoring window, the target IO request is allocated to a target IO queue corresponding to the target monitoring window.

[0036] It should be noted that after reading the IO request and determining the starting stripe ID, the starting stripe ID of the target IO request is checked and matched with the effective monitoring window. The monitoring window is a mechanism for tracking and processing specific stripe IDs. If the stripe ID of a target IO request matches a monitoring window, then the IO request will be assigned to the target IO queue associated with the monitoring window. This queue is used to cache and process IO requests under a specific monitoring window.

[0037] S203: Determine the continuity of IO requests in the IO queues corresponding to the respective monitoring windows and issue them.

[0038] It should be noted that after the target IO request is assigned to the queue corresponding to the corresponding monitoring window, it is determined whether the IO requests in these queues are continuous. Continuity refers to whether the IO request is for a continuous data block or address. The IO request is issued based on the continuity judgment, and there is a corresponding processing method for whether the request is continuous or random.

[0039] In summary, by monitoring the stripe hits of the RAID array and combining the reordering mechanism of IO requests, the random or continuous attributes of IO requests within the stripe can be effectively identified and marked. First, each IO request is read from the waiting queue in turn, and its starting stripe ID is determined for each request. In a group of IO requests, the starting stripe ID of the target IO request is matched with the effective monitoring window, and the request will be assigned to the target IO queue corresponding to the monitoring window. Evaluate the requests in the IO queue corresponding to each monitoring window, determine whether these requests are continuous, and finally issue the IO request. The present invention improves the efficiency of IO request processing, ensures that even if the IO requests are out of order, accurate marking of requests can be achieved, provides precise indications for subsequent IO processing, and improves the overall performance of the system.

[0040] Figure 3 is a flow chart of an IO processing method according to an embodiment of the present invention. Figure 3 As shown, the process includes the following steps:

[0041] 301, read each IO request from the waiting queue in sequence, and determine the starting stripe ID of each IO request; the waiting queue includes a group of IO requests.

[0042] 302A, for a target IO request in each IO request, if the starting stripe ID of the target IO request matches a target monitoring window in each effective monitoring window, the target IO request is allocated to a target IO queue corresponding to the target monitoring window.

[0043] Among them, step 301 and step 302A are the same as above Figure 2 The implementation methods of the steps in the illustrated embodiments are similar and will not be described in detail here.

[0044] 303A, determine the continuity of IO requests in the IO queues corresponding to each monitoring window and issue them.

[0045] In some optional implementations, if the number of IO requests in the target IO queue is 1, the IO requests in the target IO queue are marked as random IO and issued.

[0046] If the number of IO requests in the target IO queue is greater than 1, the IO requests in the target IO queue are marked as continuous IO and sent down.

[0047] The target IO queue refers to the queue corresponding to the monitoring window, which is used to temporarily store IO requests that match the monitoring window. The number of IO requests is 1, which means that there is only one IO request waiting to be processed in the target IO queue. This may be because the request is generated independently, or it is the only request being processed in the current monitoring window. This single IO request is identified as a random IO, indicating that the request is not part of a continuous IO. Sending refers to taking the request marked as random IO out of the waiting state and sending it to the storage device for execution, including removing the request from the queue in the memory and sending the specific read and write operation instructions of the request to the disk or other storage media.

[0048] If the number of IO requests is greater than 1, it means that there are multiple IO requests waiting to be processed in the queue corresponding to the current monitoring window. Identify and mark these requests as continuous IO. "Continuous" here means that these requests may be for continuous data blocks or addresses on the storage device, or requests that arrive in a certain logical order. Once these requests are marked as continuous IO, they will be issued, that is, taken out of the queue and sent to the storage device for execution.

[0049] 302B: If the starting stripe ID of the target IO request does not match any valid monitoring window, determine whether there is an unused monitoring window.

[0050] The server can check the starting stripe ID of a target IO request to see if it can match the effective monitoring window. If the stripe ID of the target IO request does not match any of the set monitoring windows, it means that there is no existing monitoring window to process this request.

[0051] 303B: If there is no unused monitoring window, the target IO request is allocated to the queue to be migrated back.

[0052] The server checks and finds that there is no matching monitoring window, and there is no available monitoring window in the system to allocate to this request, and allocates the target IO request to a specific queue, usually called the waiting queue. The waiting queue is used to cache the IO commands to be migrated.

[0053] Therefore, for IO requests that cannot be matched with the existing monitoring window temporarily, these requests can be temporarily stored in the queue to be migrated back to maintain an efficient IO processing flow and ensure that all requests are eventually properly processed.

[0054] 303C: If there is an unused monitoring window, the target IO request is allocated to the IO queue corresponding to the unused monitoring window.

[0055] If there are unused monitoring windows, then for those target IO requests whose starting stripe IDs do not match the effective monitoring windows, these requests are assigned to the IO queues corresponding to these unused monitoring windows. Even in the case of mismatched monitoring windows, IO requests can be effectively managed and processed.

[0056] In a possible implementation, after reading of each IO request in the waiting queue is completed, the IO requests in the queue to be migrated back are allocated to the waiting queue.

[0057] After all IO requests in the waiting queue are read and processed, the system will reallocate the IO requests in the pending migration queue back to the waiting queue so that it can try to process them again when conditions permit.

[0058] Furthermore, after the IO requests in the IO queues corresponding to the respective monitoring windows are issued, the next group of IO requests is obtained and allocated to the waiting queue.

[0059] When the IO requests in the IO queues corresponding to each monitoring window have been issued and processed, the system will obtain a new set of IO requests and assign them to the waiting queue. This step ensures the continuity of IO request processing, allowing new requests to enter the processing flow, thereby maintaining the efficiency of the storage system in processing IO requests.

[0060] These implementation methods reorder IO by means of migration and combine the random / continuous characteristics of IO marked by stripes, which increases the probability of centralized processing of IO on the same stripe and reduces the mutual exclusion behavior caused by processing the same stripe in batches, greatly reducing resource overhead. While improving IO processing performance, it reduces the disk side load and extends the life of the disk.

[0061] Please refer to Figure 4 , which shows a schematic diagram of an architecture of IO request continuity involved in an embodiment of the present invention, through Figure 4 The architecture shown can implement various methods in the embodiments of the present invention such as Figure 4 As shown,

[0062] WaitQ is the IO buffer used to cache received IO commands; Metadata stores metadata information; the LbaAnalysis module locates the physical starting position of the IO access space by parsing metadata calculations; the Classification module is responsible for IO classification and migration; the Mintior Window monitoring window is used to filter IO; ClassQ is used to cache classified IO commands; HoldQ is used to cache IO commands to be migrated; Mark Feature is responsible for marking IO continuity and delivering it downward.

[0063] Please refer to Figure 5 , which shows a flowchart of specific implementation steps of a method for IO continuity involved in an embodiment of the present invention. Figure 5 As shown, the continuity of IO requests can be identified through the following steps:

[0064] 1. Before the system starts working, it initializes the maximum number of IOs and the number of ClassQ queues in a single Group according to the business situation;

[0065] 2. After starting work, if there is IO in the WaitQ queue, it will be read out and the stripe ID where the IO starts will be determined in combination with the metadata information;

[0066] 3. Perform classification check based on the starting stripe ID of the IO and compare all the effective monitoring window information. If the stripe IDs are the same, the IO is delivered to the ClassQ pointed to by the matching monitoring window. If the starting stripe ID of the IO does not match the information of all monitoring windows, if there are unused monitoring windows, apply for registration and bind the stripe ID, and then deliver the IO to the corresponding ClassQ. Otherwise, the IO is cached in HoldQ and suspended.

[0067] 4. When all IOs in a Group are classified, the IOs in HoldQ are moved back to WaitQ to form a new Group with subsequent IOs, waiting for the next reclassification. At the same time, the status of all ClassQs is checked in turn. If there is only one IO in ClassQ, the IO is marked as random IO and sent down. If there is more than one IO in ClassQ, all IOs are marked as continuous IO and sent down.

[0068] 5. When all IOs in ClassQ are issued, it means that the current Group has been processed. The information in the monitoring window is cleared and recycled, and the IO processing of the next Group begins.

[0069] In summary, by monitoring the stripe hits of the RAID array and combining the reordering mechanism of IO requests, the random or continuous attributes of IO requests within the stripe can be effectively identified and marked. First, each IO request is read from the waiting queue in turn, and its starting stripe ID is determined for each request. In a group of IO requests, the starting stripe ID of the target IO request is matched with the effective monitoring window, and the request will be assigned to the target IO queue corresponding to the monitoring window. Evaluate the requests in the IO queue corresponding to each monitoring window, determine whether these requests are continuous, and finally issue the IO request. The present invention improves the efficiency of IO request processing, ensures that even if the IO requests are out of order, accurate marking of requests can be achieved, provides precise indications for subsequent IO processing, and improves the overall performance of the system.

[0070] In this embodiment, an IO processing device is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. As used below, the term "module" can implement a combination of software and / or hardware of a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceivable.

[0071] This embodiment provides an IO processing device, such as Figure 6 As shown, including:

[0072] The IO reading module 601 is used to read each IO request from the waiting queue in sequence and determine the starting stripe ID of each IO request; the waiting queue includes a group of IO requests;

[0073] The IO allocation module 602 is used to allocate the target IO request in each IO request to the target IO queue corresponding to the target monitoring window if the starting stripe ID of the target IO request matches the target monitoring window in each effective monitoring window;

[0074] The continuity determination module 603 is used to determine the continuity of the IO requests in the IO queue corresponding to each monitoring window and issue them.

[0075] In some optional implementations, the continuity determination module 603 includes:

[0076] The first request marking unit is used to mark the IO request in the target IO queue as a random IO and issue it if the number of IO requests in the target IO queue is 1.

[0077] The first request marking unit is used to mark the IO requests in the target IO queue as continuous IO and issue them if the number of IO requests in the target IO queue is greater than 1.

[0078] In some optional implementations, the IO processing device further includes:

[0079] The window matching unit is used to determine whether there is an unused monitoring window if the starting stripe ID of the target IO request does not match any of the effective monitoring windows.

[0080] The relocation allocation unit is used to allocate the target IO request to the queue to be relocated if there is no unused monitoring window.

[0081] In some optional embodiments, it also includes:

[0082] The first fetch allocation subunit is used to allocate the target IO request to the IO queue corresponding to the unused monitoring window if there is an unused monitoring window.

[0083] The second relocation allocation subunit is used to allocate the IO requests in the queue to be relocated to the waiting queue after the reading of each IO request in the waiting queue is completed.

[0084] The third migration allocation subunit is used to obtain the next group of IO requests and allocate them to the waiting queue after the IO requests in the IO queues corresponding to the monitoring windows are issued.

[0085] The further functional description of each of the above modules and units is the same as that of the above corresponding embodiments and will not be repeated here.

[0086] The IO processing device in this embodiment is presented in the form of a functional unit, where the unit refers to an ASIC (Application Specific Integrated Circuit) circuit, a processor and memory that executes one or more software or fixed programs, and / or other devices that can provide the above functions.

[0087] The embodiment of the present invention also provides a computer device having the above Figure 6 The IO processing device shown.

[0088] See also Figure 7 , Figure 7 is a schematic diagram of the structure of a computer device provided by an optional embodiment of the present invention, such as Figure 7As shown, the computer device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. Various components are connected to each other using different buses for communication, and can be installed on a common mainboard or installed in other ways as needed. The processor can process the instructions executed in the computer device, including instructions stored in or on the memory to display the graphical information of the GUI on an external input / output device (such as, a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple computer devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Figure 7 A processor 10 is taken as an example.

[0089] The processor 10 may be a central processing unit, a network processor or a combination thereof. The processor 10 may further include a hardware chip. The hardware chip may be a dedicated integrated circuit, a programmable logic device or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable gate array, a general purpose array logic or any combination thereof.

[0090] The memory 20 stores instructions executable by at least one processor 10, so that at least one processor 10 executes the method shown in the above embodiment.

[0091] The memory 20 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the computer device, etc. In addition, the memory 20 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some optional embodiments, the memory 20 may optionally include a memory remotely arranged relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0092] The memory 20 may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a flash memory, a hard disk or a solid state drive; the memory 20 may also include a combination of the above types of memory.

[0093] The computer device also includes an input device 30 and an output device 40. The processor 10, the memory 20, the input device 30 and the output device 40 may be connected via a bus or other means. Figure 7 The example of connecting through bus is taken in the following.

[0094] The input device 30 can receive input digital or character information, and generate key signal input related to the user settings and function control of the computer device, such as a touch screen, a keypad, a mouse, a track pad, a touch pad, an indicator bar, one or more mouse buttons, a trackball, a joystick, etc. The output device 40 may include a display device, an auxiliary lighting device (e.g., an LED) and a tactile feedback device (e.g., a vibration motor), etc. The above-mentioned display device includes but is not limited to a liquid crystal display, a light emitting diode, a display and a plasma display. In some optional embodiments, the display device can be a touch screen.

[0095] The embodiment of the present invention also provides a computer-readable storage medium. The method according to the embodiment of the present invention can be implemented in hardware, firmware, or can be implemented as a computer code that can be recorded in a storage medium, or can be implemented as a computer code that is originally stored in a remote storage medium or a non-temporary machine-readable storage medium and will be stored in a local storage medium through a network download, so that the method described herein can be stored in such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only storage memory, a random access memory, a flash memory, a hard disk or a solid-state hard disk, etc.; further, the storage medium can also include a combination of the above types of memories. It can be understood that a computer, a processor, a microprocessor controller, or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by a computer, a processor, or hardware, the method shown in the above embodiment is implemented.

[0096] A part of the present invention may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present invention through the operation of the computer. Those skilled in the art should understand that the existence of the computer program instruction in a computer-readable medium includes, but is not limited to, a source file, an executable file, an installation package file, etc., and accordingly, the way in which the computer program instruction is executed by the computer includes, but is not limited to: the computer directly executes the instruction, or the computer compiles the instruction and then executes the corresponding compiled program, or the computer reads and executes the instruction, or the computer reads and installs the instruction and then executes the corresponding installed program. Here, the computer-readable medium may be any available computer-readable storage medium or communication medium accessible to the computer.

[0097] Although the embodiments of the present invention have been described in conjunction with the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present invention, and such modifications and variations are all within the scope defined by the appended claims.

Claims

1. An IO processing method, characterized in that: The method comprises: Reading each IO request from the waiting queue in sequence, and determining the starting stripe ID of each IO request; the waiting queue includes a group of IO requests; For a target IO request in each IO request, if the starting stripe ID of the target IO request matches the target monitoring window in each effective monitoring window, the target IO request is allocated to the target IO queue corresponding to the target monitoring window; Determine the continuity of IO requests in the IO queues corresponding to each monitoring window and issue them.

2. The method according to claim 1, characterized in that The determining and issuing of the continuity of the IO requests in the IO queues corresponding to the respective monitoring windows includes: If the number of IO requests in the target IO queue is 1, the IO requests in the target IO queue are marked as random IO and issued.

3. The method according to claim 1, characterized in that The determining and issuing of the continuity of the IO requests in the IO queues corresponding to the respective monitoring windows includes: If the number of IO requests in the target IO queue is greater than 1, the IO requests in the target IO queue are marked as continuous IO and issued.

4. The method according to any one of claims 1 to 3, characterized in that: The method further comprises: If the starting stripe ID of the target IO request does not match any of the effective monitoring windows, determining whether there is an unused monitoring window; If there is no unused monitoring window, the target IO request is allocated to the queue to be migrated back.

5. The method according to claim 4, characterized in that The method further comprises: If there is an unused monitoring window, the target IO request is allocated to the IO queue corresponding to the unused monitoring window.

6. The method according to claim 4, characterized in that The method further comprises: When all IO requests in the waiting queue are read, the IO requests in the queue to be migrated are allocated to the waiting queue.

7. The method according to claim 6, characterized in that The method further comprises: After the IO requests in the IO queues corresponding to the monitoring windows are issued, the next group of IO requests is obtained and allocated to the waiting queue.

8. An IO processing device, characterized in that: The device comprises: The IO reading module is used to read each IO request from the waiting queue in sequence and determine the starting stripe ID of each IO request; the waiting queue includes a group of IO requests; An IO allocation module is used for allocating, for a target IO request in each of the IO requests, the target IO request to a target IO queue corresponding to the target monitoring window if the starting stripe ID of the target IO request matches the target monitoring window in each of the effective monitoring windows; The continuity determination module is used to determine the continuity of IO requests in the IO queue corresponding to each monitoring window and issue them.

9. A computer device, characterized in that: include: A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the method according to any one of claims 1 to 7 by executing the computer instructions.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Replay protected memory block command queue

    CN112154408A

  • IO scheduling method, device and equipment and computer readable storage medium

    CN113655970A

  • Software RAID request processing method, controller and RAID storage system

    CN114780025A

  • Data access method, device and equipment and readable storage medium

    CN114860625A

  • Task processing method, device and equipment and readable storage medium

    CN117453134A