| CPC G06F 16/278 (2019.01) [G06F 16/21 (2019.01); G06F 16/2365 (2019.01); G06F 16/256 (2019.01)] | 18 Claims |

|
1. A computer-implemented method for operating a database management system, the method comprising:
identifying a first node of a second set of nodes of the database management system on which a primary replica of user data is stored and identifying a second node of the second set of nodes on which a secondary replica of the user data is stored;
configuring a first set of nodes of the database management system to:
determine an instantaneous state of the database management system, the instantaneous state being a failure in communication of a node of the second set of nodes by detecting a failure in communication of the first node of the second set of nodes;
in response to the detected failure in communication of the first node, generate system configuration data using a consensus-based replication protocol to maintain the system configuration data in the first set of nodes, by:
selecting the second node of the second set of nodes to store the primary replica of the user data and writing an indication of the selection to the system configuration data;
demoting the first node of the second set of nodes to storing the secondary replica of the user data and writing an indication of the demotion to the system configuration data; and
replicating the system configuration data amongst the first set of nodes using the consensus-based replication protocol; and
provide the system configuration data to the second set of nodes of the database management system; and
configuring the second set of nodes of the database management system to:
receive the system configuration data from the first set of nodes; and
implement a state machine that is arranged to modify a configuration of the second set of nodes, in response to receipt of the system configuration data:
moving the primary replica of the user data to the second node of the second set of nodes based on the indication of the selection; and
causing the first node to replicate user data from the second node to store the secondary replica of the user data based on the indication of the demotion,
wherein the second set of nodes are arranged to replicate the user data between the first node and the second node according to a non-consensus-based replication protocol.
|