Persistent memory replication in RDMA-capable networks

US10778767B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10778767-B2
Application numberUS-201715582027-A
CountryUS
Kind codeB2
Filing dateApr 28, 2017
Priority dateApr 28, 2017
Publication dateSep 15, 2020
Grant dateSep 15, 2020

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 mechanism is provided in a data processing system comprising at least one processor and at least one memory, the at least one memory comprising instructions that are executed by the at least one processor and configure the at least one processor to implement a replication protocol for replicating memory from an initiator to a target. The initiator requests one or more pages of memory at the target. Responsive to the initiator receiving a page advertisement from the target, the initiator updates a list of pages at the initiator. The list of pages is replicated at the target. The initiator performs a remote direct memory access (RDMA) write to the one or more pages of memory at the target. Responsive to successful completion of the RDMA write, the initiator updates the list of pages at the initiator. Upon completion of the RDMA write the list of pages is updated at the target.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, in a data processing system comprising at least one processor and at least one memory, the at least one memory comprising instructions that are executed by the at least one processor and configure the at least one processor to implement a replication protocol for replicating memory from an initiator to a target, the method comprising: requesting, by the initiator, one or more pages of memory at the target; responsive to the initiator receiving a page advertisement from the target, updating a list of pages at the initiator, wherein the list of pages is replicated at the target; performing, by the initiator, a remote direct memory access (RDMA) write to the one or more pages of memory at the target; responsive to successful completion of the RDMA write, updating the list of pages at the initiator, wherein upon completion of the RDMA write the list of pages is updated at the target; responsive to disconnecting from the target and subsequently reconnecting to the target, receiving a login message from the target; sending a login reply message to the target, wherein the login reply message comprises a message code and a last initiator input/output sequence number (IOSN) that completed without error; and responsive to receiving a login reply message from the target comprising a last target input/output initiator sequence number (IOSN) processed by target, removing all messages from a retry queue having an IOSN less than or equal to the last IOSN reported as processed by target and resuming the initiator. 2. The method of claim 1 , further comprising, responsive to successful completion of the RDMA write, sending a commit message from the initiator to the target. 3. The method of claim 1 , wherein the list of pages at the initiator is a circular queue, wherein a head index points to a next free page in an RDMA pool at the initiator, wherein a tail index points to a last free page in the RDMA pool at the initiator, and wherein a free index points to a last index in the RDMA pool that is not populated with any page. 4. The method of claim 1 , wherein performing the RDMA write comprises sending an RDMA request from the initiator to the target and placing the RDMA request in a posted queue at the initiator and wherein performing the RDMA write further comprises adding the RDMA request to a pending queue at the initiator responsive to determining the pending queue or a retry queue at the initiator is not empty, determining the target is disconnected, or determining there are not enough memory pages for the RDMA request at the target. 5. The method of claim 1 , wherein performing the RDMA write comprises sending an RDMA request from the initiator to the target and placing the RDMA request in a posted queue at the initiator and wherein performing the RDMA write further comprises adding the RDMA request to a retry queue at the initiator responsive to determining that the RDMA write failed. 6. The method of claim 1 , wherein performing the RDMA write comprises sending an RDMA request from the initiator to the target and placing the RDMA request in a posted queue at the initiator and wherein performing the RDMA write further comprises adding the RDMA request to a posted list at the initiator responsive to determining that the RDMA write succeeded. 7. The method of claim 1 , wherein performing the RDMA write comprises sending an RDMA request from the initiator to the target and placing the RDMA request in a posted queue at the initiator and wherein performing the RDMA write further comprises sending a commit message responsive to successful completion of the RDMA write. 8. The method of claim 1 , wherein the initiator and the target use input/output sequence numbers (IOSNs) to track messages. 9. The method of claim 1 , further comprising: responsive to determining the target is blacklisted, calling an application callback with immediate failure status. 10. A computer program product comprising a non-transitory computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device, causes the computing device to implement a replication protocol for replicating memory from an initiator to a target, wherein the computer readable program causes the computing device to: request, by the initiator, one or more pages of memory at the target; responsive to the initiator receiving a page advertisement from the target, update a list of pages at the initiator, wherein the list of pages is replicated at the target; perform, by the initiator, a remote direct memory access (RDMA) write to the one or more pages of memory at the target; responsive to successful completion of the RDMA write, update the list of pages at the initiator, wherein upon completion of the RDMA write the list of pages is updated at the target; responsive to disconnecting from the target and subsequently reconnecting to the target, receive a login message from the target; send a login reply message to the target, wherein the login reply message comprises a message code and a last initiator input/output sequence number (IOSN) that completed without error; and responsive to receiving a login reply message from the target comprising a last target input/output initiator sequence number (IOSN) processed by target, remove all messages from a retry queue having an IOSN less than or equal to the last IOSN reported as processed by target and resume the initiator. 11. The computer program product of claim 10 , wherein the computer readable program further causes the computing device to, responsive to successful completion of the RDMA write, sending a commit message from the initiator to the target. 12. The computer program product of claim 10 , wherein the list of pages at the initiator is a circular queue, wherein a head index points to a next free page in an RDMA pool at the initiator, wherein a tail index points to a last free page in the RDMA pool at the initiator, and wherein a free index points to a last index in the RDMA pool that is not populated with any page. 13. The computer program product of claim 10 , wherein performing the RDMA write comprises sending an RDMA request from the initiator to the target and placing the RDMA request in a posted queue at the initiator and wherein performing the RDMA write further comprises adding the RDMA request to a pending queue at the initiator responsive to determining the pending queue or a retry queue at the initiator is not empty, determining the target is disconnected, or determining there are not enough memory pages for the RDMA request at the target. 14. The computer program product of claim 10 , wherein performing the RDMA write comprises sending an RDMA request from the initiator to the target and placing the RDMA request in a posted queue at the initiator and wherein performing the RDMA write further comprises adding the RDMA request to a retry queue at the initiator responsive to determining that the RDMA write failed. 15. The computer program product of claim 10 , wherein performing the RDMA write comprises sending an RDMA request from the initiator to the target and placing the RDMA request in a posted queue at the initiator and wherein performing the RDMA write further comprises adding the RDMA request to a posted list at the initiator responsive to determining that the RDMA write succeeded. 16. The computer program product of claim 10 , wherein performing the RDMA write comprises sending an RDMA request from the initiator to the target and placing the RDMA request in a posted queue at t

Assignees

Inventors

Classifications

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • in relation to throughput · CPC title

  • using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence) · CPC title

  • Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes · CPC title

  • in relation to response time · 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 US10778767B2 cover?
A mechanism is provided in a data processing system comprising at least one processor and at least one memory, the at least one memory comprising instructions that are executed by the at least one processor and configure the at least one processor to implement a replication protocol for replicating memory from an initiator to a target. The initiator requests one or more pages of memory at the t…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification H04L67/1097. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Sep 15 2020 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).