Mirror vote synchronization
US-2015269041-A1 · Sep 24, 2015 · US
US10318475B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10318475-B2 |
| Application number | US-201514749503-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 24, 2015 |
| Priority date | Jun 24, 2015 |
| Publication date | Jun 11, 2019 |
| Grant date | Jun 11, 2019 |
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.
In accordance with an embodiment, described herein is a system and method for enabling persistence of application data, using replication over a remote direct memory access (RDMA) network. In an enterprise application server or other environment having a plurality of processing nodes, a replicated store enables application data to be written using remote direct memory access to the random access memory (RAM) of a set of nodes, which avoids single points of failure. Replicated store daemons allocate and expose memory to client applications via network endpoints, at which data operations such as reads and writes can be performed, in a manner similar to a block storage device. Resilvering can be used to copy data from one node to another, if it is determined that the number of data replicas within a particular set of nodes is not sufficient to meet the persistence requirements of a particular client application.
Opening claim text (preview).
What is claimed is: 1. A system for enabling persistence of application data, using replication over a remote direct memory access (RDMA) network, comprising: a first processing node and a second processing node, wherein the first and second processing nodes each include a processor, a physical memory , and an RDMA network interface, and each execute an application server instance and client applications of the application server instance; a first replicated store held in the physical memory of the first processing node that stores a first copy of a data replica, wherein the first copy of the data replica has a data layout including a first plurality of writable data blocks, wherein the first plurality of writable data blocks are associated with a first index table, wherein a column of the first index table includes a first index offset, a first pointer, and a first incarnation number, and wherein the first plurality of data blocks is associated with a first list that indicates whether each of the first plurality of data blocks is used or is free; a second replicated store held in the physical memory of the second processing node that stores a second copy of a data replica, wherein the second copy of the data replica has a data layout including a second plurality of writable data blocks, wherein the second plurality of writable data blocks are associated with a second index table, wherein a column of the second index table includes a second index offset, a second pointer, and a second incarnation number, and wherein the second plurality of data blocks is associated with a second list indicating whether each of the second plurality of data blocks is used or is free; a first replicated store daemon operating at, and associated with, the first processing node, wherein the first replicated store daemon supports the use of the RDMA network interface at the first processing node; and a second replicated store daemon operating at, and associated with, the second processing node, wherein the second replicated store daemon supports the use of the RDMA network interface at the second processing node; wherein a client application of the application server instance executing on the first processing node writes application data to a first writable data block of the first plurality of writable data blocks that is indicated as free by the first list, and wherein the first replicated store daemon updates the value of the first pointer in the column of the first index table to point to the first writable data block, and increments the value of the incarnation number in the column of the first index table; wherein, the replicated store daemon associated with the first processing node sends, via the RDMA network interface of the first processing node and the RDMA network interface of the second processing node, the application data and the column of the first index table to the second replicated store daemon associated with the second processing node; and wherein the second replicated store daemon compares the first incarnation number of the column of the first index table with the second incarnation number of the column of the second index table to determine that the first incarnation number of the column of the first index table has been incremented, writes the application data to a second free writable data block of the second plurality of data blocks, changes the value of the second pointer of the column of the second index table to match the value of the first pointer of the column of the first index table, and increments the value of the second incarnation number of the column of the second index table. 2. The system of claim 1 , wherein the first index table includes a column for each writable data block in the first plurality of writable data blocks. 3. The system of claim 1 , wherein the index table includes an index offset for each writable data block in the first plurality of writable data blocks. 4. The system of claim 1 , wherein a resilvering by the first replicated store daemon to copy the first replicated store to a third replicated store held in the memory of a third processing node is performed if it is determined by the first replicated store daemon that the second replicated store daemon has failed. 5. The system of claim 1 , wherein the client application of the application server instance executing on the first processing node uses an application programming interface (API) of the application server instance executing on the first processing node to access the first replicated store. 6. The system of claim 1 , wherein the RDMA network is an RDMA-over-InfiniBand network. 7. The system of claim 1 , wherein the associated replicated store daemon allocates and exposes physical random access memory of the processing node. 8. The system of claim 7 , wherein the included RDMA network interface enables read and write access to the allocated and exposed physical random access memory of the processing node. 9. A method of enabling persistence of application data, using replication over a remote direct memory access (RDMA) network, comprising: executing, at a first processing node and a second processing node, wherein the first and second processing nodes each include a processor, a physical memory, and an RDMA network interface, a first application server instance at the first processing node and a second application server instance at the second processing node and client applications of the first application server instance at the first processing node and client applications of the second application instance at the second processing node; providing a first replicated store held in the physical memory of the first processing node that stores a first copy of a data replica, wherein the first copy of the data replica has a data layout including a first plurality of writable data blocks, wherein the first plurality of writable data blocks are associated with a first index table, wherein a column of the first index table includes a first index offset, a first pointer, and a first incarnation number, and wherein the first plurality of data blocks is associated with a first list that indicates whether each of the first plurality of data blocks is used or is free: providing a second replicated store held in the physical memory of the second processing node that stores a second copy of a data replica, wherein the second copy of the data replica has a data layout including a second plurality of writable data blocks, wherein the second plurality of writable data blocks are associated with a second index table, wherein a column of the second index table includes a second index offset, a second pointer, and a second incarnation number, and wherein the second plurality of data blocks is associated with a second list indicating whether each of the second plurality of data blocks is used or is free; associating a first replicated store daemon with the first processing node and a second replicated store daemon with the second processing node, wherein the first replicated store daemon operates at the first processing node and supports the use of the RDMA network interface at the first processing node, and the second replicated store daemon operates at the second processing node and supports the use of the RDMA network interface at the second processing node; writing, by a client application of the application server instance executing on the first processing node, application data to a first writable data block of the first plurality of writable data blocks that is indicated as free by the first list; updating, by the first replicated store daemon, the value of the first pointer in the column of the first index table to point to the first writable data block; in
based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30) · CPC title
Replication mechanisms · CPC title
Distributed shared memory [DSM], e.g. remote direct memory access [RDMA] · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
in relation to data integrity, e.g. data losses, bit errors · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.