Access control method and apparatus, and electronic device and computer-readable storage medium

By caching at the device driver layer and actively acquiring the number of access requests from the device control layer, the scheduling flexibility problem of fixed bandwidth access to storage devices is solved, enabling more flexible and diverse request scheduling.

WO2025222984A1PCT designated stage Publication Date: 2025-10-30SHENZHEN TCL DIGITAL TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/076103
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-26
Filing Date
2025-02-07
Publication Date
2025-10-30

AI Technical Summary

Technical Problem

The fixed bandwidth for accessing storage devices means that the request scheduler can only passively schedule read and write requests, resulting in poor flexibility.

Method used

By caching application access requests at the device driver layer and actively obtaining the number of access requests from the device control layer, the scheduling of requests can be controlled, reducing the dependence on the request scheduling layer and improving scheduling flexibility.

Benefits of technology

It enables proactive scheduling of access requests by the device driver layer, avoiding request backlog and improving scheduling flexibility and versatility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025076103_30102025_PF_FP_ABST
    Figure CN2025076103_30102025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in the embodiments of the present application are an access control method and apparatus, and an electronic device and a computer-readable storage medium. The method comprises: if a first application access request for a target storage device is detected, caching the first application access request to a device driver layer; by means of the device driver layer, acquiring an access request number of one or more second application access requests that are currently being processed in a device control layer; and on the basis of the access request number, controlling the device driver layer to schedule the first application access request to the device control layer, such that the device control layer accesses the target storage device on the basis of the first application access request. The number of access requests that are currently being processed in a device control layer is actively acquired by means of a device driver layer, and the scheduling control of a first application access request cached in the device driver layer is realized by using the access request number, such that the active scheduling of the first application access request cached in the device driver layer is realized, thereby improving the flexibility of request scheduling.
Need to check novelty before this filing date? Find Prior Art

Description

Access control methods, apparatus, electronic devices and computer-readable storage media

[0001] This application claims priority to Chinese patent application No. 202410520520.9, filed on April 26, 2024, entitled "Access Control Method, Apparatus, Electronic Device and Computer-Readable Storage Medium", the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of computers, specifically to an access control method, apparatus, electronic device, and computer-readable storage medium. Background Technology

[0003] With the development of computer technology, more and more applications are being used on terminal devices, and these applications increasingly require reading and writing data from storage devices. Currently, read and write requests are mainly controlled and scheduled by a request scheduler, and then the device controller processes these requests. Technical issues

[0004] However, the bandwidth for accessing storage devices is usually fixed. Therefore, the request scheduler can only schedule a read or write request to the device controller once the device controller processes a read or write request. This results in the request scheduler being able to passively schedule read and write requests to the device controller, leading to poor flexibility in read and write request scheduling. Technical solutions

[0005] This application provides an access control method, apparatus, electronic device, and computer-readable storage medium that can improve the flexibility of read / write request scheduling.

[0006] This application provides an access control method, the method comprising:

[0007] If a first application access request for the target storage device is detected, the first application access request is cached in the device driver layer;

[0008] The device driver layer obtains the number of access requests that the device control layer is currently processing for one or more second application access requests.

[0009] Based on the number of access requests, the device driver layer is controlled to schedule the first application access request to the device control layer, so that the device control layer can access the target storage device based on the first application access request.

[0010] Accordingly, embodiments of this application also provide an access control device, which includes:

[0011] The caching module is used to cache the first application access request to the device driver layer if a first application access request for the target storage device is detected.

[0012] The acquisition module is used to acquire the number of access requests of one or more second application access requests currently being processed by the device control layer through the device driver layer;

[0013] A scheduling module is configured to control the device driver layer to schedule the first application access request to the device control layer based on the number of access requests, so that the device control layer can access the target storage device based on the first application access request. Optionally, in some embodiments of this application, the acquisition module includes:

[0014] The query unit is used to send status query information to the status register through the device driver layer. The status register records the access request processing status of the device control layer.

[0015] The receiving unit is configured to receive, through the device driver layer, the access request processing status returned by the status register in response to the status query information;

[0016] The generation unit is used to generate the number of access requests of one or more second application access requests currently being processed by the device control layer, based on the access request processing status.

[0017] In some embodiments of this application, the device driver layer is configured with at least one storage queue, and the cache module includes: a type determination unit, used to determine the request type of the first application access request based on the application information of the application that generated the first application access request if a first application access request for the target storage device is detected.

[0018] A queue determination unit is configured to determine a target storage queue from the at least one storage queue according to the request type; a first caching unit is configured to dispatch the first application access request to the device driver layer, so that the device driver layer caches the first application access request to the target storage queue.

[0019] In some embodiments of this application, the scheduling module includes:

[0020] An output determination unit is used to determine the storage queue to be output from the storage queue based on the number of access requests and a preset scheduling strategy.

[0021] The dispatch unit is configured to, if the storage queue to be output is the target storage queue, control the dispatch of the first application access request in the target storage queue to the device control layer.

[0022] In some embodiments of this application, the scheduling module includes:

[0023] An identification unit is used to identify the priority of the application access request;

[0024] The quantity determination unit is used to determine the number of scheduled requests for each priority based on the historical access requests that have been scheduled.

[0025] The scheduling unit is used to control the device driver layer to schedule the first application access request to the device control layer according to the number of access requests, the priority, and the number of already scheduled requests.

[0026] In some embodiments of this application, the scheduling unit includes:

[0027] The calculation subunit is used to calculate the proportion of requests scheduled for each priority based on the number of scheduled requests.

[0028] The determination subunit is used to determine the real-time scheduling status of the first application access request based on the proportion of requests that have been scheduled and the priority of the first application access request.

[0029] A scheduling subunit is configured to, if the number of access requests is less than a preset threshold and the real-time scheduling status indicates that the first application access request is schedulable, schedule the first application access request from the device driver layer to the device control layer. In some embodiments of this application, the caching module includes:

[0030] The second cache unit is configured to dispatch the first application access request to the device driver layer through the request scheduling layer if a first application access request for the target storage device is detected and a request scheduling layer exists.

[0031] The third caching unit is used to directly dispatch the application access request to the device driver layer if an application access request for the target storage device is detected and the request scheduling layer does not exist.

[0032] Thirdly, embodiments of this application also provide an electronic device, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the computer program is executed by the processor, it implements the steps in the access control method described above.

[0033] Fourthly, embodiments of this application also provide a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in the access control method described above.

[0034] Fifthly, embodiments of this application also provide a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the methods provided in the various optional implementations described in embodiments of this application. Beneficial effects

[0035] In summary, if a first application access request for a target storage device is detected in the embodiments of this application, the first application access request is cached in the device driver layer. The device driver layer obtains the number of access requests of one or more second application access requests currently being processed by the device control layer. Based on the number of access requests, the device driver layer is controlled to schedule the first application access request to the device control layer so that the device control layer can access the target storage device based on the first application access request.

[0036] In this embodiment, since the device driver layer is used to cache the first application access request, the device driver layer can take advantage of its large number of cached requests at the software level, thus caching a large number of first application access requests at the device driver layer and avoiding the accumulation of first application access requests in the request scheduling layer.

[0037] Specifically, the scheduling and control of the first application access request is carried out through the device driver layer, which realizes the sinking of request scheduling from the request scheduling layer to the driver layer, reducing the dependence on the request scheduling layer and improving the diversity of request scheduling.

[0038] Furthermore, in this embodiment of the application, the device driver layer actively obtains the number of access requests of one or more second application access requests currently being processed in the device control layer, and uses the number of access requests to schedule and control the first application access requests cached in the device driver layer, thereby realizing the active scheduling of the first application access requests cached in the device driver layer and improving the flexibility of request scheduling. Attached Figure Description

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

[0040] Figure 1 is a schematic diagram of a scenario for the access control method provided in an embodiment of this application;

[0041] Figure 2 is a flowchart illustrating the access control method provided in an embodiment of this application;

[0042] Figure 3 is a flowchart of the foreground and background request scheduling control provided in an embodiment of this application;

[0043] Figure 4 is a schematic diagram of front-end and back-end request scheduling when the number of front-end requests changes, provided in an embodiment of this application.

[0044] Figure 5 is an architecture diagram of the access control system provided in an embodiment of this application;

[0045] Figure 6 is a schematic diagram of the access control device provided in an embodiment of this application;

[0046] Figure 7 is a schematic diagram of the structure of the electronic device provided in an embodiment of this application. Embodiments of the present invention

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

[0048] This application provides an access control method, apparatus, electronic device, and computer-readable storage medium. Specifically, this application provides an access control apparatus suitable for electronic devices, including terminal devices such as mobile phones, desktop computers, televisions, or tablet computers.

[0049] For example, please refer to Figure 1. Figure 1 is a schematic diagram of a scenario in which a terminal device according to an embodiment of this application executes the access control method. Specifically, the execution process of the access control method by the terminal device is as follows:

[0050] If the terminal device 10 detects a first application access request for a target storage device in the terminal device 10, it caches the first application access request in the device driver layer. The device driver layer then obtains the number of access requests from one or more second application access requests currently being processed by the device control layer. Based on this number of access requests, the device driver layer schedules the first application access request to the device control layer, enabling the device control layer to access the target storage device based on the first application access request. In this embodiment, because the device driver layer caches the first application access request, it leverages the large number of first application access requests that can be cached at the software level, thus avoiding the accumulation of first application access requests in the request scheduling layer.

[0051] Specifically, the scheduling and control of the first application access request is carried out through the device driver layer, which realizes the sinking of request scheduling from the request scheduling layer to the driver layer, reducing the dependence on the request scheduling layer and improving the diversity of request scheduling.

[0052] Furthermore, in this embodiment of the application, the device driver layer actively obtains the number of access requests of one or more second application access requests currently being processed in the device control layer, and uses the number of access requests to schedule and control the first application access requests cached in the device driver layer, thereby realizing the active scheduling of the first application access requests cached in the device driver layer and improving the flexibility of request scheduling.

[0053] The following sections provide detailed descriptions of each example. It should be noted that the order in which the embodiments are described is not intended to limit the priority of the embodiments.

[0054] Please refer to Figure 2, which is a flowchart illustrating the access control method provided in an embodiment of this application. The specific flow of this access control method is as follows:

[0055] 101. If a first application access request for the target storage device is detected, the first application access request is cached in the device driver layer.

[0056] It should be noted that, in this embodiment of the application, the first application access request is a request to access the target storage device, including requests to read or write data from the target storage device. For example, the first application access request includes a read / write request (BLOCK IO) to access the storage device, also known as an input / output (IO) request.

[0057] In this embodiment, the target storage device includes a removable storage media (MMC, MultiMediaCard) device, such as a hard disk, solid-state drive (SSD), or flash memory. Each application will read the contents of the target storage device (such as flash memory) to varying degrees based on its own functional requirements.

[0058] The traditional application access request process typically involves three stages: a request scheduling layer, a device driver layer, and a device control layer. The request scheduling layer, located in the kernel, manages and schedules input / output requests, determining their order and priority to maximize system performance. The device driver layer passes these requests to the corresponding device drivers, which are software modules responsible for communicating with the hardware. The device controller, through which the device driver communicates with the actual hardware, translates the requests into commands the hardware can understand and transmits the data. Therefore, the device driver layer typically sits between the request scheduling layer and the device control layer, facilitating communication between the application access requests scheduled by the request scheduling layer and the hardware. For example, in this embodiment, the device driver layer uses the device controller to communicate with the target storage device via a first application access request, reading or writing data from or to that storage device.

[0059] Understandably, since traditional solutions primarily utilize a request scheduling layer (e.g., a request scheduler, where the request scheduler is a concrete implementation of the request scheduling layer) for scheduling control, when the device control layer (e.g., a device controller, where the device controller is a concrete implementation of the device control layer) is processing a large number of application access requests, a large number of application access requests will accumulate in the request scheduling layer. Furthermore, the traditional request scheduling layer performs passive scheduling based on feedback from the device control layer. For example, after the device control layer finishes processing an application access request, it notifies the request scheduling layer to schedule an application access request to the device control layer, which makes the scheduling of application access requests less flexible.

[0060] Therefore, in order to address the above-mentioned deficiencies, in this embodiment of the application, the generated first application access request is cached in the device driver layer. It is expected that the scheduling of the device driver layer will replace the scheduling of the request scheduling layer, so that the scheduling of the first application access request no longer depends on the request scheduling layer. This also helps chip platforms without scheduling control (e.g., chip platforms without hardware queue support) to achieve scheduling control of the first application access request, reduce hardware coupling, and adapt to or be compatible with hardware devices at different levels (high, medium, and low).

[0061] Cache the first application access request in the device driver layer. This can take advantage of the characteristics of the device driver layer at the software level to cache a large number of application access requests and avoid the accumulation of application access requests in the request scheduling layer.

[0062] 102. Obtain the number of access requests currently being processed by the device control layer through the device driver layer.

[0063] It should be noted that the number of access requests is the number of one or more second application access requests that the device control layer is currently processing.

[0064] It is understandable that, since the device driver layer has a strong ability to perceive hardware, it can obtain the number of access requests that the device control layer is currently processing. Therefore, the device driver layer can be used to obtain the number of access requests that the device control layer is currently processing, and then the number of access requests can be used to schedule and control the access requests of the first application.

[0065] 103. Based on the number of access requests, control the device driver layer to schedule the first application access request to the device control layer, so that the device control layer can access the target storage device based on the first application access request.

[0066] In this embodiment, by scheduling and controlling the first application access request based on the number of access requests, the device driver layer can more accurately schedule the first application access request to the device control layer. By actively obtaining the number of access requests currently being processed in the device control layer, compared to the related technologies that rely on feedback from the device control layer and passively schedule application access requests, this application embodiment improves the flexibility of application access request scheduling.

[0067] If a first application access request is scheduled from the device driver layer based on the number of access requests, the device control layer can access the target storage device based on the first application access request to read or write memory in the target storage device.

[0068] In summary, since the embodiments of this application utilize the device driver layer to cache the first application access requests, the device driver layer can take advantage of its large number of cached requests at the software level, thus caching a large number of first application access requests at the device driver layer and avoiding the accumulation of first application access requests in the request scheduling layer.

[0069] Specifically, the scheduling and control of the first application access request is carried out through the device driver layer, which realizes the sinking of request scheduling from the request scheduling layer to the driver layer, reducing the dependence on the request scheduling layer and improving the diversity of request scheduling.

[0070] Furthermore, in this embodiment of the application, the device driver layer actively obtains the number of access requests of one or more second application access requests currently being processed in the device control layer, and uses the number of access requests to schedule and control the first application access requests cached in the device driver layer, thereby realizing the active scheduling of the first application access requests cached in the device driver layer and improving the flexibility of request scheduling.

[0071] Optionally, in this embodiment, the number of access requests currently being processed in the device control layer can be obtained through a status register. That is, optionally, in some embodiments of this application, the step "obtaining the number of access requests currently being processed by the device control layer that processes the application access request through the device driver layer" includes:

[0072] The device driver layer sends status query information to the status register, which records the access request processing status of the device control layer.

[0073] The device driver layer receives the access request processing status returned by the status register in response to the status query information;

[0074] Based on the access request processing status, the device control layer generates the number of access requests for one or more second application access requests that it is currently processing.

[0075] It should be noted that, in this embodiment, the status register is a register that records the processing status of the second application access request in the device control layer. The number of second application access requests currently being processed by the device control layer can be obtained through the access request processing status recorded in this register. For example, in this embodiment, the status register includes a response register (RESP register).

[0076] The access request processing status represents the processing status of second application access requests in the device control layer, including statuses such as "processed" and "processing in progress." This processing status allows us to know or deduce the number of second application access requests currently being processed by the device control layer. For example, by counting the number of second application access requests in the "processing in progress" state, we can obtain the total number of access requests.

[0077] The status query information is a query sent from the device driver layer to the status register. The status register responds to the query information and returns the access request processing status information to the device driver layer.

[0078] Optionally, in this embodiment, a storage queue for the device driver layer can be configured according to the type of the application access request, and each application access request can be stored in the corresponding storage queue according to its type. That is, optionally, in some embodiments of this application, the device driver layer is configured with at least one storage queue, and the step "if an application access request for the target storage device is detected, then the application access request is cached in the device driver layer" includes:

[0079] If a first application access request for the target storage device is detected, the request type of the first application access request is determined based on the application information of the application that generated the first application access request.

[0080] The target storage queue is determined from the at least one of the storage queues according to the request type;

[0081] The first application access request is dispatched to the device driver layer, so that the device driver layer caches the first application access request in the target storage queue.

[0082] By configuring storage queues for different request types, application access requests can be stored according to their respective request types, facilitating the scheduling and management of these requests. For example, scheduling control can be performed based on storage queues, such as prioritizing the dispatch of the first application access request in storage queue A, or prioritizing the dispatch of the first application access request in storage queue B.

[0083] Optionally, in this embodiment, the application information may include the application's running status, which may include foreground running or background running. Correspondingly, the request type may include a foreground request or a background request.

[0084] In this method, the request type of the first application access request is determined by the running status of the application, and the target storage queue is determined based on the request type. This allows for scheduling and control of the first application access request based on the running status of the application. For example, for the first application access request of the foreground application, the corresponding request type is a foreground request. Since the user is currently more concerned about the response of the foreground application, the first application access request corresponding to the foreground request can be executed first, that is, the target storage queue corresponding to the foreground request can be executed first.

[0085] In this embodiment, the storage queue can be configured according to the request type. For example, a foreground queue can be configured for foreground requests, and a background queue can be configured for background requests. Thus, the first application access request corresponding to the foreground request is stored in the foreground queue, and the first application access request corresponding to the background request is stored in the background queue.

[0086] Optionally, in this embodiment, the application information may further include the application's importance level. Correspondingly, the request type of the first application access request can also be categorized according to the application's importance level. For example, the application's importance level includes three levels: Level 1, Level 2, and Level 3. The importance of Level 1 applications is greater than that of Level 2 applications, and the importance of Level 2 applications is greater than that of Level 3 applications. Accordingly, corresponding storage queues are configured for different importance levels. For example, a first storage queue is configured for Level 1 first application access requests, a second storage queue is configured for Level 2 first application access requests, and a third storage queue is configured for Level 3 first application access requests.

[0087] Optionally, in this embodiment of the application, the application information may also include the application's attribute information. Accordingly, the request type of the first application access request may also be classified according to the application's attribute information. For example, the attribute information may include games, social networking, office work, and learning. Accordingly, game storage queues, social networking storage queues, office work storage queues, and learning storage queues may be configured.

[0088] In this embodiment, the scheduling of application access requests can be controlled according to a preset scheduling strategy. Specifically, in some embodiments of this application, the step "controlling the device driver layer to schedule the first application access request to the device control layer based on the number of access requests" includes:

[0089] Based on the number of access requests and the preset scheduling strategy, determine the storage queue to be output from the storage queue;

[0090] If the storage queue to be output is the target storage queue, then the control will dispatch the first application access request in the target storage queue to the device control layer.

[0091] In this embodiment of the application, the preset scheduling strategy may include sequential scheduling, random scheduling, priority scheduling that consumes less system resources, or priority scheduling according to a whitelist, etc.

[0092] Sequential scheduling includes scheduling applications in the order of the storage queues. For example, scheduling the first application access request in storage queue A first, then scheduling the first application access request in storage queue B, or scheduling the first application access request in the foreground queue first, then scheduling the first application access request in the background queue, or scheduling the first application access request in the first storage queue first, then scheduling the first application access requests in the second and third storage queues in sequence.

[0093] Random scheduling involves randomly selecting the first application access request from various storage queues. Prioritizing requests that consume fewer system resources means scheduling requests based on the system resources required to process the first application access request. For example, prioritizing requests that consume fewer system resources, or requests that consume more system resources, or requests that consume more system resources or fewer system resources, depending on the availability of current system resources. Correspondingly, after determining the first application access request to be scheduled, the storage queue to be output can be obtained based on the storage queue to which the first application access request belongs. Prioritizing requests based on a whitelist involves determining the storage queue to be scheduled based on the whitelist's instructions. For example, prioritizing the foreground queue and then the background queue, or prioritizing storage queue A and then storage queue B, or prioritizing the first storage queue and then the second and third storage queues, etc.

[0094] The number of access requests refers to the number of second application access requests currently being processed by the device control layer. Since the bandwidth of the target storage device is fixed, there is an upper limit to the number of second application access requests that the device control layer can process simultaneously. Therefore, in this embodiment, the scheduling of the first application access requests can be determined by comparing the upper limit with the number of access requests. For example, when the number of access requests is less than the upper limit (corresponding to a threshold), it indicates that the scheduling of the first application access requests can be performed. Conversely, when the number of access requests is greater than or equal to the upper limit, it indicates that the scheduling of the first application access requests cannot be performed.

[0095] When it is determined that the scheduling of the first application access request can be carried out, the scheduling control of the first application access request in the storage queue can be carried out according to the preset scheduling strategy.

[0096] Accordingly, determining the storage queue to be output according to the preset scheduling strategy helps ensure that the scheduling of application access requests can meet the scheduling requirements. If the preset scheduling strategy determines that the storage queue to be output that can be scheduled is the target storage queue, then the first application access request in the target storage queue can be dispatched to the device control layer, that is, the application access request is scheduled to the device control layer. Among these, the user can customize the preset scheduling strategy corresponding to the scheduling requirements.

[0097] Optionally, in this embodiment, priorities for different application access requests can be configured, and application access requests can be scheduled according to priority. For example, application access requests with higher priority are scheduled first, followed by application access requests with medium or general priority. In this embodiment, the priority of the application access request can be determined based on the running status of the application corresponding to the first application access request. For example, the priority of application access requests corresponding to foreground applications or important applications is set higher, while the priority of application access requests corresponding to background applications or less important applications is set lower.

[0098] For example, the system determines whether an application access request can be scheduled based on the number of access requests. If so, the application access requests with higher priority are scheduled first. The first application access request can be the highest priority request, which will be scheduled first or in the first tier. Alternatively, the first application access request can be a request with a medium priority, which will be scheduled after the application access requests with higher priority are scheduled.

[0099] Accordingly, to avoid low-priority application access requests from not receiving a response for an extended period, in this embodiment, application access requests can be scheduled based on the number of scheduled requests for each priority level. Specifically, in some embodiments of this application, the step "controlling the device driver layer to schedule the first application access request to the device control layer based on the number of access requests" includes:

[0100] Identify the priority of the first application access request;

[0101] The number of scheduled requests for each priority level is determined based on the historical access requests that have already been scheduled.

[0102] Based on the number of access requests, the priority, and the number of requests already scheduled, the device driver layer is controlled to schedule the first application access request to the device control layer.

[0103] By controlling the scheduling of application access requests based on the number of requests already scheduled for each priority level, the system avoids situations where lower-priority application access requests remain unprocessed for extended periods. For example, after processing multiple foreground application access requests, it can then process one or a small number of background application access requests, preventing the functionality of background applications or lower-priority applications from being affected by a lack of bandwidth resources for an extended period.

[0104] The priority of each application access request can be determined based on the running status of the application corresponding to the access request. For example, a correspondence between each running status and priority can be pre-configured, and the priority of the current application access request can be determined based on this correspondence.

[0105] In this embodiment, the scheduling relationship between high-priority and low-priority application access requests (i.e., scheduling N high-priority application access requests followed by M low-priority application access requests, where M is relatively small compared to N, for example, N:M = 32:1) can be configured as a corresponding reference scheduling ratio. Application access request scheduling control is performed according to this reference scheduling ratio. Optionally, in some embodiments of this application, the step "controlling the device driver layer to schedule the first application access request to the device control layer based on the number of access requests, the priority, and the number already scheduled" includes:

[0106] Calculate the scheduling ratio of requests for each priority based on the number of requests already scheduled;

[0107] The real-time scheduling status of the first application access request is determined based on the proportion of requests that have been scheduled and the priority of the first application access request.

[0108] If the number of access requests is less than a preset threshold, and the real-time scheduling status indicates that the first application access request is schedulable, then the device driver layer schedules the first application access request to the device control layer.

[0109] The requested scheduling ratio is calculated based on the number of scheduled requests for each priority level. This ratio can be used to analyze and determine the current priority for execution. The reference scheduling ratio is a scheduling ratio reference value configured in this embodiment. The priority of the application access request to be executed can be determined based on the relationship between the requested scheduling ratio and the reference scheduling ratio. For example, if the scheduling ratio is less than or equal to the requested scheduling ratio, the application access request with higher priority should be executed first. If the scheduling ratio is greater than the requested scheduling ratio, the application access request with lower priority should be executed first.

[0110] In this embodiment, the real-time scheduling status records or reflects the schedulable status of the priority corresponding to the application access request. That is, when the priority of the application access request meets the condition of priority scheduling, the application access request can be scheduled first. The number of access requests being less than a preset threshold indicates that the condition for scheduling application access requests is currently met, meaning that the number of second application access requests being processed in the device control layer is relatively small. The preset threshold is a pre-configured reference value, typically configured based on the bandwidth of the target storage device.

[0111] Optionally, in this embodiment, the scheduling of application access requests based on the device driver layer can replace the traditional method based on the request scheduling layer, so that the scheduling of application access requests does not depend on the request scheduling layer. Accordingly, for chip platforms with a request scheduling layer, the application access requests from the request scheduling layer can be forwarded or cached to the device driver layer for scheduling control. For chip platforms without a request scheduling layer, such as those without hardware queue support, the application access requests can be cached directly through the device driver layer. That is, optionally, in some embodiments of this application, the step "if a first application access request for the target storage device is detected, then the first application access request is cached to the device driver layer" includes:

[0112] If a first application access request for the target storage device is detected, and a request scheduling layer exists, the first application access request is dispatched to the device driver layer through the request scheduling layer.

[0113] If an application access request for the target storage device is detected and the request scheduling layer does not exist, the first application access request is directly dispatched to the device driver layer.

[0114] It is understood that the embodiments of this application use the device driver layer to schedule and control application access requests, so that request scheduling is pushed down from the request scheduling layer to the device driver layer. Taking advantage of the higher correlation and stronger awareness between the device driver layer and the hardware device, the number of application access requests currently being processed in the device control layer is read from the status register, and then the dispatch control of application access requests from the device driver layer to the device control layer is performed to realize the scheduling and control of application access requests based on the device driver layer.

[0115] Correspondingly, by utilizing the device driver layer to schedule and control application access requests, hardware coupling is reduced, and hardware devices at different levels (high, medium, and low) can be adapted or made compatible.

[0116] Accordingly, in this embodiment, application access requests that are in the foreground (important applications can be understood by referring to foreground applications) are prioritized for scheduling. When the number of foreground requests among the application access requests being processed by the device control layer is small, a small number of background requests can be scheduled. For example, please refer to Figure 3, which is a flowchart of the foreground / background request scheduling control provided in this embodiment. Specifically, the foreground / background request scheduling control process includes:

[0117] 111. A first application access request has been detected;

[0118] 112. Determine the request type of the first application access request. If the request type is a foreground request, proceed to step 113. If the request type is a background request, proceed to step 114.

[0119] 113. Dispatch the first application access request, which belongs to the foreground request, to the device control layer;

[0120] 114. Obtain the number of second application access requests that are currently being processed in the device control layer and belong to the foreground requests;

[0121] 115. Determine whether the number exceeds the congestion value. If it does, proceed to step 116; otherwise, proceed to step 117. The congestion value is a preset number, for example, 5.

[0122] 116. Dispatch the background request to the device control layer;

[0123] 117. Block the transmission of this background request to the device control layer.

[0124] In this embodiment of the application, the premise for dispatching a foreground request or a background request to the device control layer is that the number of access requests of the second application access request being processed in the device control layer has not reached the upper limit.

[0125] In this embodiment, the number of foreground requests being processed in the device control layer is used as the control condition. Only when the number of foreground requests being processed reaches a certain number will a background request be dispatched to the device control layer. This achieves scheduling control of foreground and background requests, prioritizes the processing of foreground requests, and avoids the problem of background applications (background requests) being unable to obtain bandwidth resources for a long time, which would affect their functionality.

[0126] In this embodiment, when there are no foreground requests, no scheduling control for foreground and backend requests is required, and access bandwidth can be allocated to backend requests. Correspondingly, when some foreground requests are generated, the number of foreground requests can be used to determine whether there is a possibility of batch distribution of foreground requests or whether it is just an occasional distribution of foreground requests, and thus determine whether to perform scheduling control for foreground and backend requests. For example, please refer to Figure 4, which is a schematic diagram of foreground and backend request scheduling when the number of foreground requests changes according to this embodiment. Specifically, it includes:

[0127] In the first scenario, there are no foreground requests, or the foreground queue for foreground requests is empty, but there are background requests, or the background queue for background requests is not empty. In this case, no foreground or background request scheduling control is performed, and the access bandwidth is allocated to the background requests, and the application access requests corresponding to the background requests are processed.

[0128] The second scenario involves both foreground and background requests, meaning both the foreground and background queues are not empty. The number of foreground requests needs to be determined based on the congestion threshold, i.e., whether a large number of foreground requests are being dispatched. If the number of foreground requests is small, for example, less than the congestion threshold, then foreground requests are processed first, but a small number of background requests are still dispatched for processing. The third scenario involves a large number of foreground requests. Regardless of the number of background requests, if both the foreground and background queues are not empty, foreground requests are processed first, achieving the effect of prioritizing foreground requests and temporarily blocking background requests (blocking the background). These three scenarios reflect the scheduling control during the process from the generation of foreground requests to their batch dispatch.

[0129] In summary, the embodiments of this application utilize the device driver layer to cache application access requests. By taking advantage of the fact that the device driver layer can cache a large number of applications at the software level, a large number of application access requests can be cached at the device driver layer, thus avoiding the accumulation of application access requests in the request scheduling layer.

[0130] Specifically, the scheduling and control of application access requests are carried out through the device driver layer, which realizes the sinking of request scheduling from the request scheduling layer to the driver, reducing the dependence on the request scheduling layer and improving the diversity of request scheduling.

[0131] Furthermore, in this embodiment of the application, the device driver layer actively obtains the number of access requests currently being processed in the device control layer, and uses the number of access requests to schedule and control the application access requests cached in the device driver layer, thereby realizing the active scheduling of application access requests cached in the device driver layer and improving the flexibility of request scheduling.

[0132] By controlling the scheduling of foreground and background requests, foreground requests are processed first, while background requests are processed intermittently in small amounts. This ensures that background requests do not suffer from bandwidth shortages for extended periods, which could lead to application malfunctions.

[0133] To facilitate understanding of the embodiments of this application, please refer to Figure 5. Figure 5 is an architecture diagram of the access control system provided in the embodiments of this application, wherein the architecture of the access control system includes:

[0134] The request receiving module 201 is used to receive a first application access request generated by a terminal application. The first application access request is used to access the target storage device, including application access requests generated by a foreground application and application access requests generated by a background application, that is, it includes foreground requests and background requests.

[0135] The request scheduling layer 202 is used to asynchronously dispatch the first application access request generated by the application to the device driver layer 203, so that all application access requests generated by the terminal application are cached in the device driver layer 203 and scheduled and controlled by the device driver layer 203; the device driver layer 203 is used to receive the first application access request asynchronously dispatched by the request scheduling layer 202, and store the first application access request in the corresponding storage queue based on the request type of the first application access request, and obtain the access request processing status of the status register 204, obtain the access request number of the second application access request currently being processed by the device control layer 205, and control the dispatch of application access requests to the device control layer 205 according to the access request number;

[0136] In this embodiment, the device driver layer performs driver control through a driver thread, and schedules and controls application access requests in the foreground queue and the background queue.

[0137] The device control layer 205 is used to receive application access requests dispatched by the device driver layer 203, cache the application access requests in a hardware queue or a software queue, and then process the application access requests dispatched by the device driver layer 203 to access the target storage device.

[0138] In this embodiment, by sinking request scheduling to the device driver layer, the scheduling of application access requests no longer depends on the request scheduling layer, thereby improving the diversity and flexibility of request scheduling.

[0139] By leveraging the strong correlation and awareness between the device driver layer and the hardware, the number of application access requests currently being processed in the device control layer is obtained. This allows for proactive scheduling of application access requests in the device driver layer based on the number of access requests, thereby improving the flexibility of request scheduling.

[0140] To facilitate better implementation of the access control method of this application, this application also provides an access control device based on the above-described access control method. The meanings of the terms used are the same as in the access control method described above, and specific implementation details can be found in the descriptions of the method embodiments.

[0141] Please refer to Figure 6, which is a schematic diagram of the access control device provided in an embodiment of this application. The access control device can specifically be as follows:

[0142] The caching module 301 is used to cache the first application access request to the device driver layer if a first application access request for the target storage device is detected.

[0143] The acquisition module 302 is used to acquire the number of access requests of one or more second application access requests currently being processed by the device control layer through the device driver layer;

[0144] The scheduling module 303 is used to control the device driver layer to schedule the first application access request to the device control layer according to the number of access requests, so that the device control layer can access the target storage device based on the first application access request.

[0145] Optionally, in some embodiments of this application, the acquisition module 302 includes:

[0146] The query unit is used to send status query information to the status register through the device driver layer. The status register records the access request processing status of the device control layer.

[0147] The receiving unit is configured to receive, through the device driver layer, the access request processing status returned by the status register in response to the status query information;

[0148] The generation unit is used to generate the number of access requests of one or more second application access requests currently being processed by the device control layer, based on the access request processing status.

[0149] In some embodiments of this application, the device driver layer is configured with at least one storage queue, and the cache module 301 includes:

[0150] A type determination unit is configured to determine the request type of the first application access request based on the application information of the application that generated the first application access request if a first application access request for the target storage device is detected.

[0151] A queue determination unit is used to determine a target storage queue from at least one of the storage queues according to the request type; a first caching unit is used to dispatch the first application access request to the device driver layer and cache the first application access request to the target storage queue through the device driver layer.

[0152] In some embodiments of this application, the scheduling module 303 includes:

[0153] An output determination unit is used to determine the storage queue to be output from the storage queue based on the number of access requests and a preset scheduling strategy.

[0154] The dispatch unit is configured to, if the storage queue to be output is the target storage queue, control the dispatch of the first application access request in the target storage queue to the device control layer.

[0155] In some embodiments of this application, the scheduling module 303 includes:

[0156] An identification unit is used to identify the priority of the application access request;

[0157] The quantity determination unit is used to determine the number of scheduled requests for each priority based on the historical access requests that have been scheduled.

[0158] The scheduling unit is used to control the device driver layer to schedule the first application access request to the device control layer according to the number of access requests, the priority, and the number of already scheduled requests.

[0159] In some embodiments of this application, the scheduling unit includes:

[0160] The calculation subunit is used to calculate the proportion of requests scheduled for each priority based on the number of scheduled requests.

[0161] The determination subunit is used to determine the real-time scheduling status of the first application access request based on the proportion of requests that have been scheduled and the priority of the first application access request.

[0162] A scheduling subunit is configured to, if the number of access requests is less than a preset threshold and the real-time scheduling status indicates that the first application access request is schedulable, schedule the first application access request from the device driver layer to the device control layer. In some embodiments of this application, the caching module 301 includes:

[0163] The second cache unit is configured to dispatch the first application access request to the device driver layer through the request scheduling layer if a first application access request for the target storage device is detected and a request scheduling layer exists.

[0164] The third caching unit is configured to directly dispatch the first application access request to the device driver layer if an application access request for the target storage device is detected and the request scheduling layer does not exist.

[0165] In this embodiment, if the caching module 301 detects a first application access request for the target storage device, it caches the first application access request to the device driver layer. Then, the acquisition module 302 obtains the access request count of one or more second application access requests currently being processed by the device control layer through the device driver layer. Subsequently, the scheduling module 303 controls the device driver layer to schedule the first application access request to the device control layer according to the access request count, so that the device control layer accesses the target storage device based on the first application access request.

[0166] In this embodiment, the device driver layer is used to cache the first application access request. The device driver layer can cache a large number of first application access requests at the software level, thereby avoiding the accumulation of first application access requests in the request scheduling layer.

[0167] Specifically, the scheduling and control of the first application access request is carried out through the device driver layer, which realizes the sinking of request scheduling from the request scheduling layer to the driver layer, reducing the dependence on the request scheduling layer and improving the diversity of request scheduling.

[0168] Furthermore, in this embodiment of the application, the device driver layer actively obtains the number of access requests of one or more second application access requests currently being processed in the device control layer, and uses the number of access requests to schedule and control the first application access requests cached in the device driver layer, thereby realizing the active scheduling of the first application access requests cached in the device driver layer and improving the flexibility of request scheduling.

[0169] In addition, this application also provides an electronic device, as shown in FIG7, which illustrates a schematic diagram of the structure of the electronic device involved in this application. Specifically:

[0170] The electronic device may include components such as a processor 401 with one or more processing cores, a memory 402 with one or more computer-readable storage media, a power supply 403, and an input unit 404. Those skilled in the art will understand that the electronic device structure shown in FIG7 does not constitute a limitation on the electronic device, and may include more or fewer components than shown, or combine certain components, or have different component arrangements. Wherein:

[0171] The processor 401 is the control center of the electronic device. It connects various parts of the electronic device via various interfaces and lines. By running or executing software programs and / or modules stored in the memory 402, and by calling data stored in the memory 402, it performs various functions and processes data, thereby providing overall monitoring of the electronic device. Optionally, the processor 401 may include one or more processing cores; preferably, the processor 401 may integrate an application processor and a modem processor, wherein the application processor mainly handles the operating system, user interface, and applications, and the modem processor mainly handles wireless communication. It is understood that the modem processor may not be integrated into the processor 401.

[0172] The memory 402 can be used to store software programs and modules. The processor 401 executes various functional applications and data processing by running the software programs and modules stored in the memory 402. The memory 402 may mainly include a program storage area and a data storage area. The program storage area may store the operating system, application programs required for at least one function (such as sound playback function, image playback function, etc.), etc.; the data storage area may store data created according to the use of the electronic device, etc. In addition, the memory 402 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other volatile solid-state storage device. Accordingly, the memory 402 may also include a memory controller to provide the processor 401 with access to the memory 402.

[0173] The electronic device also includes a power supply 403 that supplies power to the various components. Preferably, the power supply 403 can be logically connected to the processor 401 through a power management system, thereby enabling functions such as charging, discharging, and power consumption management through the power management system. The power supply 403 may also include one or more DC or AC power supplies, recharging systems, power equipment debugging circuits, power converters or inverters, power status indicators, and other arbitrary components.

[0174] The electronic device may further include an input unit 404, which can be used to receive input numerical or character information and generate keyboard, mouse, joystick, optical, or trackball signal inputs related to user settings and function control. Although not shown, the electronic device may also include a display unit, etc., which will not be described in detail here. Specifically, in this embodiment, the processor 401 in the electronic device loads the executable files corresponding to the processes of one or more application programs into the memory 402 according to the following instructions, and the processor 401 runs the application programs stored in the memory 402, thereby implementing the steps in any of the access control methods provided in the embodiments of this application.

[0175] If a first application access request for a target storage device is detected in this embodiment, the first application access request is cached in the device driver layer. The device driver layer obtains the number of access requests of one or more second application access requests currently being processed by the device control layer. Based on the number of access requests, the device driver layer is controlled to schedule the first application access request to the device control layer so that the device control layer can access the target storage device based on the first application access request.

[0176] In this embodiment, since the device driver layer is used to cache the first application access request, the device driver layer can take advantage of its large number of cached requests at the software level, thus caching a large number of first application access requests at the device driver layer and avoiding the accumulation of first application access requests in the request scheduling layer.

[0177] Specifically, the scheduling and control of the first application access request is carried out through the device driver layer, which realizes the sinking of request scheduling from the request scheduling layer to the driver layer, reducing the dependence on the request scheduling layer and improving the diversity of request scheduling.

[0178] Furthermore, in this embodiment of the application, the device driver layer actively obtains the number of access requests of one or more second application access requests currently being processed in the device control layer, and uses the number of access requests to schedule and control the first application access requests cached in the device driver layer, thereby realizing the active scheduling of the first application access requests cached in the device driver layer and improving the flexibility of request scheduling.

[0179] For details on the implementation of each of the above operations, please refer to the previous examples, which will not be repeated here.

[0180] Those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be performed by instructions, or by instructions controlling related hardware. These instructions can be stored in a computer-readable storage medium and loaded and executed by a processor.

[0181] Therefore, this application provides a computer-readable storage medium storing a computer program that can be loaded by a processor to execute the steps of any of the access control methods provided in this application. Specific implementations of the above operations can be found in the preceding embodiments and will not be repeated here.

[0182] The computer-readable storage medium may include: read-only memory (ROM), random access memory (RAM), disk or optical disk, etc.

[0183] Since the instructions stored in the computer-readable storage medium can execute the steps of any of the access control methods provided in this application, the beneficial effects that any of the access control methods provided in this application can achieve can be realized, as detailed in the preceding embodiments, and will not be repeated here.

[0184] The above provides a detailed description of an access control method, apparatus, electronic device, and computer-readable storage medium provided in this application. Specific examples have been used to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only for the purpose of helping to understand the method and core ideas of the present invention. At the same time, those skilled in the art will recognize that there will be changes in the specific implementation methods and application scope based on the ideas of the present invention. Therefore, the content of this specification should not be construed as a limitation of the present invention.

[0185] It should be noted that, in the specific embodiments of this application, data related to application access requests, number of access requests, and request types are involved. When the above embodiments of this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions.

Claims

1. An access control method, wherein, The method includes: If a first application access request for the target storage device is detected, the first application access request is cached in the device driver layer; The device driver layer obtains the number of access requests that the device control layer is currently processing for one or more second application access requests. Based on the number of access requests, the device driver layer is controlled to schedule the first application access request to the device control layer, so that the device control layer can access the target storage device based on the first application access request.

2. The access control method according to claim 1, wherein, The step of obtaining the number of access requests of one or more second application access requests currently being processed by the device control layer through the device driver layer includes: The device driver layer sends status query information to the status register, which records the access request processing status of the device control layer. The device driver layer receives the access request processing status returned by the status register in response to the status query information; Based on the access request processing status, the device control layer generates the number of access requests for one or more second application access requests that it is currently processing.

3. The access control method according to claim 1, wherein, The device driver layer is configured with at least one storage queue. The step of caching the first application access request to the device driver layer if a first application access request for the target storage device is detected includes: if a first application access request for the target storage device is detected, determining the request type of the first application access request based on the application information of the application that generated the first application access request. The target storage queue is determined from the at least one of the storage queues according to the request type; The first application access request is dispatched to the device driver layer, so that the device driver layer caches the first application access request in the target storage queue.

4. The access control method according to claim 3, wherein, The step of controlling the device driver layer to schedule the first application access request to the device control layer based on the number of access requests includes: Based on the number of access requests and the preset scheduling strategy, determine the storage queue to be output from the storage queue; If the storage queue to be output is the target storage queue, then the control will dispatch the first application access request in the target storage queue to the device control layer.

5. The access control method according to claim 1, wherein, The step of controlling the device driver layer to schedule the first application access request to the device control layer based on the number of access requests includes: Identify the priority of the first application access request; The number of scheduled requests for each priority level is determined based on the historical access requests that have already been scheduled. Based on the number of access requests, the priority, and the number of requests already scheduled, the device driver layer is controlled to schedule the first application access request to the device control layer.

6. The access control method according to claim 5, wherein, The step of controlling the device driver layer to schedule the first application access request to the device control layer based on the number of access requests, the priority, and the number of scheduled requests includes: Calculate the scheduling ratio of requests for each priority based on the number of requests already scheduled; The real-time scheduling status of the first application access request is determined based on the proportion of requests that have been scheduled and the priority of the first application access request. If the number of access requests is less than a preset threshold, and the real-time scheduling status indicates that the first application access request is schedulable, then the device driver layer schedules the first application access request to the device control layer.

7. The access control method according to claim 1, wherein, If a first application access request for the target storage device is detected, caching the first application access request to the device driver layer includes: If a first application access request for the target storage device is detected, and a request scheduling layer exists, the first application access request is dispatched to the device driver layer through the request scheduling layer. If an application access request for the target storage device is detected and the request scheduling layer does not exist, the first application access request is directly dispatched to the device driver layer.

8. The access control method according to claim 3, wherein, The application information includes a foreground application or a background application, the request type includes at least one of a foreground request or a background request, and the target storage queue includes a foreground queue or a background queue.

9. The access control method according to claim 3, wherein, The application information includes importance information, with different importance levels corresponding to different storage queues.

10. The access control method according to claim 3, wherein, The application information includes attribute information, which includes at least one of gaming, social networking, office work, or learning. Different attribute information corresponds to different storage queues.

11. The access control method according to claim 4, wherein, The preset scheduling strategy may include at least one of the following: sequential scheduling, random scheduling, priority scheduling that consumes less system resources, or priority scheduling according to a whitelist.

12. The access control method according to claim 1, wherein, The step of controlling the device driver layer to schedule the first application access request to the device control layer based on the number of access requests includes: Identify the priority of the first application access request; The first application access request is scheduled according to the stated priority.

13. An access control device, wherein, The device includes: The caching module is used to cache the first application access request to the device driver layer if a first application access request for the target storage device is detected. The acquisition module is used to acquire the number of access requests of one or more second application access requests currently being processed by the device control layer through the device driver layer; The scheduling module is used to control the device driver layer to schedule the application access request to the device control layer according to the number of access requests, so that the device control layer can access the target storage device based on the first application access request.

14. The access control device according to claim 13, wherein, The step of obtaining the number of access requests of one or more second application access requests currently being processed by the device control layer through the device driver layer includes: The device driver layer sends status query information to the status register, which records the access request processing status of the device control layer. The device driver layer receives the access request processing status returned by the status register in response to the status query information; Based on the access request processing status, the device control layer generates the number of access requests for one or more second application access requests that it is currently processing.

15. The access control device according to claim 13, wherein, The device driver layer is configured with at least one storage queue. The step of caching the first application access request to the device driver layer if a first application access request for the target storage device is detected includes: if a first application access request for the target storage device is detected, determining the request type of the first application access request based on the application information of the application that generated the first application access request. The target storage queue is determined from the at least one of the storage queues according to the request type; The first application access request is dispatched to the device driver layer, so that the device driver layer caches the first application access request in the target storage queue.

16. The access control device according to claim 15, wherein, The step of controlling the device driver layer to schedule the first application access request to the device control layer based on the number of access requests includes: Based on the number of access requests and the preset scheduling strategy, determine the storage queue to be output from the storage queue; If the storage queue to be output is the target storage queue, then the control will dispatch the first application access request in the target storage queue to the device control layer.

17. The access control device according to claim 13, wherein, The step of controlling the device driver layer to schedule the first application access request to the device control layer based on the number of access requests includes: Identify the priority of the first application access request; The number of scheduled requests for each priority level is determined based on the historical access requests that have already been scheduled. Based on the number of access requests, the priority, and the number of requests already scheduled, the device driver layer is controlled to schedule the first application access request to the device control layer.

18. The access control device according to claim 17, wherein, The step of controlling the device driver layer to schedule the first application access request to the device control layer based on the number of access requests, the priority, and the number of scheduled requests includes: Calculate the scheduling ratio of requests for each priority based on the number of requests already scheduled; The real-time scheduling status of the first application access request is determined based on the proportion of requests that have been scheduled and the priority of the first application access request. If the number of access requests is less than a preset threshold, and the real-time scheduling status indicates that the first application access request is schedulable, then the device driver layer schedules the first application access request to the device control layer.

19. An electronic device, wherein, It includes a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor, when executing the computer program, implements the steps of the access control method as described in any one of claims 1-12.

20. A computer-readable storage medium, wherein, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the access control method as described in any one of claims 1-12.

Citation Information

Patent Citations

  • Lightweight FC-SAN shared storage system and shared storage method

    CN113986146A

  • Flow control method for data storage IO request and related device

    CN115314439A

  • Access control method and device, electronic equipment and computer readable storage medium

    CN118331707A

  • System and method for controlling a flow of storage access requests

    US10990447B1