Rate matching technique for balancing segment cleaning and I/O workload

US9671960B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9671960-B2
Application numberUS-201414484565-A
CountryUS
Kind codeB2
Filing dateSep 12, 2014
Priority dateSep 12, 2014
Publication dateJun 6, 2017
Grant dateJun 6, 2017

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.

A rate matching technique may be configured to adjust a rate of cleaning of one or more selected segments of the storage array to accommodate a variable rate of incoming workload processed by a storage input/output (I/O) stack executing on one or more nodes of a cluster. An extent store layer of the storage I/O stack may clean a segment in accordance with segment cleaning which, illustratively, may be embodied as a segment cleaning process. The rate matching technique may be implemented as a feedback control mechanism configured to adjust the segment cleaning process based on the incoming workload. Components of the feedback control mechanism may include one or more weight schedulers and various accounting data structures, e.g., counters, configured to track the progress of segment cleaning and free space usage. The counters may also be used to balance the rates of segment cleaning and incoming I/O workload, which may change depending upon an incoming I/O rate. When the incoming I/O rate changes, the rate of segment cleaning may be adjusted accordingly to ensure that rates are substantially balanced.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving, at an incoming rate, a plurality of write requests directed towards one or more logical units (LUN), each write request having data and processed at a node of a cluster, the node having a memory and connected to a storage array of solid state drives (SSDs); storing the data of each write request as one or more user data extents in a first segment spanning a set of SSDs, the first segment having a log-structured layout; tracking a percentage of free space of the first segment; tracking a percentage of bytes relocated from the first segment to a second segment spanning the set of SSDs, the second segment having the log-structured layout; computing an error by subtracting the percentage of free space from the percentage of bytes relocated; and controlling a rate of cleaning the first segment by substantially matching the cleaning rate to the incoming rate based on the computed error. 2. The method of claim 1 wherein the computed error is computed in response to a change in the percentage of free space exceeding a threshold. 3. The method of claim 1 further comprising: processing a relocation queue in proportion to a first weight assigned to the relocation queue, the first weight determined using the computed error, wherein the bytes relocated from the first segment to the second segment are queued to the relocation queue. 4. The method of claim 3 wherein the processing of the relocation queue in proportion to the first weight occurs by an amount of bytes processed from the relocation queue. 5. The method of claim 3 wherein the processing of the relocation queue in proportion to the first weight occurs by an amount of bytes processed from the relocation queue. 6. The method of claim 3 wherein the data of each write request is queued to a user data queue separate from the relocation queue. 7. The method claim 6 further comprising: processing the user data queue in proportion to a second weight assigned to the user data queue such that a ratio of the first weight to the second weight is maintained. 8. The method of claim 3 wherein each SSD of the set of SSDs has a separate read relocation queue, and wherein the first weight is assigned to a write relocation write queue shared among the set of SSDs. 9. The method of claim 8 wherein the first weight is modified in response to a number of read requests in the read queues exceeding a threshold. 10. A method comprising: receiving, at an incoming rate, a plurality of write requests directed towards one or more logical units (LUN), each write request having data and processed at a node of a cluster, the node having a memory and connected to a storage array of solid state drives (SSDs); storing the data of each write request as one or more user data extents in a first segment spanning a set of SSDs, the first segment having a log-structured layout; tracking an amount free space of the first segment; tracking an amount bytes relocated from the first segment to a second segment spanning the set of SSDs; setting a desired rate of relocating bytes from the first segment to the second segment by computing an error using the amount free space and the amount of bytes relocated; and controlling a relocation queue to maintain the desired rate of cleaning, wherein relocate bytes are queued to the relocation queue. 11. A system comprising: a storage system having a memory connected to a processor via a bus; a storage array coupled to the storage system and having one or more solid state drives (SSDs); a storage I/O stack executing on the processor of the storage system, the storage I/O stack configured to: receive, at an incoming rate, a plurality of write requests directed towards one or more logical units (LUN), each write request having data; store the data of each write request as one or more user data extents in a first segment spanning a set of SSDs, the first segment having a log-structured layout; track a percentage of free space of the first segment; track a percentage of bytes relocated from the first segment to a second segment spanning the set of SSDs, the second segment having the log-structured layout; and compute an error by subtracting the percentage of free space from the percentage of bytes relocated; and control a rate of cleaning the first segment by substantially matching the cleaning rate to the incoming rate based on the computed error. 12. The system of claim 11 wherein the computed error is computed in response to a change in the percentage of free space exceeding a threshold. 13. The system of claim 11 wherein the storage I/O stack is further configured to: process a relocation queue in proportion to a first weight assigned to the relocation queue, the first weight determined using the computed error, wherein the bytes relocated from the first segment to the second segment are queued to the relocation queue. 14. The system of claim 13 wherein the data of each write request is queued to a user data queue separate from the relocation queue. 15. The system of claim 14 wherein the storage I/O stack is further configured to: process the user data queue in proportion to a second weight assigned to the user data queue such that a ratio of the first weight to the second weight is maintained. 16. The system of claim 13 wherein each SSD of the set of SSDs has a separate read relocation queue, and wherein the first weight is assigned to a write queue shared among the set of SSDs. 17. The system of claim 16 wherein the first weight is modified in response to a number of read requests in the read queues exceeds a threshold. 18. The system of claim 16 wherein the first weight assigned to each write queue is modified in response to a number of relocation operations dispatched.

Assignees

Inventors

Classifications

  • G06F3/0619Primary

    in relation to data integrity, e.g. data losses, bit errors · CPC title

  • Cleaning, compaction, garbage collection, erase control · CPC title

  • Improving I/O performance · CPC title

  • Performance improvement · CPC title

  • in block erasable memory, e.g. flash memory · 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 US9671960B2 cover?
A rate matching technique may be configured to adjust a rate of cleaning of one or more selected segments of the storage array to accommodate a variable rate of incoming workload processed by a storage input/output (I/O) stack executing on one or more nodes of a cluster. An extent store layer of the storage I/O stack may clean a segment in accordance with segment cleaning which, illustratively,…
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0619. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 06 2017 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).