Non-intrusive automated storage tiering using information of front end storage activities
US-9323682-B1 · Apr 26, 2016 · US
US9933947B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9933947-B1 |
| Application number | US-201514984376-A |
| Country | US |
| Kind code | B1 |
| Filing date | Dec 30, 2015 |
| Priority date | Dec 30, 2015 |
| Publication date | Apr 3, 2018 |
| Grant date | Apr 3, 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.
Techniques are described for processing multi-page write operations to maintain write level consistency. A multi-page write spanning multiple cache pages is directed to a target device and received on a first data storage system where writes to the target device are synchronously replicated to a second data storage system. On the first data storage system, each of the multiple cache pages may be synchronously replicated to the second data storage system. A lock on each of the cache pages is not released until an acknowledgement is received regarding successful replication of the cache page. On the second data storage system, requests to replicate the multiple cache pages containing write data of the multi-page write are received and processed using locks of corresponding cache pages on the second data storage system. Such techniques also handle concurrent reads and/or writes. Deadlock detection and resolution processing may be performed for concurrent writes.
Opening claim text (preview).
What is claimed is: 1. A method of processing I/O operations comprising: receiving, from a host, a first write at a first data storage system, wherein the first write is a request to write first data to a target location on a target device and the first data is stored in a first plurality of cache pages; performing first processing to synchronously replicate the first data of the first plurality of cache pages from the first data storage system to a second data storage system, wherein said first processing includes acquiring a lock on each of the first plurality of cache pages and not releasing said lock until an acknowledgement is received from the second data storage system regarding successful synchronous replication of said each cache page; performing second processing on the second data storage system to store the first data of the first plurality of cache pages in a second plurality of corresponding cache pages on the second data storage system; and receiving at the first data storage system a plurality of acknowledgements indicating successful synchronous replication of the first plurality of cache pages to the second data storage system, wherein the first plurality of cache pages have a sequential ordering and the second plurality of corresponding cache pages have the sequential ordering and wherein said second processing includes: receiving a first replication request to synchronously replicate one of the first plurality of cache pages of the first data storage system to a corresponding cache page of the second plurality of cache pages of the second data storage system; determining whether the one cache page is a first cache page of the sequential ordering; and if the one cache page is the first cache page of the sequential ordering, performing processing including locking said corresponding cache page, storing data from the one cache page in the corresponding cache page of the second plurality of cache pages, and returning an acknowledgement to the first data storage system regarding successful synchronous replication of the one cache page, wherein, if the one cache page is not the first cache page of the sequential ordering, performing third processing comprising: locking said corresponding cache page; determining whether a second cache page of the second plurality of cache pages on the second data storage system is locked, the second cache page having a position in the sequential ordering immediately prior to said one cache page in the sequential ordering; and if it is determined that the second cache page is locked, performing processing including unlocking the second cache page, storing data from the one cache page in the corresponding cache page of the second plurality of cache pages, and returning an acknowledgement to the first data storage system regarding successful synchronous replication of the one cache page. 2. The method of claim 1 , further comprising: returning an acknowledgment to the host regarding completion of the first write responsive to receiving the plurality of acknowledgements from the second data storage system. 3. The method of claim 1 , wherein if the second cache page of the second plurality of cache pages is not locked, performing additional processing including: unlocking said corresponding cache page, waiting for the second cache page to become locked, unlocking the second cache page, storing data from the one cache page in the corresponding cache page, and returning an acknowledgement to the first data storage system regarding successful synchronous replication of the one cache page. 4. The method of claim 3 , further comprising: determining whether the one cache page is a last cache page in the sequential ordering; and if it is determined that the one cache page is the last cache page in the sequential ordering, unlocking the corresponding cache page of the second data storage system. 5. The method of claim 1 , wherein the first data storage system exposes a first device to a host over a first path between the host and the first data storage system, and the second data storage system exposes a second device to the host over a second path between the host and the second data storage system, the first device and the second device being configured as the target device. 6. The method of claim 5 , wherein the host issues the first write over the first path and the host issues one or more other I/Os directed to the target device over the second path. 7. The method of claim 6 , wherein the one or more other I/Os include at least one read directed to the target location of the target device. 8. The method of claim 6 , wherein the one or more other I/Os include at least a second write directed to the target location of the target device, the second write writing second data spanning multiple cache pages, and wherein processing is performed to synchronously replicate the second data from the second data storage system to the first data storage system. 9. The method of claim 8 , wherein the method includes: performing deadlock detection processing that detects a first conflicting replication request to synchronously replicate a portion of the first data from the first data storage system to the second data storage system, and a second conflicting replication request to replicate a portion of the second data from the second data storage system to the first data storage system, said first data and said second data each mapping to a same location on the target device; and responsive to detecting the first conflicting replication request and the second conflicting replication request, performing resolution processing that selects one of the first conflicting replication request and the second conflicting replication request to proceed prior to the other of the first conflicting replication request and the second conflicting replication request. 10. The method of claim 9 , further comprising: processing the first conflicting replication request prior to the second conflicting replication request; and processing the second conflicting replication request after processing the first conflicting replication request. 11. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of processing I/O operations comprising: receiving, from a host, a first write at a first data storage system, wherein the first write is a request to write first data to a target location on a target device and the first data is stored in a first plurality of cache pages; performing first processing to synchronously replicate the first data of the first plurality of cache pages from the first data storage system to a second data storage system, wherein said first processing includes acquiring a lock on each of the first plurality of cache pages and not releasing said lock until an acknowledgement is received from the second data storage system regarding successful synchronous replication of said each cache page; performing second processing on the second data storage system to store the first data of the first plurality of cache pages in a second plurality of corresponding cache pages on the second data storage system; and receiving at the first data storage system a plurality of acknowledgements indicating successful synchronous replication of the first plurality of cache pages to the second data storage system, wherein the first plurality of cache pages have a sequential ordering and the second plurality of corresponding cache pages have the sequential ordering, and wherein said second processing includes: receiving a first replication request to synchronously replicate one of the first plurality of cache pages of the first
in relation to availability · CPC title
Redundant cache memory · CPC title
maintaining the standby controller/processing unit updated (initialisation or re-synchronisation thereof G06F11/1658 and subgroups) · CPC title
Improving I/O performance · CPC title
Organizing or formatting or addressing of data · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.