Storage system
US-2015012704-A1 · Jan 8, 2015 · US
US9971643B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9971643-B2 |
| Application number | US-201514883082-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 14, 2015 |
| Priority date | Oct 20, 2014 |
| Publication date | May 15, 2018 |
| Grant date | May 15, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
Disk arrays, e.g. RAID, JBOD · CPC title
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
Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.