DATA CONSISTENCY WITHIN A FEDERATION INFRASTRUCTURE
First Claim
1. In a federation infrastructure of a ring of nodes configured for bi-directional routing, a method for performing a data access transaction within a replica set maintained within a federation infrastructure, the method comprising:
- an act of determining that a primary node has been elected from among a plurality of nodes in a replica set of nodes, the primary node being configured to accept and process client data access requests, the replica set comprising the primary node and one or more secondary nodes;
an act of the primary node receiving one or more client data access requests, each data access request indicating at least a portion of data that is to be accessed on at least the primary node in the replica set;
an act of the primary node assigning a data sequence number to each of the client data access requests that mutate state in the order the client data access requests are received, the data sequence numbers comprising a linearized processing order that is to be followed by each of the nodes in the replica set;
an act of the primary node sending at least one of the client data access requests including any corresponding data sequence numbers to at least one of the secondary nodes;
as an act of the primary node receiving, from at least a threshold number of secondary nodes, an acknowledgement indicating reception of the client data access request; and
an act of the primary node committing the data access request, the committing including accessing the data according to the client data access request.
2 Assignments
0 Petitions
Accused Products
Abstract
In some embodiments, it is determined that a primary node has been elected from among a plurality of nodes in a replica set of nodes. The primary node accepts and processes client data access requests. The replica set includes the primary node and other secondary nodes. The primary node receives client data access requests. The primary node assigns a data sequence number to each client data access request that mutates state in the order the client data access requests are received. The data sequence numbers include a linearized processing order that is to be followed by each of the nodes in the replica set. The primary node sends the mutating client data access requests including any corresponding data sequence numbers to the secondary nodes. The primary node receives, from a threshold number of secondary nodes, an acknowledgement indicating reception of the client data access request. The primary node commits the data mutating access request.
214 Citations
35 Claims
-
1. In a federation infrastructure of a ring of nodes configured for bi-directional routing, a method for performing a data access transaction within a replica set maintained within a federation infrastructure, the method comprising:
-
an act of determining that a primary node has been elected from among a plurality of nodes in a replica set of nodes, the primary node being configured to accept and process client data access requests, the replica set comprising the primary node and one or more secondary nodes; an act of the primary node receiving one or more client data access requests, each data access request indicating at least a portion of data that is to be accessed on at least the primary node in the replica set; an act of the primary node assigning a data sequence number to each of the client data access requests that mutate state in the order the client data access requests are received, the data sequence numbers comprising a linearized processing order that is to be followed by each of the nodes in the replica set; an act of the primary node sending at least one of the client data access requests including any corresponding data sequence numbers to at least one of the secondary nodes; as an act of the primary node receiving, from at least a threshold number of secondary nodes, an acknowledgement indicating reception of the client data access request; and an act of the primary node committing the data access request, the committing including accessing the data according to the client data access request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. In a federation infrastructure of a ring of nodes configured for bi-directional routing, a system for accessing data from a replica set within a federation infrastructure, the system comprising:
-
a neighborhood establishing module configured to establish a neighborhood of a plurality of nodes on the ring, the neighborhood including at least an immediately adjacent predecessor node and an immediately adjacent successor node; an intent determining module configured to determine that a joining node outside the established neighborhood has indicated an intent to join the established neighborhood in the ring of nodes; a consistency maintaining module configured to maintain consistency within the established neighborhood such that each node in the plurality of nodes takes id-space ownership for a portion of id-space in the neighborhood; an election determining module configured to determine that one of the nodes in the plurality of nodes has been elected to be a primary node with responsibility over a replica set of nodes configured to respond to client data access requests as directed by the primary node; a request receiving module configured to receive one or more client data access requests, each data access request indicating at least a portion of data that is to be accessed on at least one of the nodes in the replica set; and a data accessing module configured to access the data indicated in the client data access request. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. In a federation infrastructure of a ring of nodes configured for bi-directional routing, a method for establishing and maintaining a consistent replica set within a federation infrastructure, the method comprising:
-
an act of establishing a replica set from among a plurality of nodes in a ring of nodes, the replica set comprising as members a primary node and one or more secondary nodes; an act of receiving an indication indicating a replica set configuration event occurrence affecting at least one of the replica set members; based on the received indication, an act of determining that the replica set is to be reconfigured, the reconfiguration including at least one of removing an existing secondary node from the replica set, adding a new secondary node to the replica set, abruptly transitioning to a new primary and smoothly transitioning to a new primary, based on the replica set configuration event occurrence; an act of reconfiguring the replica set according to the reconfiguration corresponding to the replica set configuration event. - View Dependent Claims (30, 31, 32, 33, 34, 35)
-
Specification