IP Library Granted Patent US 10,310,736
Granted Patent B1
US 10,310,736 · App. 15/388,885 · Granted Jun 4, 2019

Systems and methods for storing data

Inventors: Junheng Yu (Chengdu, CH); Hongbin Gong (Chengdu, CH); Stephan Gipp (St Louis Park, MN)
Assignee: Veritas Technologies LLC
G06F3/0608G06F3/064G06F3/065G06F3/0619G06F3/0683
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,310,736
App. No.
15/388,885
Granted
Jun 4, 2019
Kind
B1
Abstract

The disclosed computer-implemented method for storing data may include (i) identifying a request to backup a set of data according to a storage-as-a-service configuration that stores data into cloud storage, (ii) dividing the set of data to be backed up into chunks of data, (iii) dividing, for each of the chunks of data, a respective chunk into blocks of data, (iv) generating, for each of the chunks of data, at least one block of parity bits for the respective chunk of data based on applying an erasure code to the blocks of data, and (v) splitting, during backing up the chunks of data according to the storage-as-a-service configuration, the respective blocks of data and the generated block of parity bits into heterogeneous storage media targets such that the storage-as-a-service configuration benefits from the heterogeneous storage media targets. Various other methods, systems, and computer-readable media are also disclosed.

Claims (45)

1. A computer-implemented method for storing data, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a request to backup a set of data according to a storage-as-a-service configuration that stores data into cloud storage;

dividing the set of data to be backed up into chunks of data;

dividing, for each of the chunks of data, a respective chunk into blocks of data;

generating, for each of the chunks of data, at least one block of parity bits for the respective chunk of data based on applying an erasure code to the blocks of data; and

splitting, during backing up the chunks of data according to the storage-as-a-service configuration, the respective blocks of data and the generated block of parity bits into heterogeneous storage media targets.

2. The computer-implemented method of claim 1 , wherein the chunks of data each has the same size.

3. The computer-implemented method of claim 1 , wherein dividing the respective chunk into the blocks of data and generating the block of parity bits are performed in at least one of the following manners:

inline as the storage-as-a-service configuration receives the chunks of data;

offline, after the storage-as-a-service configuration receives the chunks of data; and

in response to a system load.

4. The computer-implemented method of claim 1 , further comprising appending a checksum code to each block of data in each of the chunks of data.

5. The computer-implemented method of claim 1 , wherein a mathematical level of data redundancy for backing up the chunks of data within the storage-as-a-service configuration is

less than 1.5.

6. The computer-implemented method of claim 1 , wherein at least two chunks are split into a different number of blocks of data according to different parameters of the erasure code.

7. The computer-implemented method of claim 1 , wherein the heterogeneous storage media targets are provided by different corporate storage-as-a-service vendors.

8. The computer-implemented method of claim 1 , wherein the heterogeneous storage media targets comprise different models of storage hardware that have substantially different levels of performance in terms of at least one of price, latency, and reliability.

9. The computer-implemented method of claim 8 , wherein the block of parity bits for each chunk is stored within a storage media target having a lower level of performance than at least one storage media target that stores a block of data based on a prediction that the block of parity bits will be accessed less frequently.

10. The computer-implemented method of claim 1 , wherein the storage-as-a-service configuration stores the chunks of data in a deduplicated format.

11. A system for storing data, the system comprising:

an identification module, stored in memory, that identifies a request to backup a set of data according to a storage-as-a-service configuration that stores data into cloud storage;

a dividing module, stored in memory, that:

divides the set of data to be backed up into chunks of data;

divides, for each of the chunks of data, a respective chunk into blocks of data;

a generation module, stored in memory, that generates, for each of the chunks of data, at least one block of parity bits for the respective chunk of data based on applying an erasure code to the blocks of data;

a splitting module, stored in memory, that splits, during backing up the chunks of data according to the storage-as-a-service configuration, the respective blocks of data and the generated block of parity bits into heterogeneous storage media targets; and

at least one physical processor configured to execute the identification module, the dividing module, the generation module, and the splitting module.

12. The system of claim 11 , wherein the chunks of data each has the same size.

13. The system of claim 11 , wherein the dividing module divides the respective chunk into the blocks of data and the generation module generates the block of parity bits in at least one of the following manners:

inline as the storage-as-a-service configuration receives the chunks of data;

offline, after the storage-as-a-service configuration receives the chunks of data; and

in response to a system load.

14. The system of claim 11 , wherein the generation module further appends a checksum code to each block of data in each of the chunks of data.

15. The system of claim 11 , wherein a mathematical level of data redundancy for backing up the chunks of data within the storage-as-a-service configuration is

less than 1.5.

16. The system of claim 11 , wherein at least two chunks are split into a different number of blocks of data according to different parameters of the erasure code.

17. The system of claim 11 , wherein the heterogeneous storage media targets are provided by different corporate storage-as-a-service vendors.

18. The system of claim 11 , wherein the heterogeneous storage media targets comprise different models of storage hardware that have substantially different levels of performance in terms of at least one of price, latency, and reliability.

19. The system of claim 18 , wherein the block of parity bits for each chunk is stored within a storage media target having a lower level of performance than at least one storage media target that stores a block of data based on a prediction that the block of parity bits will be accessed less frequently.

20. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a request to backup a set of data according to a storage-as-a-service configuration that stores data into cloud storage;

divide the set of data to be backed up into chunks of data;

divide, for each of the chunks of data, a respective chunk into blocks of data;

generate, for each of the chunks of data, at least one block of parity bits for the respective chunk of data based on applying an erasure code to the blocks of data; and

split, during backing up the chunks of data according to the storage-as-a-service configuration, the respective blocks of data and the generated block of parity bits into heterogeneous storage media targets.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075377/0130 →
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0895 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 17, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 042037/0817 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2016
From: YU, JUNHENG; GONG, HONGBIN; GIPP, STEPHAN
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 040755/0263 →
Cited By (1)
US 12,260,106