Method for improving mixed random performance in low queue depth workloads
First Claim
1. A method of managing a storage system, the method comprising:
- maintaining a write cache corresponding to write commands from a host to which a storage device of the storage system is operatively coupled, the storage device including a plurality of non-volatile memory units, wherein the write cache includes write commands from the host that are mapped for storage in the plurality of non-volatile memory units but not yet saved to the non-volatile memory units;
determining a workload in accordance with commands from the host to which the storage device is operatively coupled;
in accordance with a determination that the workload is a non-qualifying workload, scheduling a regular flush of the write cache, wherein the regular flush includes flushing from the write cache a predefined amount of data to one non-volatile memory unit of the plurality of non-volatile memory units; and
in accordance with a determination that the workload is a qualifying workload, scheduling an optimized flush of the write cache, wherein the optimized flush includes flushing a first multiple of the predefined amount of data to a corresponding number of the plurality of non-volatile memory units, wherein the first multiple is an integer greater than one;
wherein determining the workload includes determining a queue depth of outstanding commands from the host and the determination that the workload is a qualifying workload comprises a determination that the queue depth is less than a predefined threshold.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods and or devices are used to enable improving mixed random performance in low queue depth workloads in a storage device (e.g., comprising a plurality of non-volatile memory units, such as one or more flash memory devices). In one aspect, the method includes (1) maintaining a write cache corresponding to write commands from a host, (2) determining a workload in accordance with commands from the host, (3) in accordance with a determination that the workload is a non-qualifying workload, scheduling a regular flush of the write cache, and (4) in accordance with a determination that the workload is a qualifying workload, scheduling an optimized flush of the write cache.
-
Citations
21 Claims
-
1. A method of managing a storage system, the method comprising:
-
maintaining a write cache corresponding to write commands from a host to which a storage device of the storage system is operatively coupled, the storage device including a plurality of non-volatile memory units, wherein the write cache includes write commands from the host that are mapped for storage in the plurality of non-volatile memory units but not yet saved to the non-volatile memory units; determining a workload in accordance with commands from the host to which the storage device is operatively coupled; in accordance with a determination that the workload is a non-qualifying workload, scheduling a regular flush of the write cache, wherein the regular flush includes flushing from the write cache a predefined amount of data to one non-volatile memory unit of the plurality of non-volatile memory units; and in accordance with a determination that the workload is a qualifying workload, scheduling an optimized flush of the write cache, wherein the optimized flush includes flushing a first multiple of the predefined amount of data to a corresponding number of the plurality of non-volatile memory units, wherein the first multiple is an integer greater than one; wherein determining the workload includes determining a queue depth of outstanding commands from the host and the determination that the workload is a qualifying workload comprises a determination that the queue depth is less than a predefined threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A storage system, comprising:
-
non-volatile memory; one or more processors; and controller memory storing one or more programs configured for execution by the one or more processors, the one or more programs including instructions for; maintaining a write cache corresponding to write commands from a host to which a storage device of the storage system is operatively coupled, the storage device including a plurality of non-volatile memory units, wherein the write cache includes write commands from the host that are mapped for storage in the plurality of non-volatile memory units but not yet saved to the non-volatile memory units; determining a workload in accordance with commands from the host to which the storage device is operatively coupled; in accordance with a determination that the workload is a non-qualifying workload, scheduling a regular flush of the write cache, wherein the regular flush includes flushing from the write cache a predefined amount of data to one non-volatile memory unit of the plurality of non-volatile memory units; and in accordance with a determination that the workload is a qualifying workload, scheduling an optimized flush of the write cache, wherein the optimized flush includes flushing a first multiple of the predefined amount of data to a corresponding number of the plurality of non-volatile memory units, wherein the first multiple is an integer greater than one; wherein determining the workload includes determining a queue depth of outstanding commands from the host and the determination that the workload is a qualifying workload comprises a determination that the queue depth is less than a predefined threshold. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium, storing one or more programs configured for execution by one or more processors of a storage system, the one or more programs including instructions for:
-
maintaining a write cache corresponding to write commands from a host to which a storage device of the storage system is operatively coupled, the storage device including a plurality of non-volatile memory units, wherein the write cache includes write commands from the host that are mapped for storage in the plurality of non-volatile memory units but not yet saved to the non-volatile memory units; determining a workload in accordance with commands from the host to which the storage device is operatively coupled; in accordance with a determination that the workload is a non-qualifying workload, scheduling a regular flush of the write cache, wherein the regular flush includes flushing from the write cache a predefined amount of data to one non-volatile memory unit of the plurality of non-volatile memory units; and in accordance with a determination that the workload is a qualifying workload, scheduling an optimized flush of the write cache, wherein the optimized flush includes flushing a first multiple of the predefined amount of data to a corresponding number of the plurality of non-volatile memory units, wherein the first multiple is an integer greater than one; wherein determining the workload includes determining a queue depth of outstanding commands from the host and the determination that the workload is a qualifying workload comprises a determination that the queue depth is less than a predefined threshold. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification