Efficient recovery of transactional data stores
First Claim
1. A method of recovering a respective node of a distributed transactional system that comprises three or more nodes, the method comprising:
- at a second node of the distributed transactional system having a second set of one or more storage devices;
receiving a copy of at least a portion of a first data store from a first node of the distributed transactional system having a first set of one or more storage devices;
in response to receiving the copy of at least the portion of the first data store, creating a second data store based on the copy of at least the portion the first data store;
concurrent with the second node creating the second data store;
receiving committed transaction data from a plurality of nodes other than the second node, wherein the plurality of nodes at least includes the first node, and a third node of the distributed transactional system having a third set of one or more storage devices, and wherein the first, second, and third nodes each execute at least one distinct instance of the distributed transaction system; and
storing the committed transaction data, wherein a respective portion of the committed transaction data describes a transaction committed against a respective data store maintained by a corresponding node of the plurality of nodes other than the second node; and
the method further comprising, at the second node;
identifying a reference commit number, wherein the reference commit number is a most recent global commit number for transactions committed against the copy of at least the portion of the first data store;
identifying, from the committed transaction data stored by the second node, one or more transactions having a global commit number that is lower than or equal to the reference commit number;
disregarding the identified one or more transactions having a global commit number that is lower than or equal to the reference commit number; and
replaying, against the second data store, any transactions identified by the committed transaction data as having a global commit number that is greater than the reference commit number.
7 Assignments
0 Petitions
Accused Products
Abstract
Approaches for recovering a node of a distributed transactional system. When a recovering node is being brought on-line, a copy of at least a portion of a first data store maintained by an existing node is created without ceasing to process transactions against the first data store at the existing node. The recovering node creates a second data store based on the copy of the first data store. While the recovering node creates the second data store, the recovering node stores committed transaction data received from a plurality of nodes. The committed transaction data describes transactions committed against data stores maintained by the sender of the committed transaction data. The recovering node may thereafter replay, against the second data store, any transactions identified by the committed transaction data that are associated with a global transaction number that is more recent than is a reference commit number.
207 Citations
20 Claims
-
1. A method of recovering a respective node of a distributed transactional system that comprises three or more nodes, the method comprising:
-
at a second node of the distributed transactional system having a second set of one or more storage devices; receiving a copy of at least a portion of a first data store from a first node of the distributed transactional system having a first set of one or more storage devices; in response to receiving the copy of at least the portion of the first data store, creating a second data store based on the copy of at least the portion the first data store; concurrent with the second node creating the second data store; receiving committed transaction data from a plurality of nodes other than the second node, wherein the plurality of nodes at least includes the first node, and a third node of the distributed transactional system having a third set of one or more storage devices, and wherein the first, second, and third nodes each execute at least one distinct instance of the distributed transaction system; and storing the committed transaction data, wherein a respective portion of the committed transaction data describes a transaction committed against a respective data store maintained by a corresponding node of the plurality of nodes other than the second node; and the method further comprising, at the second node; identifying a reference commit number, wherein the reference commit number is a most recent global commit number for transactions committed against the copy of at least the portion of the first data store; identifying, from the committed transaction data stored by the second node, one or more transactions having a global commit number that is lower than or equal to the reference commit number; disregarding the identified one or more transactions having a global commit number that is lower than or equal to the reference commit number; and replaying, against the second data store, any transactions identified by the committed transaction data as having a global commit number that is greater than the reference commit number. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory machine-readable storage medium storing one or more sequences of instructions for recovering a respective node of a distributed transactional system that comprises three or more nodes, which when executed by one or more processors, cause the distributed transactional system to:
-
at a second node of the distributed transactional system having a second set of one or more storage devices; receive a copy of at least a portion of a first data store from a first node of the distributed transactional system having a first set of one or more storage devices; in response to receiving the copy of at least the portion of the first data store, create a second data store based on the copy of the first data store; concurrent with the second node creating the second data store; receive committed transaction data from a plurality of nodes other than the second node, wherein the plurality of nodes at least includes the first node, and a third node of the distributed transactional system having a third set of one or more storage devices, and wherein the first, second, and third nodes each execute at least one distinct instance of the distributed transaction system; and store the committed transaction data, wherein a respective portion of the committed transaction data describes a transaction committed against a respective data store maintained by a corresponding node of the plurality of nodes other than the second node; and the one or more sequences of instructions, further cause the second node of the distributed transaction system to; identify a reference commit number, wherein the reference commit number is a most recent global commit number for transactions committed against the copy of at least the portion of the first data store; identify, from the committed transaction data stored by the second node, one or more transactions having a global commit number that is lower than or equal to the reference commit number; disregard the identified one or more transactions having a global commit number that is lower than or equal to the reference commit number; and replay, against the second data store, any transactions identified by the committed transaction data as having a global commit number that is greater than the reference commit number. - View Dependent Claims (18)
-
-
19. A system for recovering a respective node of a distributed transactional system that comprises three or more nodes, the system comprising:
-
one or more processors; and a non-transitory machine-readable storage medium storing one or more sequences of instructions, which when executed by the one or more processors, cause the distributed transactional system to; at a second node of the distributed transactional system having a second set of one or more storage devices; receive a copy of at least a portion of a first data store from a first node of the distributed transactional system having a first set of one or more storage devices; in response to receiving the copy of at least the portion of the first data store, create a second data store based on the copy of the first data store; concurrent with the second node creating the second data store; receive committed transaction data from a plurality of nodes other than the second node, wherein the plurality of nodes at least includes the first node, and a third node of the distributed transactional system having a third set of one or more storage devices, and wherein the first, second, and third nodes each execute at least one distinct instance of the distributed transaction system; and store the committed transaction data, wherein a respective portion of the committed transaction data describes a transaction committed against a respective data store maintained by a corresponding node of the plurality of nodes other than the second node; and the one or more sequences of instructions, further cause the second node of the distributed transaction system to; identify a reference commit number, wherein the reference commit number is a most recent global commit number for transactions committed against the copy of at least the portion of the first data store; identify, from the committed transaction data stored by the second node, one or more transactions having a global commit number that is lower than or equal to the reference commit number; disregard the identified one or more transactions having a global commit number that is lower than or equal to the reference commit number; and replay, against the second data store, any transactions identified by the committed transaction data as having a global commit number that is greater than the reference commit number. - View Dependent Claims (20)
-
Specification