US 12,265,713 B2
Scheduling storage tasks
Hillel Costeff, Tel Aviv (IL); and Asaf Levy, Tel Aviv (IL)
Assigned to VAST DATA LTD., Tel Aviv (IL)
Filed by VAST DATA LTD., Tel Aviv (IL)
Filed on Nov. 5, 2021, as Appl. No. 17/453,821.
Prior Publication US 2023/0141122 A1, May 11, 2023
Int. Cl. G06F 3/06 (2006.01); G06F 9/48 (2006.01); G06F 9/50 (2006.01)
CPC G06F 3/0631 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0656 (2013.01); G06F 3/0659 (2013.01); G06F 3/0679 (2013.01); G06F 9/4881 (2013.01); G06F 9/5027 (2013.01); G06F 2209/485 (2013.01); G06F 2209/5022 (2013.01)] 23 Claims
OG exemplary drawing
 
1. A method for managing execution of tasks on a processing circuit of a storage system, the method comprising:
(a) obtaining, by a scheduler that is executed by a hardware processing unit of a compute node of the storage system, a shared budget for executing background storage tasks and foreground storage tasks that are allocated to the hardware processing unit;
(b) obtaining, by the scheduler, a background budget for executing the background storage tasks; wherein the background budget is a fraction of the shared budget;
(c) allocating, by the scheduler, compute resources of the hardware processing unit to pending storage tasks according to the shared budget and the background budget; wherein the allocating comprises (i) allocating the shared budget while prioritizing foreground storage tasks over background storage tasks; and (ii) allocating the background budget to background storage tasks;
(d) executing, by at least one computing resource of the hardware processing unit, the pending storage tasks, according to the allocation;, by performing at least one of: (i) a foreground task of storing data of received write requests in non-volatile write buffers of hardware storage nodes of the storage system that communicate with the compute node over one or more networks, (ii) a background task of evicting data from the non-volatile write buffers, and (iii) a background task of storing the data in a permanent storage of the storage system; and
(e) increasing, by the scheduler, the background budget, allocating at least one additional computing resource of the hardware processing unit in response to the increasing, and executing the background tasks by using the at least one additional computing resource, when a current pace of evicting the data from the write buffers is slower than a current pace of storing the data in the write buffers.