Optimizing backend workload processing in a storage system

US12079477B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12079477-B2
Application numberUS-202217869017-A
CountryUS
Kind codeB2
Filing dateJul 20, 2022
Priority dateJul 20, 2022
Publication dateSep 3, 2024
Grant dateSep 3, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Backend processes in a storage system are implemented using a plurality of worker threads that are divided into two thread groups: thread group A and thread group B. Threads of thread group A are able to be used to process both Random Read Miss (RRM) workload items and Random Write Miss (RWM) workload items. Threads of thread group B are divided into two thread sub-groups: thread sub-group B1 and thread sub-group B2. Threads of thread sub-group B1 are able to be used to process both RRM and RWM workload items, while threads of thread sub-group B2 are reserved to be used to process only RRM workload items. The size of thread sub-group B2 relative to the size of thread sub-group B1 changes over time (from 0 threads to all threads of thread group B), depending on the duty cycle of the threads of group A.

First claim

Opening claim text (preview).

What is claimed is: 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. 2. The non-transitory tangible computer readable storage medium of claim 1 , wherein the calculated queueing time for each thread is based on a number of RRM IO operations in the respective workload queue times a current average RRM IO operation processing time, plus a number of RWM IO operations in the respective workload queue times a current average RWM IO operation processing time. 3. The non-transitory tangible computer readable storage medium of claim 2 , wherein each RRM IO operation is allocated to a respective thread of thread group A or thread group B having a minimum calculated queueing time at the time of allocation; and wherein each RWM IO operation is allocated to a respective thread of thread group A and thread of thread sub-group B1 having a minimum calculated queueing time at the time of allocation. 4. The non-transitory tangible computer readable storage medium of claim 2 , wherein the current average RRM IO operation processing time is an average amount of time required to process a recent set of RRM IO operations after picking the RRM IO operations from the workload queues. 5. The non-transitory tangible computer readable storage medium of claim 1 , wherein dynamically changing the number of individual threads of thread sub-group B1 relative to the number of individual threads of thread sub-group B2 based on the duty cycle of threads of thread group A comprises: comparing the duty cycle of the threads of thread group A with a first thread group A duty cycle threshold; and upon determining that the duty cycle of thread group A is lower than the first thread group A duty cycle threshold, allocating zero threads to thread sub-group B1. 6. The non-transitory tangible computer readable storage medium of claim 1 , wherein dynamically changing the number of individual threads of thread sub-group B1 relative to the number of individual threads of thread sub-group B2 based on the duty cycle of threads of thread group A comprises: comparing the duty cycle of the threads of thread group A with a first thread group A duty cycle threshold; comparing the duty cycle of the threads of thread group A with a second thread group A duty cycle threshold, the second thread group A duty cycle threshold being higher than the first thread group A duty cycle threshold; and upon determining that the duty cycle of thread group A is higher than the first thread group A duty cycle threshold and lower than the second thread group A duty cycle threshold, allocating a number of threads to sub-group B1 based on an allocation function. 7. The non-transitory tangible computer readable storage medium of claim 6 , wherein the allocation function is based on a difference between the duty cycle of thread group A and the first thread group A duty cycle threshold or a difference between the duty cycle of thread group A and the second thread group A duty cycle threshold. 8. The non-transitory tangible computer readable storage medium of claim 7 , wherein the allocation function is a linear function or a non-linear function. 9. The non-transitory tangible computer readable storage medium of claim 1 , wherein dynamically changing a number of threads of thread sub-group B1 based on a duty cycle of threads of thread group A comprises: comparing the duty cycle of the threads of thread group A with a first thread group A duty cycle threshold; and comparing the duty cycle of the threads of thread group A with a second thread group A duty cycle threshold, the second thread group A duty cycle threshold being higher than the first thread group A duty cycle threshold; and upon determining that the duty cycle of thread group A is higher than the second thread group A duty cycle threshold, allocating all threads of thread group B to thread sub-group B1. 10. A method of optimizing backend workload processing in a storage system, comprising: 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 any thread 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. 11. The method of claim 10 , wherein the calculated queueing time for each thread is based on a number of RRM IO operations in the respective workload queue times a current average RRM IO operation processing time, plus a number of RWM IO operations in

Assignees

Inventors

Classifications

  • Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices · CPC title

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • Disk arrays, e.g. RAID, JBOD · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12079477B2 cover?
Backend processes in a storage system are implemented using a plurality of worker threads that are divided into two thread groups: thread group A and thread group B. Threads of thread group A are able to be used to process both Random Read Miss (RRM) workload items and Random Write Miss (RWM) workload items. Threads of thread group B are divided into two thread sub-groups: thread sub-group B1 a…
Who is the assignee on this patent?
Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification G06F3/061. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 03 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).