Maintaining write consistency on distributed multiple page writes

US9933947B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9933947-B1
Application numberUS-201514984376-A
CountryUS
Kind codeB1
Filing dateDec 30, 2015
Priority dateDec 30, 2015
Publication dateApr 3, 2018
Grant dateApr 3, 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.

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

  • G06F3/061Primary

    Improving I/O performance · CPC title

  • Organizing or formatting or addressing of data · 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 US9933947B1 cover?
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 b…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/061. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 03 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).