IP Library Granted Patent US 12,265,742
Granted Patent B2
US 12,265,742 · App. 18/515,570 · Granted Apr 1, 2025

Quality of service management in a distributed storage system

Inventors: Maor Ben Dayan (Tel Aviv, IL); Omri Palmon (Tel Aviv, IL); Liran Zvibel (Tel Aviv, IL); Kanael Arditti (Tel Aviv, IL); Tomer Filiba (Tel Aviv, IL)
Assignee: Weka.IO Ltd.
G06F3/067G06F16/182H04L47/12H04L67/01H04L67/06H04L67/1097H04L47/11H04L47/24H04L47/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,265,742
App. No.
18/515,570
Granted
Apr 1, 2025
Kind
B2
Abstract

One or more computing devices may comprise congestion management circuitry, one or more client file system request buffers, and DESS interface circuitry. 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, where the first priority level is higher priority than the second priority level. The DESS interface circuitry is operable to determine a choking level according to the load on a plurality of DESS resources. Individual load values of the DESS resources are mapped to a composite load value using a first function. The composite load value is mapped to a congestion contribution using a second function. And, the congestion contribution is mapped to a choking level using a third function.

Claims (41)

1. A system comprising:

one or more processors operable to generate a current choking level according to a plurality of file system requests, wherein:

each of the plurality of file system requests is associated with a priority level of a plurality priority levels,

the current choking level is determined according to a normalization of the plurality of file system requests and a plurality of individual loads on a plurality of respective resources,

the normalization is relative to a number of input/output operations (IOPs), and

the number of IOPs is dynamically updated according to a machine learning algorithm.

2. The system of claim 1 , wherein the one or more processors are operable to determine a priority of each of the plurality of file system requests according to a mount point to which each file system request is directed.

3. The system of claim 1 , wherein the one or more processors are operable to queue a file system request in a buffer of the plurality of buffers according to a mount point to which the file system request is directed.

4. The system of claim 3 , wherein a file system is mounted at two or more mount points.

5. The system of claim 1 , wherein the one or more processors are operable to update the current choking level according to a previous choking level associated with file system requests previously received.

6. The system of claim 1 , wherein the one or more processors are operable to fetch file system requests in accordance with a round-robin schedule and one or more choking levels.

7. The system of claim 6 , wherein the round-robin schedule is such that, in each round of the round-robin:

at least one file system request directed to a file system mounted at a first mount point is fetched; and

at least one file system request directed to a file system mounted at a second mount point is fetched.

8. The system of claim 1 , wherein the one or more processors are operable to determine where to mount a file system according to characteristics of a node.

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

10. The system of claim 1 , wherein the one or more processors are operable to:

fetch file system requests only of a highest priority when the congestion is above a threshold.

11. A method comprising:

queuing, via a first buffer, a first plurality of file system requests associated with a first priority level;

queuing, via a second buffer, a second plurality of file system requests associated with a second priority level that is lower than the first priority level;

normalizing the first plurality of file system requests and the second plurality of file system requests relative to a number of input/output operations (IOPs), wherein the number of IOPs is dynamically updated according to a machine learning algorithm; and

determining a current choking level of the plurality of buffers according to the normalization.

12. The method of claim 11 , wherein the method comprises:

determining a priority of a file system request according to a mount point to which the file system request is directed.

13. The method of claim 11 , wherein the method comprises:

queuing a file system request in a buffer according to a mount point to which the file system request is directed.

14. The method of claim 13 , wherein a file system is mounted at two or more mount points.

15. The method of claim 11 , wherein the method comprises:

updating the current choking level according to a previous choking level associated with file system requests previously queued.

16. The method of claim 11 , wherein the method comprises:

fetching file system requests in accordance with a round-robin schedule and one or more choking levels.

17. The method of claim 16 , wherein the round-robin schedule is such that, in each round of the round-robin:

at least one file system request directed to a file system mounted at a first mount point is fetched; and

at least one file system request directed to a file system mounted at a second mount point is fetched.

18. The method of claim 11 , wherein the method comprises:

determining, based on characteristics of a node, where to mount a file system.

19. The method of claim 18 , wherein the characteristics of the node comprise a process that runs on the node.

20. The method of claim 11 , wherein the method comprises:

fetching file system requests from the first buffer and from the second buffer when the congestion is below a threshold; and

fetching file system requests from the first buffer but not from the second buffer when the congestion is above the threshold.

Continuity (7)
Continuation 17529357 · Nov 18, 2021
Continuation 16149444 · Oct 2, 2018
Continuation 15599737 · May 19, 2017
Continuation In Part 15075129 · Mar 19, 2016
Provisional Application 62366297 · Jul 25, 2016
Provisional Application 62288106 · Jan 28, 2016
Related Publication 20240086117A1 · Mar 14, 2024
References Cited (22)
US 6484145B1 · Home et al. · 2002 [cited by applicant]
US 6938085B1 · Belkin et al. · 2005 [cited by applicant]
US 7447839B2 · Uppala · 2008 [cited by applicant]
US 7877511B1 · Berger et al. · 2011 [cited by applicant]
US 8347010B1 · Radovanovic · 2013 [cited by applicant]
US 8918478B2 · Ozzie et al. · 2014 [cited by applicant]
US 9686359B1 · Ben Dayan et al. · 2017 [cited by applicant]
US 10133516B2 · Ben Dayan et al. · 2018 [cited by applicant]
US 20030115218A1 · Bobbitt et al. · 2003 [cited by applicant]
US 20040098415A1 · Bone et al. · 2004 [cited by applicant]
US 20050204045A1 · Belkin et al. · 2005 [cited by applicant]
US 20050289152A1 · Earl et al. · 2005 [cited by applicant]
US 20110119518A1 · Orfitelli · 2011 [cited by applicant]
US 20130103787A1 · Glover et al. · 2013 [cited by applicant]
US 20140105218A1 · Anand et al. · 2014 [cited by applicant]
US 20140244897A1 · Goss et al. · 2014 [cited by applicant]
US 20140281280A1 · Goss et al. · 2014 [cited by applicant]
US 20150210095A1 · Anzai · 2015 [cited by applicant]
US 20150248366A1 · Bergsten et al. · 2015 [cited by applicant]
US 20150254088A1 · Chou et al. · 2015 [cited by applicant]
US 20150355971A1 · Becker-Szendy et al. · 2015 [cited by applicant]
US 20160269247A1 · Chakradhar · 2016 [cited by examiner]