Failure recovery in a replication environment using matrix clocks

US12050523B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12050523-B2
Application numberUS-202217660528-A
CountryUS
Kind codeB2
Filing dateApr 25, 2022
Priority dateApr 25, 2022
Publication dateJul 30, 2024
Grant dateJul 30, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12050523B2 cover?
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 upd…
Who is the assignee on this patent?
Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification G06F11/2094. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 30 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).