Asynchronous distributed coordination and consensus with threshold logical clocks
US-2021018953-A1 · Jan 21, 2021 · US
US12050523B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12050523-B2 |
| Application number | US-202217660528-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 25, 2022 |
| Priority date | Apr 25, 2022 |
| Publication date | Jul 30, 2024 |
| Grant date | Jul 30, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
One example method includes performing replication operations and/or failure recovery operations for replication operations in a computing system using matrix clocks. Each node or process in a computing system is associated with a matrix clock that reflects streams required and/or available at the source and destination nodes. As the replication operation is performed, the matrix 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 matrix clocks facilitate a recovery line such that replication can resume when sufficient streams are available.
Opening claim text (preview).
What is claimed is: 1. A method comprising: initiating a replication operation to replicate data from a source node to a destination node, wherein the replication operation is associated with a number of streams, each of the streams associated with a portion of the data; updating a source matrix clock associated with the source node based on the replication operation to include a number of requested streams, wherein the source matrix clock includes a principal vector associated with the source node and a supporting vector associated with the destination node, wherein the principal vector identifies the number of requested streams, wherein the supporting vector identifies a number of streams available at the destination node; allocating streams at the destination node for the replication operation equal to the number of requested streams based on a number of streams available at the destination node, wherein the number of streams available at the destination node are stored in a destination matrix clock, wherein the destination matrix clock includes a principal vector associated with the destination node and a supporting vector associated with the source node, wherein the principal vector identifies a number of streams available at the destination node, wherein the supporting vector identifies the number of requested streams from the destination node; and replicating the data from the source node to the destination node. 2. The method of claim 1 , further comprising detecting a failure in the replication operation, wherein the failure includes insufficient streams available at the destination node to service the number of requested streams requested by the source node, wherein the failure is determined from at least the destination matrix clock. 3. The method of claim 2 , further comprising throttling at the destination node, wherein throttling includes waiting until sufficient streams are available at the destination node to service the number of requested streams requested by the source node or allocating the streams of the destination node to service the number of requested streams when the number of streams available at the destination node is greater than or equal to the number of requested streams requested by the source node. 4. The method of claim 3 , further comprising updating the destination matrix clock and the source matrix clock when the replication operation is completed. 5. The method of claim 4 , further comprising allocating streams for the replication operation that are less than the number of requested streams requested by the source node without exceeding the number of streams available at the destination node. 6. The method of claim 1 , further comprising updating a catalog to reflect that the destination node stores a copy of the data when the replication operation is completed. 7. The method of claim 1 , further comprising determining a recovery line when failure is detected and recovering the replication operation based on the recovery line. 8. The method of claim 1 , wherein recovering the replication operation includes resuming the replication operation when the number of streams available at the destination node is greater than or equal to a number of requested streams required by the source node. 9. The method of claim 1 , wherein the number of requested streams is less than or equal to the number of streams. 10. 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 operation to replicate data from a source node to a destination node, wherein the replication operation is associated with a number of streams, each of the streams associated with a portion of the data; updating a source matrix clock associated with the source node based on the replication operation to include a number of requested streams, wherein the source matrix clock includes a principal vector associated with the source node and a supporting vector associated with the destination node, wherein the principal vector identifies the number of requested streams, wherein the supporting vector identifies a number of streams available at the destination node; allocating streams at the destination node for the replication operation equal to the number of requested streams based on a number of streams available at the destination node, wherein the number of streams available at the destination node are stored in a destination matrix clock, wherein the destination matrix clock includes a principal vector associated with the destination node and a supporting vector associated with the source node, wherein the principal vector identifies a number of streams available at the destination node, wherein the supporting vector identifies the number of requested streams from the destination node; and replicating the data from the source node to the destination node. 11. The non-transitory storage medium of claim 10 , further comprising detecting a failure in the replication operation, wherein the failure includes insufficient streams available at the destination node to service the number of requested streams requested by the source node, wherein the failure is determined from at least the destination matrix clock. 12. The non-transitory storage medium of claim 10 , further comprising throttling at the destination node, wherein throttling includes waiting until sufficient streams are available at the destination node to service the number of requested streams requested by the source node or allocating the streams of the destination node to service the number of requested streams when the number of streams available at the destination node is greater than or equal to the number of requested streams requested by the source node. 13. The non-transitory storage medium of claim 12 , further comprising updating the destination matrix clock and the source matrix clock when the replication operation is completed. 14. The non-transitory storage medium of claim 12 , further comprising allocating streams for the replication operation that are less than the number of requested streams requested by the source node without exceeding the number of streams available at the destination node. 15. The non-transitory storage medium of claim 10 , further comprising updating a catalog to reflect that the destination node stores a copy of the data when the replication operation is completed. 16. The non-transitory storage medium of claim 10 , further comprising determining a recovery line when failure is detected and recovering the replication operation based on the recovery line. 17. The non-transitory storage medium of claim 16 , wherein recovering the replication operation includes resuming the replication operation when the number of streams available at the destination node is greater than or equal to a number of requested streams required by the source node. 18. The non-transitory storage medium of claim 10 , wherein the number of requested streams is less than or equal to the number of streams.
Redundant storage or storage space (G06F11/2056 takes precedence) · CPC title
for networked environments · CPC title
involving logging of persistent data for recovery · CPC title
Backup restoration techniques · CPC title
Backup scheduling policy · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.