Failure recovery in a replication environment using a vector clock
AssigneeDell Products L.P.
InventorKeyur B. Desai
Life of this patent
Estimating the term…
Abstract
One example method includes performing replication operations and/or failure recovery operations for replication operations in a computing system using vector clocks. Each node or process in a computing system is associated with a vector clock that reflects streams available at nodes. As the replication operation is performed, the vector clocks are updated. When a failure is detected or when insufficient streams are available, the nodes may be throttled until sufficient streams are available. The vector clocks facilitate a recovery line such that replication can resume when sufficient streams are available.
Claims20
A method comprising:
- initiating a replication job for an application to replicate data from a source node to a destination node, wherein the source node is associated with a first single row vector clock and the destination node is associated with a second single row vector clock, wherein a first entry in the first and second single row vector clocks is a logical clock of the source node and a second entry in the first and second single row vector clocks is a logical clock of the destination node;
- determining, by the source node, a number of streams for replicating the data based on the first entry in the first single row vector clock;
- sending a message to the destination node identifying the number of streams;
- consulting, by the destination node, the second single row vector clock and determining a failure when the number of streams is greater than the second entry in the second single row vector clock;
- and
- performing the replication job when the failure is not determined and throttling the replication job when the failure is determined,
- wherein each single row vector clock comprises a single entry for each node.
A non-transitory storage medium having stored therein instructions that are executable by one or more hardware processors to perform operations comprising:
- initiating a replication job for an application to replicate data from a source node to a destination node, wherein the source node is associated with a first single row vector clock and the destination node is associated with a second single row vector clock, wherein a first entry in the first and second single row vector clocks is a logical clock of the source node and a second entry in the first and second single row vector clocks is a logical clock of the destination node;
- determining, by the source node, a number of streams for replicating the data based on the first entry in the first single row vector clock;
- sending a message to the destination node identifying the number of streams;
- consulting, by the destination node, the second single row vector clock and determining a failure when the number of streams is greater than the second entry in the second single row vector clock;
- and
- performing the replication job when the failure is not determined and throttling the replication job when the failure is determined,
- wherein each single row vector clock comprises a single entry for each node.
Dependencies are inferred from the claim text.