IP Library Granted Patent US 12,645,386
Granted Patent B2
US 12,645,386 · App. 18/915,793 · Granted Jun 2, 2026

Congestion mitigation 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/0647G06F3/0604G06F3/0607G06F3/061G06F3/0613G06F3/0619G06F3/0635G06F3/0643G06F3/0656G06F3/0665G06F3/067G06F3/0673G06F3/0685G06F16/182G06F16/1827H04L43/0882H04L43/16H04L47/6275H04L47/83H04L49/90H04L67/06H04L67/1097
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,645,386
App. No.
18/915,793
Granted
Jun 2, 2026
Kind
B2
Abstract

A system comprises a plurality of computing devices that are communicatively coupled via a network and have a file system distributed among them, and comprises one or more file system request buffers residing on one or more of the plurality of computing devices. File system choking management circuitry that resides on one or more of the plurality of computing devices is operable to separately control: a first rate at which a first type of file system requests (e.g., one of data requests, data read requests, data write requests, metadata requests, metadata read requests, and metadata write requests) are fetched from the one or more buffers, and a second rate at which a second type of file system requests (e.g., another of data requests, data read requests, data write requests, metadata requests, metadata read requests, and metadata write requests) are fetched from the one or more buffers.

Claims (94)

1 . A distributed storage system (DSS) comprising:

a circuit configured to:

control, according to a batch size, a first rate at which a first type of requests are fetched from a request buffer; and

control a second rate at which a second type of requests are fetched from the request buffer, wherein:

the circuit is operable to control the first rate according to a batch timing, and

the circuit is operable to adjust a batch timing setting and a batch size setting.

2 . A distributed storage system (DSS) comprising:

a circuit configured to:

control, according to a batch size, a first rate at which a first type of requests are fetched from a request buffer; and

control a second rate at which a second type of requests are fetched from the request buffer, wherein:

the first type of requests comprise requests to read data from the DSS and requests to write data to the DSS; and

the second type of requests comprise requests to read metadata from the DSS and requests to write metadata to the DSS.

3 . A distributed storage system (DSS) comprising:

a circuit configured to:

control, according to a batch size, a first rate at which a first type of requests are fetched from a request buffer; and

control a second rate at which a second type of requests are fetched from the request buffer, wherein the circuit is operable to adjust:

a data batch timing setting;

a data batch size setting;

a metadata batch timing setting; and

a metadata batch size setting.

4 . A distributed storage system (DSS) comprising:

a circuit configured to:

control, according to a batch size, a first rate at which a first type of requests are fetched from a request buffer; and

control a second rate at which a second type of requests are fetched from the request buffer, wherein:

the first type of requests comprise requests to read data from the DSS and requests to read metadata from the DSS; and

the second type of requests comprise requests to write data to the DSS and requests to write metadata to the DSS.

5 . A distributed storage system (DSS) comprising:

a circuit configured to:

control, according to a batch size, a first rate at which a first type of requests are fetched from a request buffer; and

control a second rate at which a second type of requests are fetched from the request buffer, wherein the circuit is operable to adjust:

a read batch timing setting;

a read batch size setting;

a write batch timing setting; and

a write batch size setting.

6 . A distributed storage system (DSS) comprising:

a circuit configured to:

control, according to a batch size, a first rate at which a first type of requests are fetched from a request buffer; and

control a second rate at which a second type of requests are fetched from the request buffer, wherein the circuit is operable to control, independently from the first rate and the second rate, a third rate at which a third type of requests are fetched from one or more buffers.

7 . A distributed storage system (DSS) comprising:

a circuit configured to:

control, according to a batch size, a first rate at which a first type of requests are fetched from a request buffer; and

control a second rate at which a second type of requests are fetched from the request buffer, wherein the circuit is operable to adjust:

a data read batch timing setting;

a data read batch size setting;

a data write batch timing setting;

a data write batch size setting;

a metadata batch timing setting; and

a metadata batch size setting.

8 . A distributed storage system (DSS) comprising:

a circuit configured to:

control, according to a batch size, a first rate at which a first type of requests are fetched from a request buffer; and

control a second rate at which a second type of requests are fetched from the request buffer, wherein the circuit is operable to control according to a current load on one or more resources of a computing device and according to a predicted load on one or more resources of a plurality of computing devices.

9 . The DSS of claim 8 , wherein:

the one or more resources comprise a storage device; and

a load on one or more resources of the plurality of computing devices is determined according to a depth of a buffer of the storage device.

10 . A distributed storage system (DSS) comprising:

a circuit configured to:

control, according to a batch size, a first rate at which a first type of requests are fetched from a request buffer; and

control a second rate at which a second type of requests are fetched from the request buffer, wherein:

the circuit is operable to calculate a choking level according to a current load and a predicted load on one or more resources of a plurality of computing devices; and

the control of the first rate and of the second rate is determined according to the choking level.

11 . The DSS of claim 10 , wherein the calculation of the choking level comprises a mapping, according to a first determined function, of a plurality of resource load values for resources of the plurality of computing devices to a plurality of congestion contribution values.

12 . The DSS of claim 11 , wherein the plurality of resource load values comprise two or more of:

a network load value;

a processing core load value;

a memory load value; and

a storage device load value.

13 . The DSS of claim 12 , wherein the storage device load value is determined according to a depth of a buffer of a storage device of the plurality of computing devices.

14 . The DSS of claim 11 , wherein the plurality of resource load values comprises a storage device read load value and a storage device write load value.

15 . The DSS of claim 11 wherein:

the resources of the plurality of computing devices comprise a storage device that stores data and/or metadata of the DSS; and

the first determined function is determined based on characteristics of the storage device.

16 . The DSS of claim 15 , wherein the characteristics of the storage device are determined according to one or more of:

a manufacturer of the storage device;

a manufacturer of a component of the storage device;

a model of the storage device;

a model of a component of the storage device;

a serial number of the storage device; and

a serial number of a component of the storage device.

17 . The DSS of claim 15 , wherein the characteristics of the storage device comprise input/output operations per second (IOPS).

18 . The DSS of claim 10 , wherein the calculation of the choking level comprises a combining of the plurality of congestion contribution values according to a second determined function.

19 . A distributed storage system (DSS) comprising:

a circuit configured to:

control, according to a batch size, a first rate at which a first type of requests are fetched from a request buffer; and

control a second rate at which a second type of requests are fetched from the request buffer, wherein:

the circuit is configured to provide an application programming interface via one or more settings used by the circuit for the control, and

the first rate and the second rate are configurable during runtime of the circuit.

20 . A distributed storage system (DSS) comprising:

a circuit configured to:

control, according to a batch size, a first rate at which a first type of requests are fetched from a request buffer; and

control a second rate at which a second type of requests are fetched from the request buffer, wherein the circuit is operable to:

determine characteristics of hardware of a plurality of computing devices;

perform an initial configuration of one or more settings used by the circuit for the control the first rate and the second rate according to the characteristics of the hardware; and

adapt the one or more settings as requests that are serviced and/or queued for servicing by the DSS.

Continuity (10)
Continuation 18494637 · Oct 25, 2023
Continuation 18114326 · Feb 27, 2023
Continuation 17351805 · Jun 18, 2021
Continuation 16716560 · Dec 17, 2019
Continuation 16355126 · Mar 15, 2019
Continuation 15976467 · May 10, 2018
Continuation 15623608 · Jun 15, 2017
Continuation 15041123 · Feb 11, 2016
Provisional Application 62288106 · Jan 28, 2016
Related Publication 20250036282A1 · Jan 30, 2025
References Cited (74)
US 6044367A · Wolff · 2000 [cited by applicant]
US 6108304A · Abe et al. · 2000 [cited by applicant]
US 6128717A · Harrison et al. · 2000 [cited by applicant]
US 6292856B1 · Marcotte · 2001 [cited by applicant]
US 6385673B1 · DeMoney · 2002 [cited by applicant]
US 6502154B1 · Meredith · 2002 [cited by examiner]
US 7337248B1 · Rao · 2008 [cited by examiner]
US 7447839B2 · Uppala · 2008 [cited by applicant]
US 7626926B2 · Abi-Nassif et al. · 2009 [cited by applicant]
US 7877511B1 · Berger et al. · 2011 [cited by applicant]
US 8259483B1 · Ayers · 2012 [cited by applicant]
US 8347010B1 · Radovanovic · 2013 [cited by applicant]
US 8843459B1 · Aston et al. · 2014 [cited by applicant]
US 8918478B2 · Ozzie et al. · 2014 [cited by applicant]
US 9588898B1 · Vinson · 2017 [cited by examiner]
US 9626309B1 · Burke · 2017 [cited by examiner]
US 9684461B1 · Dodson · 2017 [cited by examiner]
US 9733834B1 · Ben Dayan et al. · 2017 [cited by applicant]
US 10019165B2 · Ben Dayan et al. · 2018 [cited by applicant]
US 10268378B2 · Ben Dayan et al. · 2019 [cited by applicant]
US 10545669B2 · Ben Dayan et al. · 2020 [cited by applicant]
US 11079938B2 · Ben Dayan et al. · 2021 [cited by applicant]
US 20020124137A1 · Ulrich et al. · 2002 [cited by applicant]
US 20020138559A1 · Ulrich et al. · 2002 [cited by applicant]
US 20020191311A1 · Ulrich et al. · 2002 [cited by applicant]
US 20030115218A1 · Bobbitt et al. · 2003 [cited by applicant]
US 20030135639A1 · Marejka et al. · 2003 [cited by applicant]
US 20030174699A1 · Van Asten · 2003 [cited by examiner]
US 20040064600A1 · Lee et al. · 2004 [cited by applicant]
US 20040098415A1 · Bone et al. · 2004 [cited by applicant]
US 20040158754A1 · Walls · 2004 [cited by examiner]
US 20050076031A1 · Xu et al. · 2005 [cited by applicant]
US 20050138195A1 · Bono · 2005 [cited by applicant]
US 20050289152A1 · Earl et al. · 2005 [cited by applicant]
US 20060112155A1 · Earl et al. · 2006 [cited by applicant]
US 20070036168A1 · Hsiao et al. · 2007 [cited by applicant]
US 20070133419A1 · Segel · 2007 [cited by applicant]
US 20100023722A1 · Tabbara et al. · 2010 [cited by applicant]
US 20110022566A1 · Beaverson et al. · 2011 [cited by applicant]
US 20110060887A1 · Thatcher et al. · 2011 [cited by applicant]
US 20110093628A1 · Bulgin et al. · 2011 [cited by applicant]
US 20110093679A1 · Cyr et al. · 2011 [cited by applicant]
US 20110119518A1 · Orfiteli · 2011 [cited by applicant]
US 20110258378A1 · Ananthanarayanan et al. · 2011 [cited by applicant]
US 20120005419A1 · Wu et al. · 2012 [cited by applicant]
US 20120192196A1 · Yasuda · 2012 [cited by examiner]
US 20120198152A1 · Terry et al. · 2012 [cited by applicant]
US 20120221767A1 · Post · 2012 [cited by examiner]
US 20120254508A1 · Walls · 2012 [cited by applicant]
US 20120271976A1 · Zhu et al. · 2012 [cited by applicant]
US 20130086302A1 · Tressler · 2013 [cited by examiner]
US 20130103787A1 · Glover et al. · 2013 [cited by applicant]
US 20130227111A1 · Wright · 2013 [cited by examiner]
US 20140244897A1 · Goss et al. · 2014 [cited by applicant]
US 20140281280A1 · Goss et al. · 2014 [cited by applicant]
US 20140282514A1 · Carson et al. · 2014 [cited by applicant]
US 20150142869A1 · Ulrich et al. · 2015 [cited by applicant]
US 20150210095A1 · Anzai · 2015 [cited by applicant]
US 20150242135A1 · Fujimoto · 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 20160077745A1 · Patel et al. · 2016 [cited by applicant]
US 20160179404A1 · Nanduri · 2016 [cited by examiner]
US 20160291884A1 · Halaharivi · 2016 [cited by examiner]
US 20160313944A1 · Hodgdon · 2016 [cited by examiner]
US 20170038969A1 · Choi · 2017 [cited by examiner]
US 20170060422A1 · Sharifie · 2017 [cited by examiner]
US 20170090753A1 · Benisty · 2017 [cited by examiner]
US 20180217951A1 · Benisty · 2018 [cited by examiner]
US 20250278191A1 · Clarke · 2025 [cited by examiner]
P. González-Férez and A. Bilas, “Reducing CPU and network overhead for small I/O requests in network storage protocols over raw Ethernet,” 2015 31st Symposium on Mass Storage Systems and Technologies (MSST), Santa Clara… [cited by examiner]
Int'l Search Report and Written Opinion for PCT Appln No. PCT/IB2017/000128 mailed May 19, 2017. [cited by applicant]
D. Llorente, K. Karras, M. Meitinger, H. Rauchfuss, T. Wild and A. Herkersdorf, “Accelerating Packet Buffering and Administration in Network Processors,” 2007 International Symposium on Integrated Circuits, 2007, pp. 37… [cited by applicant]