Real-time I/O pattern recognition to enhance performance and endurance of a storage device
First Claim
1. A data processing method, comprising:
- at a storage device;
receiving from a host a plurality of input/output (I/O) requests, the I/O requests specifying operations to be performed in a plurality of regions in a logical address space of the host; and
performing one or more operations for each region of the plurality of regions in the logical address space of the host, including;
maintaining, and storing in a region data structure in the storage device, a history of I/O request patterns in the region in the logical address space of the host for a predetermined time period, the maintained history of I/O request patterns in the region including a plurality of count values for the region, each count value corresponding to a different I/O request pattern, wherein the plurality of count values are determined by tracking at least two of the following types of I/O requests in the region;
sequential write requests, unaligned write requests, write requests to write data of a size less than a predefined small-size threshold, and write requests to write data of a size greater than a predefined large-size threshold; and
using the history of I/O request patterns in the region in the logical address space of the host to adjust subsequent I/O processing in the region.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods and/or devices are used to enable real-time I/O pattern recognition to enhance performance and endurance of a storage device. In one aspect, the method includes (1) at a storage device, receiving from a host a plurality of input/output (I/O) requests, the I/O requests specifying operations to be performed in a plurality of regions in a logical address space of the host, and (2) performing one or more operations for each region of the plurality of regions in the logical address space of the host, including (a) maintaining a history of I/O request patterns in the region for a predetermined time period, and (b) using the history of I/O request patterns in the region to adjust subsequent I/O processing in the region.
-
Citations
26 Claims
-
1. A data processing method, comprising:
-
at a storage device; receiving from a host a plurality of input/output (I/O) requests, the I/O requests specifying operations to be performed in a plurality of regions in a logical address space of the host; and performing one or more operations for each region of the plurality of regions in the logical address space of the host, including; maintaining, and storing in a region data structure in the storage device, a history of I/O request patterns in the region in the logical address space of the host for a predetermined time period, the maintained history of I/O request patterns in the region including a plurality of count values for the region, each count value corresponding to a different I/O request pattern, wherein the plurality of count values are determined by tracking at least two of the following types of I/O requests in the region;
sequential write requests, unaligned write requests, write requests to write data of a size less than a predefined small-size threshold, and write requests to write data of a size greater than a predefined large-size threshold; andusing the history of I/O request patterns in the region in the logical address space of the host to adjust subsequent I/O processing in the region. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A storage device, comprising:
-
one or more processors; and memory storing one or more programs, which when executed by the one or more processors cause the storage device to; receive, at the storage device, from a host a plurality of input/output (I/O) requests, the I/O requests specifying operations to be performed in a plurality of regions in a logical address space of the host; and perform one or more operations for each region of the plurality of regions in the logical address space of the host, including; maintaining, and storing in a region data structure in the storage device, a history of I/O request patterns in the region in the logical address space of the host for a predetermined time period, the maintained history of I/O request patterns in the region including a plurality of count values for the region, each count value corresponding to a different I/O request pattern, wherein the plurality of count values are determined by tracking at least two of the following types of I/O requests in the region;
sequential write requests, unaligned write requests, write requests to write data of a size less than a predefined small-size threshold, and write requests to write data of a size greater than a predefined large-size threshold; andusing the history of I/O request patterns in the region in the logical address space of the host to adjust subsequent I/O processing in the region. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A storage system, comprising:
-
a storage medium; one or more processors; and memory storing one or more programs, which when executed by the one or more processors cause the storage system to; receive, at a storage device, from a host a plurality of input/output (I/O) requests, the I/O requests specifying operations to be performed in a plurality of regions in a logical address space of the host; and perform one or more operations for each region of the plurality of regions in the logical address space of the host, including; maintaining, and storing in a region data structure in the storage device, a history of I/O request patterns in the region in the logical address space of the host for a predetermined time period, the maintained history of I/O request patterns in the region including a plurality of count values for the region, each count value corresponding to a different I/O request pattern, wherein the plurality of count values are determined by tracking at least two of the following types of I/O requests in the region;
sequential write requests, unaligned write requests, write requests to write data of a size less than a predefined small-size threshold, and write requests to write data of a size greater than a predefined large-size threshold; andusing the history of I/O request patterns in the region in the logical address space of the host to adjust subsequent I/O processing in the region.
-
-
26. A non-transitory computer readable storage medium, storing one or more programs configured for execution by one or more processors of a storage device, the one or more programs including instructions for:
-
receiving, at the storage device, from a host a plurality of input/output (I/O) requests, the I/O requests specifying operations to be performed in a plurality of regions in a logical address space of the host; and performing one or more operations for each region of the plurality of regions in the logical address space of the host, including; maintaining, and storing in a region data structure in the storage device, a history of I/O request patterns in the region in the logical address space of the host for a predetermined time period, the maintained history of I/O request patterns in the region including a plurality of count values for the region, each count value corresponding to a different I/O request pattern, wherein the plurality of count values are determined by tracking at least two of the following types of I/O requests in the region;
sequential write requests, unaligned write requests, write requests to write data of a size less than a predefined small-size threshold, and write requests to write data of a size greater than a predefined large-size threshold; andusing the history of I/O request patterns in the region in the logical address space of the host to adjust subsequent I/O processing in the region.
-
Specification