IP Library Granted Patent US 10,735,137
Granted Patent B2
US 10,735,137 · App. 15/460,093 · Granted Aug 4, 2020

Distributed storage system data management and security

Inventors: David Yanovsky (Tallinn, EE); Teimuraz Namoradze (Tallinn, EE); Vera Dmitriyevna Miloslavskaya (Saint-Petersburg, RU); Denys Smirnov (Tallinn, EE)
Assignee: ClineHair Commercial Endeavors
H04L1/0057G06F3/065G06F3/067G06F3/0619G06F11/1076G06F11/1088G06F12/0253G06F12/0848G06F12/1408G06F12/1466G06F16/1752G06F21/00G06F21/6218H03M13/13H03M13/1515H03M13/2921H03M13/616H04L9/0863H04L9/0894H04L9/3226H04L63/0428H04L67/1097G06F2212/1052G06F2212/282G06F2212/702G06F2221/2107
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,735,137
App. No.
15/460,093
Granted
Aug 4, 2020
Kind
B2
Abstract

A system and method for distributing data over a plurality of remote storage nodes. Data are split into segments and each segment is encoded into a number of codeword chunks. None of the codeword chunks contains any of the segments. Each codeword chunk is packaged with at least one encoding parameter and identifier, and metadata are generated for at least one file and for related segments of the at least one file. The metadata contains information to reconstruct from the segments, and information for reconstructing from corresponding packages. Further, metadata are encoded into package(s), and correspond to a respective security level and a protection against storage node failure. A plurality of packages are assigned to remote storage nodes to optimize workload distribution. Each package is transmitted to at least one respective storage node as a function iteratively accessing and retrieving the packages of metadata and file data.

Claims (29)

1. A method for distributing data of a plurality of files over a plurality of respective remote storage nodes, the method comprising:

splitting into segments, by one or more processors configured to execute code stored in non-transitory processor readable media, the data of the plurality of files;

encoding, by the one or more processors, each segment into a number of codeword chunks, wherein none of the codeword chunks contains any of the segments;

packaging each codeword chunk with at least one encoding parameter and identifier;

generating, by the one or more processors, metadata for at least one file of the plurality of files and metadata for related segments of the at least one file, wherein the metadata for the at least one file contains information to reconstruct the at least one file from the segments, and metadata for the related segments contains information for reconstructing the related segments from corresponding packages;

encoding, by the one or more processors, the metadata into at least one package, wherein the encoding corresponds to a respective security level and a protection against storage node failure;

reducing retrieval latency by computing: i) availability coefficients for storage nodes using statistical data, wherein each availability coefficient characterizes predicted average download speed for a respective storage node; and ii) relevance coefficients for codeword positions;

assigning, by the one or more processors, a plurality of packages to remote storage nodes, wherein the step of assigning corresponds to optimized workload distribution and available network bandwidth, including as a function of at least the availability coefficients and the relevance coefficients;

transmitting, by the one or more processors, each of the packages to at least one respective storage node; and

retrieving, by the one or more processors, at least one of the plurality of files, as a function iteratively accessing and retrieving the packages of metadata and file data.

2. The method of claim 1 , wherein the step of splitting into segments provides data within a respective segment that comprises a part of one individual file or several files.

3. The method of claim 2 , further comprising aggregating a plurality of files for a segment as a function of minimizing a difference between segment size and a total size of embedded files, and a likelihood of joint retrieval of embedded files.

4. The method of claim 1 , wherein the step of encoding each segment includes deduplication as a function of hash-based features of the file.

5. The method of claim 1 , wherein the step of encoding each segment includes encryption, wherein at least one segment is encrypted entirely with an individual encryption key.

6. The method of claim 5 , wherein the encryption key is generated as a function of data being encrypted.

7. The method of claim 5 , wherein each of a plurality of respective individual encryption keys is encrypted with a respective key encryption key and distributed over a respective storage node, wherein each respective key encryption key is generated using a password-based key derivation function.

8. The method of claim 1 , wherein the step of encoding each segment includes encryption, wherein at least one segment is partitioned into pieces, wherein each piece is separately encrypted, and further wherein a number of encryption keys per segment ranges from one to the number of pieces.

9. The method of claim 1 , wherein the step of encoding each segment comprises erasure coding of mixing degree S, wherein codeword chunks are produced from information chunks using a linear block error correction code, and mixing degree S requires at least S codeword chunks to reconstruct any information chunk.

10. The method of claim 9 , wherein respective erasure coding techniques are used for data segment encoding and metadata encoding, such that metadata is protected from at least storage node failure.

11. The method of claim 1 , wherein the step of assigning packages to remote storage nodes minimizes retrieval latency for a group of related segments.

12. The method of claim 1 , wherein a relevance coefficient is a function of information representing an employed erasure correction coding scheme and significance of the respective codeword position for data retrieval.

13. The method of claim 1 , wherein metadata for a file and metadata for related segments is divided into two parts, in which one part is individually packed in packages and another part is appended to packages containing respective encoded data segments.

14. The method of claim 1 , further comprising arranging temporary storage of file data within a local cache by:

operating over compound blocks of data;

dividing memory space into regions with compound blocks of equal size;

employing a file structure to optimize file arrangement within the local cache; and

performing garbage collection to arrange free compound blocks.

15. The method of claim 14 , wherein arranging temporary storage of file data within a local cache further includes cache optimization employing information representing a file structure.

16. The method of claim 15 , wherein cache optimization is simplified by classifying files based on respective a plurality of categories of access patterns, and employing respective cache management strategy for similarly categorized files.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2021
From: CLINEHAIR COMMERCIAL ENDEAVORS, LLC
To: CLOUD STORAGE, INC.
Reel/Frame 055654/0430 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 053763 FRAME: 0432. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Mar 19, 2021
From: DATOMIA RESEARCH LABS OÜ
To: CLINEHAIR COMMERCIAL ENDEAVORS, LLC
Reel/Frame 055661/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: DATOMIA RESEARCH LABS OÜ
To: CLINE HAIR COMMERCIAL ENDEAVORS (CHCE) LLC
Reel/Frame 053763/0432 →
RELEASE OF LIEN Recorded Oct 18, 2019
From: LILLING, BRUCE E
To: DATOMIA RESEARCH LABS OU; DATOMIA, INC.
Reel/Frame 050765/0586 →
LIEN Recorded May 10, 2018
From: DATOMIA RESEARCH LABS OU; DATOMIA, INC.
To: LILLING, BRUCE E, LILL
Reel/Frame 046111/0312 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2018
From: CLOUD CROWDING CORP.
To: DATACRADLE OU
Reel/Frame 045391/0563 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2018
From: DATACRADLE OU
To: DATOMIA RESEARCH LABS OU
Reel/Frame 045391/0627 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2017
From: YANOVSKY, DAVID; NAMORADZE, TEIMURAZ; MILOSLAVSKAYA, VERA DMITRIYEVNA; SMIRNOV, DENYS
To: CLOUD CROWDING CORP.
Reel/Frame 042495/0704 →
Continuity (5)
Provisional Application 62308223 · Mar 15, 2016
Provisional Application 62332002 · May 5, 2016
Provisional Application 62349145 · Jun 13, 2016
Provisional Application 62434421 · Dec 15, 2016
Related Publication 20170272209A1 · Sep 21, 2017
Cited By (3)
US 12,481,796 US 12,627,480 US 12,712,724