IP Library Granted Patent US 9,311,021
Granted Patent B1
US 9,311,021 · App. 14/470,309 · Granted Apr 12, 2016

Methods and systems for performing a read ahead operation using an intelligent storage adapter

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 9,311,021
App. No.
14/470,309
Granted
Apr 12, 2016
Kind
B1
Abstract

Methods and systems for a read ahead operation are provided. The method includes maintaining a data structure by an adapter to track whether data blocks associated with a logical unit number (LUN) have been written or modified; extracting a starting logical block address (LBA) for executing a read request for reading data stored using the LUN; generating a LBA range for a read ahead operation that is used to predict data that may be read subsequent to the read request; determining if blocks associated with the LBA range for the read ahead operation have been written or modified; only reading ahead the blocks associated with the LBA range, when the blocks have been written to or modified; and temporarily storing the read ahead data at a cache LUN maintained by the adapter.

Claims (40)

1. A machine implemented method, comprising:

maintaining a data structure by an adapter to track whether data blocks associated with a logical unit number (LUN) have been written or modified;

extracting a starting logical block address (LBA) for executing a read request for reading data stored using the LUN;

generating a LBA range for a read ahead operation that is used to predict data that may be read subsequent to the read request;

determining if blocks associated with the LBA range for the read ahead operation have been written or modified;

only reading ahead the blocks associated with the LBA range, when the blocks have been written to or modified; and

temporarily storing read ahead data at a cache LUN maintained by the adapter.

2. The method of claim 1 , wherein the LUN is based on storage space at a storage device that is accessible via a storage area network (SAN).

3. The method of claim 1 , wherein the cache LUN is based on storage space at a local solid state storage device that is managed by the adapter.

4. The method of claim 1 , wherein the adapter maintains a bitmap for tracking blocks associated with the LBA range that may have been written or modified.

5. The method of claim 1 , wherein the blocks associated with the LBA range are not read if the blocks have not been written to or modified.

6. The method of claim 1 , wherein LBA range for the read ahead operation is greater than an LBA range of the read request.

7. The method of claim 1 , wherein the entire LBA range is read ahead if any block within the LBA range has been written to or modified.

8. A non-transitory, machine readable storage medium storing executable instructions, which when executed by a machine, causes the machine to perform a method, the method comprising:

maintaining a data structure by an adapter to track whether data blocks associated with a logical unit number (LUN) have been written or modified;

extracting a starting logical block address (LBA) for executing a read request for reading data stored using the LUN;

generating a LBA range for a read ahead operation that is used to predict data that may be read subsequent to the read request;

determining if blocks associated with the LBA range for the read ahead operation have been written or modified;

only reading ahead the blocks associated with the LBA range, when the blocks have been written to or modified; and

temporarily storing read ahead data at a cache LUN maintained by the adapter.

9. The storage medium of claim 8 , wherein the LUN is based on storage space at a storage device that is accessible via a storage area network (SAN).

10. The storage medium of claim 8 , wherein the cache LUN is based on storage space at a local solid state storage device that is managed by the adapter.

11. The storage medium of claim 8 , wherein the adapter maintains a bitmap for tracking blocks associated with the LBA range that may have been written or modified.

12. The storage medium of claim 8 , wherein the blocks associated with the LBA range are not read if the blocks have not been written to or modified.

13. The storage medium of claim 8 , wherein LBA range for the read ahead operation is greater than an LBA range of the read request.

14. The storage medium of claim 8 , wherein the entire LBA range is read ahead if any block within the LBA range has been written to or modified.

15. A system comprising:

a processor executing instructions out of a memory for:

maintaining a data structure by an adapter to track whether data blocks associated with a logical unit number (LUN) have been written or modified;

extracting a starting logical block address (LBA) for executing a read request for reading data stored using the LUN;

generating a LBA range for a read ahead operation that is used to predict data that may be read subsequent to the read request;

determining if blocks associated with the LBA range for the read ahead operation have been written or modified;

only reading ahead the blocks associated with the LBA range, when the blocks have been written to or modified; and

temporarily storing read ahead data at a cache LUN maintained by the adapter.

16. The system of claim 14 , wherein the LUN is based on storage space at a storage device that is accessible via a storage area network (SAN).

17. The system of claim 14 , wherein the cache LUN is based on storage space at a local solid state storage device that is managed by the adapter.

18. The system of claim 14 , wherein the adapter maintains a bitmap for tracking blocks associated with the LBA range that may have been written or modified.

19. The system of claim 14 , wherein the blocks associated with the LBA range are not read if the blocks have not been written to or modified.

20. The system of claim 14 , wherein LBA range for the read ahead operation is greater than an LBA range of the read request.

21. The system of claim 14 , wherein the entire LBA range is read ahead if any block within the LBA range has been written to or modified.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2014
From: SHAH, BHAVIK
To: QLOGIC, CORPORATION
Reel/Frame 033622/0142 →