Processing an input/output operation request

US9971643B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9971643-B2
Application numberUS-201514883082-A
CountryUS
Kind codeB2
Filing dateOct 14, 2015
Priority dateOct 20, 2014
Publication dateMay 15, 2018
Grant dateMay 15, 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.

A method, computer program product, and apparatus for processing an input/output IO operation request by maintaining a first chain table and a first cache table for each of the plurality of storage array groups, the method, computer program product, and apparatus including generating a second cache table comprising a second plurality of cache slots for the cache slot in the first plurality of cache slots, corresponding to a specific storage address range for which a number of times of the IO operation requests exceeds a first predetermined threshold; and processing the IO operation request received by the first processor based at least on the first chain table and the first cache table and/or the second cache table.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for processing an input/output operation request in a storage device, the storage device comprising a first processor, a second processor, and a plurality of storage array groups, the method comprising: maintaining, at the first processor, a first chain table and a first cache table for each of a plurality of storage array groups, wherein each first chain table at least holds information regarding an input/output operation request that has been permitted by the first processor with respect to a specific storage address range in a corresponding storage array group, and each first cache table comprises a first plurality of cache slots, wherein each of the first plurality of cache slots holds a permission state of the second processor with respect to an input/output operation on a specific storage address range in the corresponding storage array group; in response to a number of times that input/output operation requests access to a particular storage address range exceeding a threshold, generating a second cache table for a cache slot of the first plurality of cache slots that corresponds to the particular storage address range wherein the second cache table comprises a second plurality of cache slots the second plurality of cache slots corresponding to the particular storage address range wherein each of the second plurality of cache slots holds a permission state of the second processor with respect to an input/output operation on a portion of the particular storage address range, wherein the portion of the particular address range is smaller than the particular storage address range; wherein the permission states comprise idle, shared, and exclusive; and processing the input/output operation request received by the first processor based at least on the first chain table and the first cache table and/or the second cache table. 2. The method according to claim 1 , wherein: all of the cache slots in each first cache table correspond to a whole storage address range comprised by the corresponding storage array group. 3. The method according to claim 1 , wherein generating the second cache table further comprises: labelling one or more cache slots, among the first plurality of cache slots, each corresponding to a specific storage address range for which a number of times of the input/output operation requests exceeds the first predetermined threshold; and generating the second cache table respectively for one or more of the labelled one or more cache slots. 4. The method according to claim 1 , further comprising: if the permission states held by the second plurality of cache slots in the second cache table are identical states, setting the cache slot, among the first plurality of cache slots, for which the second cache table is generated as the identical state and deleting the second cache table. 5. The method according to claim 1 , further comprising: judging whether the number of times an input/output operation requests access to a storage address range corresponding to the second cache table is lower than a second predetermined threshold; and if the number of times is lower than the second predetermined threshold, reclaiming the second cache table. 6. The method according to claim 5 , wherein reclaiming the second cache table further comprises: labelling one or more cache slots, among the second plurality of cache slots, each corresponding to a specific storage address range for which the number of times of the input/output operation requests is lower than a third predetermined threshold; checking whether there is an uncompleted input/output operation on the specific storage address range corresponding to an unlabeled cache slot in the second plurality of cache slots; on determination that there are no uncompleted input/output operations, labelling the unlabeled cache slot in the second plurality of cache slots; and if all of the second plurality of cache slots are labelled, combining all the cache slots in the second cache table into the cache slot in the first cache table that corresponds to the particular storage address range, and deleting the second cache table. 7. The method according to claim 1 , wherein the second cache table contains the same number of cache slots as each of the first plurality of cache tables. 8. The method according to claim 1 , further comprising: setting a maximum memory space for each first cache table and the second cache table. 9. The method according to claim 1 , wherein each first chain table further holds information regarding an input/output operation request that was not permitted by the first processor and was thus placed in a waiting chain. 10. A system, comprising: a storage device including a first processor, a second processor, and a plurality of storage array groups; and computer-executable logic operating in memory, wherein the computer-executable program logic is configured to process an input/output operation request in a storage device, wherein the computer-executable program logic is configured for the execution of: maintaining, at the first processor, a first chain table and a first cache table for each of a plurality of storage array groups, wherein each first chain table at least holds information regarding an input/output operation request that has been permitted by the first processor with respect to a specific storage address range in a corresponding storage array group, and first cache table comprises a first plurality of cache slots, wherein each of the first plurality of cache slots holds a permission state of the second processor with respect to an input/output operation on a specific storage address range in the corresponding storage array group; in response to a number of times that input/output operation requests access to a particular storage address range exceeding a threshold, generating a second cache table for a cache slot of the first plurality of cache slots that corresponds to a particular storage address range wherein the second cache table comprises a second plurality of cache slots the second plurality of cache slots corresponding to the particular storage address range wherein each of the second plurality of cache slots holds a permission state of the second processor with respect to an input/output operation on a portion of the particular storage address range, wherein the portion of the particular address range is smaller than the particular storage address range; wherein the permission states comprise idle, shared, and exclusive; and processing the input/output operation request received by the first processor based at least on the first chain table and the first cache table and/or the second cache table. 11. The system of claim 10 , wherein all of the cache slots in each first cache table correspond to a whole storage address range comprised by the corresponding storage array group. 12. The system of claim 10 , wherein generating the second cache table further comprises: labelling one or more cache slots, among the first plurality of cache slots, each corresponding to a specific storage address range for which a number of times of the input/output operation requests exceeds the first predetermined threshold; and generating the second cache table respectively for one or more of the labelled one or more cache slots. 13. The system of claim 10 , wherein the computer-executable program logic is further configured for the execution of: if the permission states held by the second plurality of cache slots in the second cache table are identical states, setting the cache slot, among the first plurality of cache slots, for whic

Assignees

Inventors

Classifications

  • Disk arrays, e.g. RAID, JBOD · CPC title

  • G06F3/0619Primary

    in relation to data integrity, e.g. data losses, bit errors · CPC title

  • the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • G06F11/10Primary

    Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's · 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 US9971643B2 cover?
A method, computer program product, and apparatus for processing an input/output IO operation request by maintaining a first chain table and a first cache table for each of the plurality of storage array groups, the method, computer program product, and apparatus including generating a second cache table comprising a second plurality of cache slots for the cache slot in the first plurality of c…
Who is the assignee on this patent?
Emc Corp, Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/0619. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 15 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).