Rate matching technique for balancing segment cleaning and I/O workload
First Claim
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.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
-
Citations
18 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
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. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
Specification