# US 2017/0257435 A1 · Quality of Service Management in a Distributed Storage System

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

- Number: US 2017/0257435 A1
- Document ID: US20170257435A1
- Status: Published application
- Kind: A1
- Application number: 15/599,773
- Filed: 2017-05-19
- Published: 2017-09-07
- Earliest claimed: 2016-01-28
- Assignees: Weka.IO Ltd.
- Applicants: Weka.IO LTD
- Inventors: Maor Ben Dayan; Omri Palmon; Liran Zvibel; Kanael Arditti; Tomer Filiba
- Web page: https://patentgrep.com/patent/US20170257435A1

## CPC

- G06F 3/0647: {Migration mechanisms}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0613: {in relation to throughput}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/0643: {Management of files}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0673: {Single storage device}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F 16/182: Distributed file systems
- G06F 16/1827: {Management specifically adapted to NAS (management of storage area networks [SAN] G06F3/067)}
- H04L 43/0882: Utilisation of link capacity
- H04L 43/16: Threshold monitoring
- H04L 47/6275: based on priority
- H04L 47/83: based on usage prediction
- H04L 49/90: Buffering arrangements
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- H04L 67/1097: 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]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

One or more computing devices may comprise congestion management circuitry, one or more client file system request buffers, and DESS interface circuitry. The congestion management circuitry is operable to determine an amount of congestion in the DESS. The one or more client file system request buffers is/are operable to queue first client file system requests of a first priority level and second client file system requests of a second priority level, wherein the first priority level is higher priority than the second priority level. The DESS interface circuitry is operable to control a rate at which the first file system requests and second file system requests are fetched from the one or more client file system request buffers based on the amount of congestion in the DESS, on the first priority level, and on the second priority level.

## Claims

### Claim at position 1

1-20. (canceled)

### Claim 21

A system, wherein the system comprises:
congestion management circuity operable to determine an amount of congestion in a distributed electronic storage system (DESS);
one or more client file system request buffers operable to queue a plurality of client file system requests, wherein each client file system request of the plurality of client file system requests has a size and a priority, wherein the size is determined according to the number of operations in a client file system request; and
DESS interface circuitry operable to dynamically control a choking rate and a fetching rate of the plurality of client file system requests based on:
the amount of congestion in the DESS,
the priority of each client file system request of the plurality of client file system requests,
the size of each client file system request of the plurality of client file system requests, and
a level of file system requests previously queued in the one or more client file system request buffers.

### Claim 22 (depends on 21)

The system of claim 21, wherein the system comprises:
queueing circuitry operable to:
receive a particular client file system request, and
determine the priority of the particular client file system request based on a mount point to which the particular client file system request is directed.

### Claim 23 (depends on 21)

The system of claim 21, wherein the system comprises:
queueing circuitry operable to:
receive a particular client file system request;
queue the particular client file system request in a first of the one or more buffers if the particular client file system request is directed at a first mount point; and
queue the particular client file system request in a second of the one or more buffers if the particular client file system request is directed at a second mount point.

### Claim 24 (depends on 21)

The system of claim 21, wherein a particular client file system request of the plurality of client file system requests is directed to a file system mounted at a particular mount point based on a priority associated with the particular client file system request.

### Claim 25 (depends on 24)

The system of claim 24, wherein the file system is mounted at two or more mount points.

### Claim 26 (depends on 21)

The system of claim 21, wherein the DESS interface circuitry is operable to fetch client file system requests from the one or more client file system request buffers in accordance with a round-robin schedule.

### Claim 27 (depends on 26)

The system of claim 26, wherein the round-robin schedule is such that, in each round of the round-robin:
at least one client file system request is directed to a file system mounted at a first mount point is fetched; and
at least one client file system request is directed to a file system mounted at a second mount point is fetched.

### Claim 28 (depends on 21)

The system of claim 21, wherein the system comprises:
DESS priority management circuitry operable to determine, based on characteristics of a node of the DESS, a mount point at which a file system should be mounted on the node.

### Claim 29 (depends on 28)

The system of claim 28, wherein the characteristics of the node comprise a client process that runs on the node.

### Claim 30 (depends on 21)

The system of claim 21, wherein the DESS interface circuitry is operable to:
fetch all client file system requests of the plurality of client file system requests when the amount of congestion in the DESS is below a threshold; and
fetch client file system requests of the plurality of client file system requests according to their priority when the amount of congestion in the DESS is above the threshold.

### Claim 31

One or more non-transitory machine-readable storage medium having code stored thereon, that, when executed by one or more of a plurality of computing devices of a distributed electronic storage system (DESS), configures the one or more computing devices to comprise:
congestion management circuity operable to determine an amount of congestion in the DESS;
one or more client file system request buffers operable to queue a plurality of client file system requests, wherein each client file system request of the plurality of client file system requests has a size and a priority, wherein the size is determined according to the number of operations in a client file system request; and
DESS interface circuitry operable to dynamically control a choking rate and a fetching rate of the plurality of client file system requests based on:
the amount of congestion in the DESS, the priority of each client file system request of the plurality of client file system requests,
the size of each client file system request of the plurality of client file system requests, and
a level of file system requests previously queued in the one or more client file system request buffers.

### Claim 32 (depends on 31)

The one or more non-transitory machine-readable storage medium of claim 31, wherein the code, when executed by the one or more computing devices, configures the one or more computing devices to comprise:
queueing circuitry operable to:
receive a particular client file system request, and
determine the priority of the particular client file system request based on a mount point to which the particular client file system request is directed.

### Claim 33 (depends on 31)

The one or more non-transitory machine-readable storage medium of claim 31, wherein the code, when executed by the one or more computing devices, configures the one or more computing devices to comprise:
queueing circuitry operable to:
receive a particular client file system request;
queue the particular client file system request in a first of the one or more buffers if the particular client file system request is directed at a first mount point; and
queue the particular client file system request in a second of the one or more buffers if the particular client file system request is directed at a second mount point.

### Claim 34 (depends on 31)

The one or more non-transitory machine-readable storage medium of claim 31, wherein a particular client file system request of the plurality of client file system requests is directed to a file system mounted at a particular mount point based on a priority associated with the particular client file system request.

### Claim 35 (depends on 34)

The one or more non-transitory machine-readable storage medium of claim 34, wherein the file system is mounted at two or more mount points.

### Claim 36 (depends on 31)

The one or more non-transitory machine-readable storage medium of claim 31, wherein the DESS interface circuitry is operable to fetch client file system requests from the one or more client file system request buffers in accordance with a round-robin schedule.

### Claim 37 (depends on 36)

The one or more non-transitory machine-readable storage medium of claim 36, wherein the round-robin schedule is such that, in each round of the round-robin:
at least one client file system request is directed to a file system mounted at a first mount point is fetched; and
at least one client file system request is directed to a file system mounted at a second mount point is fetched.

### Claim 38 (depends on 31)

The one or more non-transitory machine-readable storage medium of claim 31, wherein the code, when executed by the one or more computing devices, configures the one or more computing devices to comprise:
DESS priority management circuitry operable to determine, based on characteristics of a node of the DESS, a mount point at which a file system should be mounted on the node.

### Claim 39 (depends on 38)

The one or more non-transitory machine-readable storage medium of claim 38, wherein the characteristics of the node comprise a client process that runs on the node.

### Claim 40 (depends on 31)

The one or more non-transitory machine-readable storage medium of claim 31, wherein the DESS interface circuitry is operable to:
fetch all client file system requests of the plurality of client file system requests when the amount of congestion in the DESS is below a threshold; and
fetch client file system requests of the plurality of client file system requests according to their priority when the amount of congestion in the DESS is above the threshold.
