IP Library › Granted Patent US 10,990,289
Granted Patent B2
US 10,990,289 · App. 16/146,827 · Granted Apr 27, 2021

Data storage systems using time-based read ahead

Inventors: Michael Barrell (Longmont, CO); Zachary D. Traut (Denver, CO); Scott Gergely (Arvada, CO)
Assignee: Seagate Technology LLC
G06F3/061G06F3/0653G06F3/0659G06F3/0689G06F12/0862G06F12/0868G06F2212/1024G06F2212/602
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,990,289
App. No.
16/146,827
Granted
Apr 27, 2021
Kind
B2
Abstract

A data storage system includes a host system configured to provide an I/O request stream and a data storage subsystem. The data storage subsystem has a data storage device and a processor. The processor is configured to provide streaming data in response to the I/O request stream, determine a current streaming rate of the I/O request stream, and determine a time-based read ahead size based on a time ahead duration and the current streaming rate of the I/O request stream. The time-based read ahead size may be updated while streaming, for example, after a delay period.

Claims (41)

1. A data storage system comprising:

a host system configured to provide an I/O request stream comprising a plurality of I/O requests; and

a data storage subsystem comprising a data storage device and a processor configured to:

provide streaming data to the host system in response to the I/O request stream;

determine a current streaming rate of the I/O request stream;

determine a time-based read ahead size based on a time ahead duration and the current streaming rate of the I/O request stream; and

set a read ahead cache size of the data storage subsystem to buffer the streaming data in memory based on the time-based read ahead size.

2. The system of claim 1 , wherein the time-based read ahead size is variable in response to the time ahead duration being static and the current streaming rate being variable.

3. The system of claim 1 , wherein the processor is further configured to update the current streaming rate while providing streaming data based on the I/O request stream.

4. The system of claim 1 , wherein the processor is further configured to wait a predetermined delay after beginning to receive the I/O request stream to determine the time-based read ahead size.

5. The system of claim 1 , wherein the processor is further configured to determine the time ahead duration based on a streaming parameter, the streaming parameter based on one or more of: a target stream quality, a target frame rate, a user input, an encoding scheme, a type of file, and a compression configuration.

6. The system of claim 1 , wherein the processor is further configured to determine the time ahead duration based on a storage subsystem parameter, the storage subsystem parameter based on one or more of: a system configuration, a system latency, and a latency probability.

7. The system of claim 1 , wherein the processor is further configured to:

determine a rate of I/O requests and one or more I/O sizes associated with the I/O request stream; and

determine the current streaming rate of the I/O request stream based on the time ahead duration, the rate of I/O requests, and the one or more I/O sizes.

8. The system of claim 1 , wherein the processor further configured to:

determine a tail latency based on one or more latencies of the data storage subsystem; and

set the time ahead duration to a value equal to or greater than the tail latency.

9. The system of claim 1 , wherein the time ahead duration is less than or equal to 500 milliseconds.

10. A method comprising:

providing data to a host system in response to an I/O request stream comprising a plurality of I/O requests;

determining a current streaming rate of the I/O request stream;

determining a time-based read ahead size based on a predetermined time ahead duration and the current streaming rate of the I/O request stream; and

setting a read ahead cache size of a data storage subsystem to buffer the streaming data in memory based on the time-based read ahead size.

11. The method of claim 10 , wherein the time-based read ahead size is variable in response to the time ahead duration being static and the current streaming rate being variable.

12. The method of claim 10 , further comprising updating the current streaming rate while providing streaming data based on the I/O request stream.

13. The method of claim 10 , further comprising waiting a predetermined delay in response to receiving the I/O request stream to determine the time-based read ahead size.

14. The method of claim 10 , further comprising determining the time ahead duration based on a streaming parameter, the streaming parameter based on one or more of: a target stream quality, a target frame rate, a user input, an encoding scheme, a type of file, and a compression configuration.

15. The method of claim 10 , further comprising determine the time ahead duration based on a storage subsystem parameter, the storage subsystem parameter based on one or more of: a system configuration, a system latency, and a latency probability.

16. A data storage subsystem comprising:

a data storage device comprising data; and

a processor configured to:

provide data to a host system in response to an I/O request stream comprising a plurality of I/O requests;

determine a current streaming rate of the I/O request stream;

determine a time-based read ahead size based on a predetermined time ahead duration and the current streaming rate of the I/O request stream; and

set a read ahead cache size of the storage subsystem to buffer the streaming data in memory based on the time-based read ahead size.

17. The system of claim 16 , wherein the time-based read ahead size is variable in response to the time ahead duration being static and the current streaming rate being variable.

18. The system of claim 16 , wherein the processor is further configured to update the current streaming rate while providing streaming data based on the I/O request stream.

19. The system of claim 16 , wherein the processor is further configured to wait a predetermined delay after beginning to receive the I/O request stream to determine the time-based read ahead size.

20. The system of claim 16 , wherein the processor is further configured to determine the time ahead duration based on a streaming parameter, the streaming parameter based on one or more of: a target stream quality, a target frame rate, a user input, an encoding scheme, a type of file, and a compression configuration.

21. The system of claim 16 , wherein the processor is further configured to determine the time ahead duration based on a storage subsystem parameter, the storage subsystem parameter based on one or more of: a system configuration, a system latency, and a latency probability.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2018
From: BARRELL, MICHAEL; TRAUT, ZACHARY D.; GERGELY, SCOTT
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 047724/0690 →
Continuity (1)
Related Publication 20200104045A1 · Apr 2, 2020
Cited By (1)
US 12,585,586