Asynchronous distributed coordination and consensus with threshold logical clocks
US-2021018953-A1 · Jan 21, 2021 · US
US12050801B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12050801-B2 |
| Application number | US-202217813791-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 20, 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 and replication controllers. The replication controller includes or has access to vectors of a matrix clock. The replication controller also includes a multiplexer. The multiplexer is configured as an m×n multiplexer using the matrix clock to determine m and n. The operation is performed using the configured multiplexer. This allows an imbalance of resources to be managed by the replication controller. The matrix clock can be updated, which may result in the multiplexer being reconfigured.
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 needs x number of streams to replicate the data; updating a matrix clock associated with a replication controller such that the replication controller knows a number of streams available (m streams) at the source node and a number of streams (n streams) available at the destination node; configuring a multiplexer operated by the replication controller as an m×n multiplexer based on the matrix clock; and replicating the data using the m streams to the destination node via the multiplexer, wherein replicating the data comprises: serializing multiple files of the data into the m streams such that the multiple files are received at the multiplexer over the m streams and transmitted to the destination node using the n streams when m is less than n; and chunking a file of the data such that the file is received using the m streams and transmitted to the destination node using the n streams when m is greater than n. 2. The method of claim 1 , wherein m is 1 and the multiple files are serialized into a single stream. 3. The method of claim 1 , wherein n is 1. 4. The method of claim 1 , further comprising updating the matrix clock available to the replication controller based on a vector of the source node and/or a vector of the destination node. 5. The method of claim 4 , further comprising reconfiguring the multiplexer as a q×r multiplexer to reflect a change in the streams available at the source and/or the streams available at the destination and continuing the operation using the q streams and the r streams. 6. The method of claim 1 , further comprising throttling the operation at the replication controller when a number of streams needed for the replication operation is larger than m, wherein throttling includes using streams from the m streams that become available to service streams needed by the replication operation that have not been serviced. 7. The method of claim 1 , further comprising instantiating the replication controller on the source node, the destination node, or a different node. 8. The method of claim 1 , wherein the matrix clock includes a vector of the source node and a vector of the destination node. 9. 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 needs x number of streams to replicate the data; updating a matrix clock associated with a replication controller such that the replication controller knows a number of streams available (m streams) at the source node and a number of streams (n streams) available at the destination node; configuring a multiplexer operated by the replication controller as an m×n multiplexer based on the matrix clock; and replicating the data using the m streams to the destination node via the multiplexer, wherein replicating the data comprises: serializing multiple files of the data into the m streams such that the multiple files are received at the multiplexer over the m streams and transmitted to the destination node using the n streams when m is less than n; and chunking a file of the data such that the file is received using the m streams and transmitted to the destination node using the n streams when m is greater than n. 10. The non-transitory storage medium of claim 9 , wherein m is 1 and the multiple files are serialized into a single stream. 11. The non-transitory storage medium of claim 9 , wherein n is 1. 12. The non-transitory storage medium of claim 9 , further comprising updating the matrix clock available to the replication controller based on a vector of the source node and/or a vector of the destination node. 13. The non-transitory storage medium of claim 12 , further comprising reconfiguring the multiplexer as a q×r multiplexer to reflect a change in the streams available at the source and/or the streams available at the destination and continuing the operation using the q streams and the r streams. 14. The non-transitory storage medium of claim 9 , further comprising throttling the operation at the replication controller when a number of streams needed for the replication operation is larger than m, wherein throttling includes using streams from the m streams that become available to service streams needed by the replication operation that have not been serviced. 15. The non-transitory storage medium of claim 9 , further comprising instantiating the replication controller on the source node, the destination node, or a different node. 16. The non-transitory storage medium of claim 9 , wherein the matrix clock includes a vector of the source node and a vector of the destination node. 17. A method comprising: initiating a replication operation to replicate data from a source node to a destination node, wherein the replication operation needs x number of streams to replicate the data; updating a matrix clock associated with a replication controller such that the replication controller knows a number of streams available (m streams) at the source node and a number of streams (n streams) available at the destination node; configuring a multiplexer operated by the replication controller as an m×n multiplexer based on the matrix clock; replicating the data using the m streams to the destination node via the multiplexer; updating the matrix clock available to the replication controller based on a vector of the source node reconfiguring the multiplexer as a q×r multiplexer to reflect a change in the streams available at the source and/or the streams available at the destination and continuing the replication operation using the q streams and the r streams.
Redundant storage or storage space (G06F11/2056 takes precedence) · CPC title
using run-time replication performed by the application software, e.g. N-modular type · CPC title
involving logging of persistent data for recovery · CPC title
Backup restoration techniques · CPC title
for networked environments · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.