Method and apparatus for maintaining replica sets

US9317576B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9317576-B2
Application numberUS-201314064705-A
CountryUS
Kind codeB2
Filing dateOct 28, 2013
Priority dateDec 23, 2010
Publication dateApr 19, 2016
Grant dateApr 19, 2016

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.

Provided are systems and methods for managing asynchronous replication in a distributed database environment, wherein a cluster of nodes are assigned roles for processing database requests. In one embodiment, the system provides a node with a primary role to process write operations against its database, generate an operation log reflecting the processed operations, and permit asynchronous replication of the operations to at least one secondary node. In another embodiment, the primary node is the only node configured to accept write operations. Both primary and secondary nodes can process read operations. Although in some settings read requests can be restricted to secondary nodes or the primary node. In one embodiment, the systems and methods provide for automatic failover of the primary node role, can include a consensus election protocol for identifying the next primary node. Further, the systems and methods can be configured to automatically reintegrate a failed primary node.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for asynchronous replication in a distributed database system, the method comprising the acts of: establishing a primary node within a plurality of nodes, wherein the plurality of nodes service data requests based on data request received from client computer systems; restricting processing of write operations received from the client computer systems to the primary node; replicating, asynchronously, from the primary node the write operations received from the client computer systems to a plurality of secondary nodes which host a replica of the primary node database from the plurality of nodes, such that all write operations are executed at least under a default consistency model for data replication in a database, wherein the default consistency model comprises an eventual consistency model; identifying, by the primary node, that at least one write operation includes a user requirement, such that the at least one write operation is executed with additional requirements over the default consistency model; recording, by the primary node, replication status reflecting at least that the at least one write has occurred for the at least one write from the plurality of secondary nodes; and confirming, by the primary node, the at least one write operation responsive to determining that that at least one write operation has been replicated to a threshold number of the plurality of secondary nodes. 2. The method according to claim 1 , wherein the act of recording includes an act of requesting acknowledgement from the plurality of secondary nodes. 3. The method according to claim 1 , furthering comprising returning, by the plurality of secondary nodes, an acknowledgement of a replicated write submitted with the user requirement that the at least one write operation is executed with additional requirements over the default consistency model. 4. The method according to claim 3 , further comprising executing a return error operation to determine a status of a replicated write. 5. The method according to claim 1 , further comprising an act of restricting processing of read operations received from the client computer systems to the primary node. 6. The method according to claim 1 , wherein the act of determining that that the at least one write operation has been replicated to the threshold number of the plurality of secondary nodes includes an act of determining that a majority of the plurality of secondary nodes have replicated the at least one write operation. 7. The method according to claim 1 , further comprising automatically recovering a primary node role in the distributed database system in response to a failure of the primary node, wherein the act of automatically recovering includes establishing one of the plurality of secondary nodes as a new primary node. 8. The method according to claim 7 , further comprising an act of electing the new primary node from the plurality of secondary nodes based at least in part on determining which of the plurality of secondary nodes has the most up to date data. 9. The method according to claim 7 , further comprising an act of electing the new primary node from the plurality of secondary nodes based at least in part on a location of a secondary node. 10. The method according to claim 1 , wherein the act of replicating includes recording at the plurality of secondary nodes an identifier for the primary node and a monotonically increasing value assigned to each operation. 11. The system according to claim 1 , further comprising a recovery component configured to automatically establish a new primary node in the distributed database system in response to a replication failure, wherein the recovery component is further configured to establish one of the plurality of secondary nodes as the primary node. 12. The system according to claim 11 , wherein the recovery component is further configured to elect the new primary node from the plurality of secondary nodes based at least in part on determining which of the plurality of secondary nodes has the most up to date data. 13. The system according to claim 11 , wherein the recovery component is further configured to elect the new primary node from the plurality of secondary nodes based at least in part on a location of a secondary node. 14. The system according to claim 1 , wherein the replication component is further configured to cause the plurality of secondary nodes to record an identifier for the primary node and a monotonically increasing value assigned to each operation. 15. A system for performing asynchronous replication in a distributed database environment comprising a plurality of nodes, the system comprising: at least one processor operatively connected to a memory, the at least one processor when running is configured to execute a plurality of system components, wherein the plurality of system components comprise: a role component configured to establish a role associated with a plurality of nodes, wherein the role component is configured to establish a primary node with a primary role and at least a plurality of secondary nodes with a secondary role; an execution component configured to restrict write requests received from client computer systems to the primary node; a replication component configured to: asynchronously replicate write operations performed on the primary node to the plurality of secondary nodes such that all write operations are executed at least under a default consistency model for data replication in a database, wherein the default consistency model comprises an eventual consistency mode; identify that at least one write operation includes a user requirement such that the at least one write operation is executed with additional requirements over the default consistency model; record replication status that reflects that the at least one write operation has occurred for the at least one write from the plurality of secondary nodes; and confirm the at least one write operation responsive to determining that that at least one write operation has been replicated to a threshold number of the plurality of secondary nodes. 16. The system according to claim 15 , wherein the act of confirming includes an act of requesting acknowledgement from the plurality of secondary nodes. 17. The system according to claim 15 , furthering comprising a plurality of secondary nodes, configured to return an acknowledgement of a replicated write, responsive to an indication that the write has been submitted with the user requirement that the write operation is executed with additional requirements over the default consistency model. 18. The system according to claim 17 , further wherein the replication component is further configured to execute a return error operation to determine a status of a replicated write at respective secondary nodes. 19. The system according to claim 15 , wherein the execution component is further configured to restrict processing of read operations received from the client computer systems to the primary node. 20. The system according to claim 15 , wherein the replication component is further configured to determine that that the at least one write operation has been replicated to the threshold number of the plurality of secondary nodes, wherein the threshold requires that a majority of the plurality of secondary nodes have replicated the at least one write operation.

Assignees

Inventors

Classifications

  • G06F16/273Primary

    Asynchronous replication or reconciliation · CPC title

  • Ensuring data consistency and integrity · CPC title

  • Using snapshots, i.e. a logical point-in-time copy of the data · CPC title

  • Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40) · CPC title

  • Management of the backup or restore process · 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 US9317576B2 cover?
Provided are systems and methods for managing asynchronous replication in a distributed database environment, wherein a cluster of nodes are assigned roles for processing database requests. In one embodiment, the system provides a node with a primary role to process write operations against its database, generate an operation log reflecting the processed operations, and permit asynchronous repl…
Who is the assignee on this patent?
Merriman Dwight, Horowitz Eliot, Mongodb Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/273. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 19 2016 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).