IP Library Granted Patent US 9,946,671
Granted Patent B1
US 9,946,671 · App. 14/969,950 · Granted Apr 17, 2018

Methods and systems for processing read and write requests

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,946,671
App. No.
14/969,950
Granted
Apr 17, 2018
Kind
B1
Abstract

Methods and systems for processing an input/output (I/O) requests are provided. The method includes generating an I/O request by an initiator adapter of a computing device that interfaces with a target adapter; indicating by the initiator adapter that the I/O request is sequential in nature. When the I/O request is a sequential read request, the target adapter notifies a target controller to read-ahead data associated with other sequential read requests; and stores the read ahead data at a cache such that data for the other sequential read requests is provided from the cache instead of a storage device managed by the target controller. A sequential write request is processed without claiming any cache space, when data for the write request is not to be accessed within a certain duration.

Claims (35)

1. A machine implemented method for processing an input/output (I/O) request sent by an initiator adapter to a target adapter coupled to a target controller, comprising:

generating the I/O request by the initiator adapter of a computing device that interfaces with the target adapter;

indicating by the initiator adapter an I/O request pattern to the target adapter, where the I/O request pattern indicates if the I/O request is sequential in nature;

when the I/O request is a read request that is sequential in nature as indicated by the I/O request pattern, the target adapter notifying the target controller to read ahead data associated with other sequential read requests;

storing the read ahead data at a cache such that data for the other sequential read requests is provided from the cache instead of a storage device managed by the target controller; and

when the I/O request is a sequential write request as indicated by the I/O request pattern that also indicates that data associated with the sequential write request is to be accessed within a threshold duration, then processing the sequential write request by claiming space at the cache.

2. The method of claim 1 , wherein the I/O request is the sequential write request and the I/O request pattern also indicates that the data associated with the sequential write request is not to be accessed within the threshold duration.

3. The method of claim 2 , wherein the sequential write request is processed without claiming any cache space.

4. The method of claim 1 , wherein when the read request is not sequential, then the read request is processed without a read ahead operation.

5. The method of claim 1 , wherein a field in a header is used by the initiator adapter to indicate the I/O request pattern.

6. The method of claim 5 , wherein an unused bit of an originator identifier of a Fibre Channel header is used by the initiator to indicate the I/O pattern.

7. A non-transitory, machine readable storage medium having stored thereon instructions for performing a method for processing an input/output (I/O) request sent by an initiator adapter to a target adapter coupled to a target controller, comprising machine executable code which when executed by at least one machine, causes the machine to:

generate the I/O request by the initiator adapter of a computing device that interfaces with the target adapter;

indicate by the initiator adapter an I/O request pattern to the target adapter, where the I/O request pattern indicates if the I/O request is sequential in nature;

when the I/O request is a read request that is sequential in nature as indicated by the I/O request pattern, the target adapter notifies the target controller to read ahead data associated with other sequential read requests;

store the read ahead data at a cache such that data for the other sequential read requests is provided from the cache instead of a storage device managed by the target controller; and

when the I/O request is a sequential write request as indicated by the I/O request pattern that also indicates that data associated with the sequential write request is to be accessed within a threshold duration, then the sequential write request is processed by claiming space at the cache.

8. The non-transitory, storage medium of claim 7 , wherein the I/O request is the sequential write request and the I/O request pattern also indicates that the data associated with the sequential write request is not to be accessed within the threshold duration.

9. The non-transitory, storage medium of claim 8 , wherein the sequential write request is processed without claiming any cache space.

10. The non-transitory, storage medium of claim 7 , wherein when the read request is not sequential, then the read request is processed without a read ahead operation.

11. The non-transitory, storage medium of claim 7 , wherein a field in a header is used by the initiator adapter to indicate the I/O request pattern.

12. The non-transitory, storage medium of claim 11 , wherein an unused bit of an originator identifier of a Fibre Channel header is used by the initiator to indicate the I/O pattern.

13. A system comprising:

an initiator adapter coupled to a computing device having a processor executing instructions out of a memory; and

a target adapter communicating with the initiator adapter via a network connect, the target adapter coupled to a target controller that manages a storage device for storing and retrieving data on behalf of the initiator adapter;

wherein the initiator adapter generates an input/out (I/O) request; and indicates an I/O request pattern to the target adapter, where the I/O request pattern indicates if the I/O request is sequential in nature;

wherein when the I/O request is a read request that is sequential in nature as indicated by the I/O request pattern, the target adapter notifies the target controller to read ahead data associated with other sequential read requests; and stores the read ahead data at a cache such that data for the other sequential read requests is provided from the cache instead of a storage device managed by the target controller; and

when the I/O request is a sequential write request as indicated by the I/O request pattern that also indicates that data associated with the sequential write request is to be accessed within a threshold duration, then the sequential write request is processed by claiming space at the cache.

14. The system of claim 13 , wherein the I/O request is the sequential write request and the I/O request pattern also indicates that the data associated with the sequential write request is not to be accessed within the threshold duration.

15. The system of claim 14 , wherein the sequential write request is processed without claiming any cache space.

16. The system of claim 13 , wherein a field in a header is used by the initiator adapter to indicate the I/O request pattern.

17. The system of claim 16 , wherein an unused bit of an originator identifier of a Fibre Channel header is used by the initiator to indicate the I/O pattern.

18. The method of claim 1 , wherein the cache is located at the target adapter.

19. The non-transitory, storage medium of claim 7 , wherein the cache is located at the target adapter.

20. The system of claim 13 , wherein the cache is located at the target adapter.

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 Dec 15, 2015
From: TAWRI, DEEPAK; THURPATI, VIJAY
To: QLOGIC CORPORATION
Reel/Frame 037296/0875 →