US 11,726,827 B2
Hierarchical workload allocation in a storage system
Avi Goren, Tel Aviv (IL); Yogev Vaknin, Tel Aviv (IL); Asaf Levy, Tel Aviv (IL); and Oded Sonin, Tel Aviv (IL)
Assigned to VAST DATA LTD., Tel Aviv (IL)
Filed by VAST DATA LTD., Tel Aviv (IL)
Filed on Mar. 2, 2021, as Appl. No. 17/249,463.
Application 17/249,463 is a continuation in part of application No. 17/180,672, filed on Feb. 19, 2021.
Prior Publication US 2022/0269538 A1, Aug. 25, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/00 (2006.01); G06F 9/50 (2006.01); G06F 9/445 (2018.01); G06F 9/30 (2018.01); G06F 9/355 (2018.01)
CPC G06F 9/505 (2013.01) [G06F 9/30123 (2013.01); G06F 9/3555 (2013.01); G06F 9/44505 (2013.01); G06F 9/5038 (2013.01)] 7 Claims
OG exemplary drawing
 
1. A method for hierarchical workload allocation in a storage system, the method comprising:
defining workload allocation units, and assigning to each of the workload allocation units a plurality of first type shards and at least one second type shard, wherein a granularity used for sharding first type storage tasks into first type shards is different from a granularity used for sharding second type storage tasks into second type shards;
assigning the workload allocation units to current compute cores of the storage system;
determining to reallocate a compute workload of a selected current compute core of the current compute cores; wherein the selected current compute core is responsible for executing an assigned workload allocation unit that (i) is assigned to the selected current compute core and (ii) belongs to the workload allocation units;
reallocating the compute workload by (a) maintaining the responsibility of the selected current compute core for executing the assigned workload allocation unit, and (b) reassigning a subset of the first type shards of the assigned workload allocation unit to a selected new workload allocation unit that is allocated to a selected new compute core of new compute cores;
wherein the determining and the reallocating are executed during a storage system reconfiguration process for supporting addition of the new compute cores to the storage system; and
following a completion of the storage system reconfiguration process, performing load balancing on a workload allocation unit basis, the performing of the load balancing comprises migrating one or more workload allocation units of the workload allocation units from one compute core to another compute core, wherein each of the one compute core and the other compute core are selected from a group of compute cores that includes the current compute cores and the new compute cores.