US 12,079,477 B2
Optimizing backend workload processing in a storage system
Ningdong Li, Acton, MA (US); Peng Yin, Southborough, MA (US); James McGillis, Franklin, MA (US); Gabriel Hershkovitz, Newton, MA (US); Thomas Rogers, Littleton, MA (US); and Robert Lucey, Whitechurch (IE)
Assigned to Dell Products, L.P., Hopkinton, MA (US)
Filed by Dell Products, L.P., Hopkinton, MA (US)
Filed on Jul. 20, 2022, as Appl. No. 17/869,017.
Prior Publication US 2024/0028202 A1, Jan. 25, 2024
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/061 (2013.01) [G06F 3/0655 (2013.01); G06F 3/0679 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A non-transitory tangible computer readable storage medium having stored thereon a computer program for optimizing backend workload processing in a storage system, the computer program including a set of instructions which, when executed by a computer, cause the computer to perform a method comprising the steps of:
allocating a dedicated set of threads to be individually dispatched and collectively used to process Random Read Miss (RRM) Input/Output (IO) operations and Random Write Miss (RWM) IO operations;
maintaining a calculated queueing time for each individual thread of the dedicated set of threads;
dividing the dedicated set of threads into two thread groups to create thread group A and thread group B, such that thread group A and thread group B each comprise a set of two or more individual threads of the dedicated set of threads;
subdividing the set of two or more threads of thread group B into two thread sub-groups to create thread sub-group B1 and thread sub-group B2;
individually allocating RRM IO operations to respective threads of thread group A or thread group B;
individually allocating RWM IO operations to respective threads of thread group A or thread sub-group B1, while not individually allocating any RWM IO operations to any respective thread of thread sub-group B2;
maintaining a respective workload queue for each thread, and wherein individually allocating RRM IO operations and RWM IO operations comprises individually dispatching the RRM IO operations and RWM IO operations to selected workload queues; and
dynamically changing a number of individual threads of thread sub-group B1 relative to a number of individual threads of thread sub-group B2 based on a duty cycle of threads of thread group A, wherein the duty cycle of the threads of thread group A is calculated as a proportion of time during which the threads of thread group A are being used to process IO operations during a given time period.