IP Library Granted Patent US 10,235,240
Granted Patent B2
US 10,235,240 · App. 15/201,688 · Granted Mar 19, 2019

System and method of reliable distributed data storage with controlled redundancy

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,235,240
App. No.
15/201,688
Granted
Mar 19, 2019
Kind
B2
Abstract

A system and method is disclosed for data storage in a distributed data storage system. An exemplary method includes generating derivatives of a file using an (n,k) algorithm, such that k number of derivatives can be used to restore the file. Moreover, the derivatives are stored in nodes in a multilevel tree representing the distributed data storage system and a rank is calculated that indicates a fault tolerance of the file. The method further determines whether the rank is greater than or equal to k to ensure reliability of recoverability of the file. If the rank less than k, the method reorders one or more derivatives to a different node and/or store one or more additional derivative from the file.

Claims (48)

1. A method for data storage in a distributed data storage system, the method comprising:

generating a plurality of derivatives from a file using an (n,k) algorithm, wherein the (n,k) algorithm provides that a minimum number k of the derivatives is required to restore the file;

storing the derivatives in a plurality of nodes in a multilevel tree, wherein the multilevel tree includes at least L levels and the plurality of nodes are geographically distributed data storage modules;

determining a rank r l,m indicating a fault tolerance of the file, wherein the rank r l,m represents a number of derivatives available after a failure on at least one level l of the L levels with a number of failed nodes m in the level l;

determining whether the rank r l,m is greater than or equal to the minimum number k;

responsive to determining that the rank r l,m is less than the minimum number k, storing at least one of the plurality of derivatives in a different node of the plurality of nodes or storing at least one additional derivative from the file in one of the plurality of nodes.

2. The method of claim 1 , further comprising verifying an acceptable fault tolerance of the file if the rank r l,m ≥k.

3. The method of claim 1 , further comprising reassembling the file from the distributed storage system using the (n,k) algorithm.

4. The method of claim 1 , wherein at least one of k≥3 and m≥2.

5. The method of claim 1 , further comprising:

generating a plurality of derivatives from at least one additional file using the (n,k) algorithm;

storing the derivatives from the at least one additional file in the multilevel tree, such that the rank r l,m of the at least one additional file is greater than or equal to k,

wherein if a number of nodes on one level l of the L levels of the multilevel tree is equal to q, then for the at least one additional file, a relation of q≥m+1 is satisfied, and a minimum number of the nodes on the one level l satisfies q min =m+1.

6. The method of claim 1 , further comprising storing the derivatives in the plurality of nodes in the multilevel tree, such that none of the derivatives are duplicates.

7. The method of claim 1 , further comprising determining the rank r l,m indicating the fault tolerance of the file, such that the rank r l,m is equal to a sum p l,m of the number p of derivatives over all the elements of the level l, except for m with a biggest values of p.

8. The method of claim 1 , wherein the storing of the derivatives in the plurality of nodes comprises:

storing a number of k derivatives on q−m nodes for one level l of the levels L, where q−m is a number of available nodes on the level l; and

storing remaining derivatives on the q-m nodes for the one level l,

wherein a total number of derivatives will be k+(round ((k−1)/(q−m)) +1) * m.

9. The method of claim 1 , wherein the determining of the rank r l,m indicating of the file comprises calculating table of a file reliability matrix having a plurality of cells that each indicate a rank for each level l of the levels L and a corresponding number of node failures m of the level l.

10. A system for data storage, the system comprising:

a distributed data storage system including a plurality of nodes arranged in a multilevel tree having at least L levels, wherein the plurality of nodes are geographically distributed data storage modules; and

a processor configured to:

generate a plurality of derivatives from a file using an (n,k) algorithm, wherein the (n,k) algorithm provides that a minimum number k of the derivatives is required to restore the file,

store the derivatives in the plurality of nodes in the plurality of nodes,

determine a rank r l,m indicating a fault tolerance of the file, wherein the rank r l,m represents a number of derivatives available after a failure on at least one level l of the L levels with a number of failed nodes m in the level l,

determine whether the rank r l,m is greater than or equal to the minimum number k,

responsive to determining that the rank r l,m is less than the minimum number k, store at least one of the plurality of derivatives in a different node of the plurality of nodes or store at least one additional derivative from the file in one of the plurality of nodes.

11. The system of claim 10 , wherein the processor is further configured to verify an acceptable fault tolerance of the file if the rank r l,m ≥k.

12. The system of claim 10 , wherein the processor is further configured to reassemble the file from the distributed storage system using the (n,k) algorithm.

13. The system of claim 10 , wherein at least one of k≥3 and m≥2.

14. The system of claim 10 , wherein the processor is further configured to:

store a number of k derivatives on q−m nodes for one level l of the levels L, where q−m is a number of available nodes on the level l; and

store remaining derivatives on the q−m nodes for the one level l,

wherein a total number of derivatives will be k+(round ((k−1)/(q−m)) +1) * m.

15. The system of claim 10 , wherein the processor is further configured to evaluate the rank r l,m indicating of the file by calculating table of a file reliability matrix having a plurality of cells that each indicate a rank for each level l of the levels L and a corresponding number of node failures m of the level l, such that the file reliability matrix indicates a fault tolerance state of the file in the distributed data storage system.

16. The system of claim 10 , wherein if a top level of the multilevel tree of the distributed data storage system fails, then all nodes on lower levels of the multilevel tree become unavailable.

17. A non-transitory computer readable medium storing computer executable instructions for storing data in a distributed data storage system, including instructions for:

generating a plurality of derivatives from a file using an (n,k) algorithm, wherein the (n,k) algorithm provides that a minimum number k of the derivatives is required to restore the file;

storing the derivatives in a plurality of nodes in a multilevel tree, wherein the multilevel tree includes at least L levels and the plurality of nodes are geographically distributed data storage modules;

determining a rank r l,m indicating a fault tolerance of the file, wherein the rank r l,m represents a number of derivatives available after a failure on at least one level l of the L levels with a number of failed nodes m in the level l;

determining whether the rank r l,m is greater than or equal to the minimum number k;

responsive to determining that the rank r l,m is less than the minimum number k, storing at least one of the plurality of derivatives in a different node of the plurality of nodes or storing at least one additional derivative from the file in one of the plurality of nodes.

18. The non-transitory computer readable medium according to claim 17 , further including instructions for:

generating a plurality of derivatives from at least one additional file using the (n,k) algorithm;

storing the derivatives from the at least one additional file in the multilevel tree, such that the rank r l,m of the at least one additional file is greater than or equal to k,

wherein if a number of nodes on one level l of the L levels of the multilevel tree is equal to q, then for the at least one additional file, a relation of q≥m+1is satisfied, and a minimum number of the nodes on the one level l satisfies q min =m+1.

19. The non-transitory computer readable medium according to claim 17 , further including instructions for determining the rank R l,m indicating the fault tolerance of the file, such that the rank r l,m is equal to a sum p l,m of the number p of derivatives over all the elements of the level l, except form with a biggest values of p.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2024
From: ACRONIS INTERNATIONAL GMBH
To: VIRTUOZZO INTERNATIONAL GMBH
Reel/Frame 066931/0580 →
REAFFIRMATION AGREEMENT Recorded Aug 28, 2022
From: ACRONIS AG; ACRONIS INTERNATIONAL GMBH; ACRONIS SCS, INC.; ACRONIS, INC.; GROUPLOGIC, INC.; NSCALED INC.; ACRONIS MANAGEMENT LLC; 5NINE SOFTWARE, INC.; ACRONIS GERMANY GMBH; ACRONIS NETHERLANDS B.V.; ACRONIS BULGARIA EOOD; DEVICELOCK, INC.; DEVLOCKCORP LTD; ACRONIS INC.
To: MIDCAP FINANCIAL TRUST
Reel/Frame 061330/0818 →
SECURITY INTEREST Recorded Dec 19, 2019
From: ACRONIS INTERNATIONAL GMBH
To: MIDCAP FINANCIAL TRUST
Reel/Frame 051418/0119 →
RELEASE OF SECURITY INTEREST Recorded Oct 21, 2019
From: OBSIDIAN AGENCY SERVICES, INC.
To: ACRONIS INTERNATIONAL GMBH; GROUPLOGIC, INC.
Reel/Frame 050783/0893 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2019
From: TORMASOV, ALEXANDER G; PROTASOV, STANISLAV; BELOUSSOV, SERGUEI S
To: ACRONIS INTERNATIONAL GMBH
Reel/Frame 048137/0587 →
SECURITY INTEREST Recorded Jul 26, 2017
From: ACRONIS INTERNATIONAL GMBH; GROUPLOGIC, INC.
To: OBSIDIAN AGENCY SERVICES, INC., AS COLLATERAL AGENT
Reel/Frame 043350/0186 →
Cited By (1)
US 12,229,326