Selectively delaying cache flushing to promote write efficiency
US-9934163-B1 · Apr 3, 2018 · US
US11048414B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11048414-B2 |
| Application number | US-202016780315-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 3, 2020 |
| Priority date | Dec 29, 2015 |
| Publication date | Jun 29, 2021 |
| Grant date | Jun 29, 2021 |
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 and apparatus for managing data access comprises: receiving a write request for writing data into one or more storage blocks; in response to determining that a storage block is unavailable, writing a part of the data into a virtual storage block corresponding to the storage block, the part of the data being required to be written into the storage block; and in response to determining that the storage block becomes available, copying the part of the data from the virtual storage block to the storage block. The embodiments of the present disclosure further disclose a corresponding apparatus. By introducing the virtual storage blocks in the data access, the embodiments of the present disclosure can realize the parallel data transfers of a plurality of writes and thus greatly improve the data writing performance of the system.
Opening claim text (preview).
We claim: 1. A method of managing data access, comprising: receiving a first write request specifying a write of first data to a first range, the first range represented in a data cache by a first ordered series of cache logical pages (CLPs), each CLP including multiple cache pages configured to store continuous disk data; receiving a second write request specifying a write of second data to a second range, the second range represented in the data cache by a second ordered series of CLPs, the first ordered series of CLPs at least partially overlapping the second ordered series of CLPs and forming a set of shared CLPs; initiating processing in the data cache of the first write request and the second write request; and while processing the second write request and in response to encountering a real CLP in the set of shared CLPs that is locked, (i) creating a virtual CLP for the real CLP and (ii) continuing to process the second write request by writing portions of the second data to the virtual CLP. 2. The method of claim 1 , wherein the virtual CLP manages a same disk range as the real CLP, and wherein the method further comprises, after the real CLP becomes unlocked, copying or merging contents of the virtual CLP into the real CLP. 3. The method of claim 1 , wherein the set of shared CLPs includes an ordered series of multiple shared CLPs, wherein, when creating the virtual CLP, the method further comprises creating a set of additional virtual CLPs, the set of additional virtual CLPs including an additional virtual CLP for each CLP that follows the real CLP in the ordered series of shared CLPs, and wherein continuing to process the second write request includes writing other portions of the second data to the plurality of additional virtual CLPs. 4. The method of claim 3 , further comprising exclusively locking each of ordered series of shared CLPs when accessing the respective CLPs for writing. 5. The method of claim 4 , further comprising arranging write requests for accessing a CLP in a waiting queue. 6. The method of claim 3 , wherein the ordered series of multiple shared CLPs maintain mappings between cache pages in the data cache and respective data on disks. 7. The method of claim 3 , wherein the ordered series of multiple shared correspond to respective LBA (logical block address) ranges. 8. An apparatus for managing data access, the apparatus comprising control circuitry configured to: receive a first write request specifying a write of first data to a first range, the first range represented in a data cache by a first ordered series of cache logical pages (CLPs), each CLP including multiple cache pages configured to store continuous disk data; receive a second write request specifying a write of second data to a second range, the second range represented in the data cache by a second ordered series of CLPs, the first ordered series of CLPs at least partially overlapping the second ordered series of CLPs and forming a set of shared CLPs; initiate processing in the data cache of the first write request and the second write request; and while processing the second write request and in response to encountering a real CLP in the set of shared CLPs that is locked, (i) create a virtual CLP for the real CLP and (ii) continue to process the second write request by writing portions of the second data to the virtual CLP. 9. The apparatus of claim 8 , wherein the virtual CLP is configured to manage a same disk range as the real CLP, and wherein the control circuitry is further configured to copy or merge contents of the virtual CLP into the real CLP after the real CLP becomes unlocked. 10. The apparatus of claim 8 , wherein the set of shared CLPs includes an ordered series of multiple shared CLPs, wherein, when configured to create the virtual CLP, the control circuitry is further configured to create a set of additional virtual CLPs, the set of additional virtual CLPs including an additional virtual CLP for each CLP that follows the real CLP in the ordered series of shared CLPs, and wherein the control circuitry configured to continue to process the second write request is further configured to write other portions of the second data to the plurality of additional virtual CLPs. 11. The apparatus of claim 10 , wherein the control circuitry is further configured to exclusively lock each of ordered series of shared CLPs when accessing the respective CLPs for writing. 12. The apparatus of claim 11 , wherein the control circuitry is further configured to arrange write requests for accessing a CLP in a waiting queue. 13. The apparatus of claim 10 , wherein the ordered series of multiple shared CLPs maintain mappings between cache pages in the data cache and respective data on disks. 14. A computer program product including a set of non-transitory, computer-readable storage media having computer-readable program instructions stored thereon which, when executed by a computer, cause the computer to perform a method of managing data access, the method comprising: receiving a first write request specifying a write of first data to a first range, the first range represented in a data cache by a first ordered series of cache logical pages (CLPs), each CLP including multiple cache pages configured to store continuous disk data; receiving a second write request specifying a write of second data to a second range, the second range represented in the data cache by a second ordered series of CLPs, the first ordered series of CLPs at least partially overlapping the second ordered series of CLPs and forming a set of shared CLPs; initiating processing in the data cache of the first write request and the second write request; and while processing the second write request and in response to encountering a real CLP in the set of shared CLPs that is locked, (i) creating a virtual CLP for the real CLP and (ii) continuing to process the second write request by writing portions of the second data to the virtual CLP. 15. The computer program product of claim 14 , wherein the virtual CLP manages a same disk range as the real CLP, and wherein the method further comprises, after the real CLP becomes unlocked, copying or merging contents of the virtual CLP into the real CLP. 16. The computer program product of claim 14 , wherein the set of shared CLPs includes an ordered series of multiple shared CLPs, wherein, when creating the virtual CLP, the method further comprises creating a set of additional virtual CLPs, the set of additional virtual CLPs including an additional virtual CLP for each CLP that follows the real CLP in the ordered series of shared CLPs, and wherein continuing to process the second write request includes writing other portions of the second data to the plurality of additional virtual CLPs. 17. The computer program product of claim 16 , wherein the method further comprises exclusively locking each of ordered series of shared CLPs when accessing the respective CLPs for writing. 18. The computer program product of claim 17 , wherein the method further comprises arranging write requests for accessing a CLP in a waiting queue. 19. The computer program product of claim 16 , wherein the ordered series of multiple shared CLPs maintain mappings between cache pages in the data cache and respective data on disks. 20. The computer program product of claim 16 , wherein the ordered series of multiple shared correspond to respective LBA (logical block address) ranges.
at data level, e.g. file, record or object virtualisation · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
in relation to response time · CPC title
Improving I/O performance · CPC title
Data buffering arrangements · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.