Methods and systems for processing read and write requests

US9946671B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9946671-B1
Application numberUS-201514969950-A
CountryUS
Kind codeB1
Filing dateDec 15, 2015
Priority dateDec 15, 2015
Publication dateApr 17, 2018
Grant dateApr 17, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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.

Assignees

Inventors

Classifications

  • Allocation of cache space to multiple users or processors · CPC title

  • with prefetch · CPC title

  • Burst mode · CPC title

  • G06F13/28Primary

    using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence) · CPC title

  • in relation to response time · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9946671B1 cover?
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 re…
Who is the assignee on this patent?
Qlogic Corp, Cavium Inc
What technology area does this patent fall under?
Primary CPC classification G06F13/28. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 17 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).