# US 11,307,801 B2 · Method, apparatus, device and storage medium for processing access request

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,307,801 B2
- Document ID: US11307801B2
- Status: Granted
- Kind: B2
- Application number: 16/707,465
- Filed: 2019-12-09
- Published: 2020-11-26
- Granted: 2022-04-19
- Earliest claimed: 2019-05-24
- Assignees: Beijing Baidu Netcom Science Technology Co., Ltd.
- Applicants: Beijing Baidu Netcom Science and Technology Co., Ltd.
- Inventors: Lin Li; Yu Zhang
- Web page: https://patentgrep.com/patent/US11307801B2

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 11/0754: {by exceeding limits}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0622: {in relation to access}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 11/0727: {in a storage system, e.g. in a DASD or network based storage system (drivers for digital recording or reproducing units G06F3/06; circuits for error detection or correction within digital recording or reproducing units G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/0757: {by exceeding a time limit, i.e. time-out, e.g. watchdogs}
- G06F 11/076: {by exceeding a count or rate limit, e.g. word- or bit count limit}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the present disclosure provide a method, apparatus, device, and storage medium for processing an access request, and relate to the field of cloud computing. The method includes: acquiring a plurality of to-be-distributed access requests for a storage device, the access requests at least including a group of read requests and a group of write requests; distributing read requests of the group of read requests to a drive device of the storage device without distributing a write request of the group of write requests, until a number of distributed read requests reaches a total number of read requests of the group of read requests or a first threshold number, the drive device being configured to execute the distributed requests on the storage device; and distributing at least one write request of the group of write requests to the drive device.

## Claims

### Claim 1

A method for processing an access request, comprising:
acquiring a plurality of to-be-distributed access requests for a storage device, the access requests at least comprising a group of read requests and a group of write requests;
a read request distribution comprising: distributing read requests of the group of read requests to a drive device of the storage device without distributing a write request of the group of write requests, until a number of distributed read requests reaches a total number of read requests of the group of read requests or a first threshold number, the drive device being configured to execute the distributed requests on the storage device; and
a write request distribution comprising: distributing at least one write request of the group of write requests to the drive device, wherein the read request distribution or the write request distribution comprises:
selecting an undistributed target request from a target group of requests, wherein the target group of requests is the group of read requests or the group of the write requests, and the target request has a minimum offset for a physical address in the group of target requests; and
distributing the selected target request to the drive device.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the acquiring a plurality of to-be-distributed access requests comprises:
reading the plurality of to-be-distributed access requests from a to-be-distributed access request queue; and
grouping the plurality of access requests into the group of read requests and the group of write requests.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the drive device is implemented in a user state.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the method further comprises:
determining a timeout duration of each access request of the plurality of to-be-distributed access requests, the timeout duration indicating a waited duration of the each corresponding access request;
determining whether a timeout access request having a timeout duration greater than a preset time threshold is included in the plurality of to-be-distributed access requests; and
distributing the timeout access request to the drive device.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the read request distribution comprises:
executing following iteration for at least one time, until a counted number of read requests reaches the first threshold number:
distributing a read request of the group of read requests to the drive device; and progressively increasing the counted number of read requests, the counted number of read requests indicating a number of distributed read requests; and
terminating the iteration in response to no read request being undistributed in the group of read requests.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the undistributed target request is an undistributed target read request, the target group of requests is the group of read requests, and the read request distribution comprises:
selecting the undistributed target read request from the group of read requests, the target read request having a minimum offset for a physical address in the group of read requests; and
distributing the selected read request to the drive device.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the write request distribution comprises:
executing following iteration for at least one time, until a counted number of write requests reaches a second threshold number:
distributing a write request of the group of write requests to the drive device;
progressively increasing the counted number of write requests, the counted number of write requests indicating a number of distributed write requests; and
terminating the iteration in response to no write request being undistributed in the group of write requests.

### Claim 8 (depends on 1)

The method according to claim 1, wherein the undistributed target request is an undistributed target write request, the target group of requests is the group of write requests, and the write request distribution comprises:
selecting the undistributed target write request from the group of write requests, the target write request having a minimum offset for a physical address in the group of read requests; and
distributing the selected write request to the drive device.

### Claim 9

An apparatus for processing an access request, comprising:
at least one processor; and
a memory storing instructions, wherein the instructions when executed by the at least one processor, cause the at least one processor to perform operations, the operations comprising:
acquiring a plurality of to-be-distributed access requests for a storage device, the access requests at least comprising a group of read requests and a group of write requests;
a read request distribution comprising: distributing read requests of the group of read requests to a drive device of the storage device without distributing a write request of the group of write requests, until a number of distributed read requests reaches a total number of read requests of the group of read requests or a first threshold number, the drive device being configured to execute the distributed requests on the storage device; and
a write request distribution comprising: distributing at least one write request of the group of write requests to the drive device, wherein the read request distribution or the write request distribution comprises:
selecting an undistributed target request from a target group of requests, wherein the target group of requests is the group of read requests or the group of the write requests, and the target request has a minimum offset for a physical address in the group of target requests; and
distributing the selected target request to the drive device.

### Claim 10 (depends on 9)

The apparatus according to claim 9, wherein the acquiring a plurality of to-be-distributed access requests comprises:
reading the plurality of to-be-distributed access requests from a to-be-distributed access request queue; and
grouping the plurality of access requests into the group of read requests and the group of write requests.

### Claim 11 (depends on 9)

The apparatus according to claim 9, wherein the drive device is implemented in a user state.

### Claim 12 (depends on 9)

The apparatus according to claim 9, wherein the operations further comprise:
determining a timeout duration of each access request of the plurality of to-be-distributed access requests, the timeout duration indicating a waited duration of the each corresponding access request;
determining whether a timeout access request having a timeout duration greater than a preset time threshold is included in the plurality of to-be-distributed access requests; and
distributing the timeout access request to the drive device.

### Claim 13 (depends on 9)

The apparatus according to claim 9, wherein the read request distribution comprises:
executing following iteration for at least one time, until a counted number of read requests reaches the first threshold number:
distributing a read request of the group of read requests to the drive device; and progressively increasing the counted number of read requests, the counted number of read requests indicating a number of distributed read requests; and
terminating the iteration in response to no read request being undistributed in the group of read requests.

### Claim 14 (depends on 9)

The apparatus according to claim 9, wherein the undistributed target request is an undistributed target read request, the target group of requests is the group of read requests, and the read request distribution comprises:
selecting the undistributed target read request from the group of read requests, the target read request having a minimum offset for a physical address in the group of read requests; and
distributing the selected read request to the drive device.

### Claim 15 (depends on 9)

The apparatus according to claim 9, wherein the write request distribution comprises:
executing following iteration for at least one time, until a counted number of write requests reaches a second threshold number:
distributing a write request of the group of write requests to the drive device;
progressively increasing the counted number of write requests, the counted number of write requests indicating a number of distributed write requests; and
terminating the iteration in response to no write request being undistributed in the group of write requests.

### Claim 16 (depends on 9)

The apparatus according to claim 9, wherein the undistributed target request is an undistributed target write, request, the target grow of requests is the group of write requests, and the write request distribution comprises:
selecting the undistributed target write request from the group of write requests, the target write request having a minimum offset for a physical address in the group of read requests; and
distributing the selected write request to the drive device.

### Claim 17

A non-transitory computer readable storage medium, storing a computer program thereon, wherein the program, when executed by a processor, causes the processor to perform operations, the operations comprising:
acquiring a plurality of to-be-distributed access requests for a storage device, the access requests at least comprising a group of read requests and a group of write requests;
a read request distribution comprising: distributing read requests of the group of read requests to a drive device of the storage device without distributing a write request of the group of write requests, until a number of distributed read requests reaches a total number of read requests of the group of read requests or a first threshold number, the drive device being configured to execute the distributed requests on the storage device; and
a write request distribution comprising: distributing at least one write request of the group of write requests to the drive device, wherein the read request distribution or the write request distribution comprises:
selecting an undistributed target request from a target group of requests, wherein the target group of requests is the group of read requests or the group of the write requests, and the target request has a minimum offset for a physical address in the group of target requests; and
distributing the selected target request to the drive device.
