IP Library Granted Patent US 11,487,628
Granted Patent B1
US 11,487,628 · App. 15/930,326 · Granted Nov 1, 2022

System and method for rapidly transferring and recovering large data sets

Inventors: John Edward Gerard Matze (Carlsbad, CA); Anthony P. Gaughan (San Francisco, CA); Damian Kowalewski (Sunnyvale, CA)
Assignee: R-Stor Inc.
G06F11/1469G06F11/1004G06F11/1092G06F11/1451G06F11/1456G06F11/1464G06F11/2058G06F11/2064G06F16/182G06F16/909
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 11,487,628
App. No.
15/930,326
Granted
Nov 1, 2022
Kind
B1
Abstract

Systems for rapidly transferring and, as needed, recovering large data sets and methods for making and using the same. In various embodiments, the system advantageously can allow data to be transferred in larger sizes, wherein data may be easily recovered from multiple regions and wherein latency is no longer an issue, among other things.

Claims (54)

1. A method for rapidly transferring and recovering large data sets, comprising:

dividing a file into a plurality of file portions;

calculating a first secure hash algorithm value for a selected file portion;

storing the selected file portion with the first secure hash algorithm value in a first storage system at a first predetermined geographic location;

routing the selected file portion with the first secure hash algorithm value to a second storage system at a second predetermined geographic location different from the first predetermined geographic location;

retrieving the selected file portion stored in the first storage system;

calculating a second secure hash algorithm value for the retrieved file portion;

comparing the first secure hash algorithm value and the second secure hash algorithm value;

retrieving the selected file portion with the first secure hash algorithm value from the second storage system and replacing the selected file portion with the first secure hash algorithm value stored in the first storage system with the selected file portion with the first secure hash algorithm value retrieved from the second storage system based upon said comparing; and

calculating a cyclic redundancy check value of the first secure hash algorithm value;

storing the cyclic redundancy check value with the selected file portion and the first secure hash algorithm value in the first and second storage systems;

determining whether the selected file portion is properly stored in the first storage system based upon the first secure hash algorithm value and the cyclic redundancy check value; and

based upon said determining, retrieving the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value from the second storage system and replacing the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value stored in the first storage system with the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value retrieved from the second storage system.

2. The method of claim 1 , wherein said calculating the first secure hash algorithm value comprises calculating respective first secure hash algorithm values for each of the file portions of the file, said storing includes storing the file portions with the respective first secure hash algorithm values in the first storage system, and said routing comprises routing the file portions with the respective first secure hash algorithm values to the second storage system.

3. The method of claim 2 , wherein the file portions of the file have a uniform size.

4. The method of claim 3 , wherein the uniform size is 128 MB.

5. The method of claim 2 , wherein a predetermined file portion of the file has a first size, and wherein each of the remaining file portions of the file has a uniform second size being larger than the first size of the predetermined file portion.

6. The method of claim 5 , wherein the predetermined file portion is a first file portion or a last file portion of the file, and wherein the first size comprises a native size of the predetermined file portion.

7. The method of claim 1 , wherein said routing comprises routing the selected file portion with the first secure hash algorithm value to at least three storage systems at respective predetermined geographic locations each being different from the first predetermined geographic location.

8. The method of claim 7 , wherein each of the storage systems is disposed on a different continent from the other storage systems.

9. The method of claim 1 , wherein said determining comprises periodically determining whether the selected file portion is properly stored in the second storage system based upon the first secure hash algorithm value and the cyclic redundancy check value.

10. The method of claim 1 , wherein said determining comprises determining whether the selected file portion is properly stored in the second storage system via bit rot detection.

11. The method of claim 1 , further comprising determining whether the selected file portion is properly stored in the second storage system based upon the first secure hash algorithm value and the cyclic redundancy check value, and, based upon said determining whether the selected file portion is properly stored in the second storage system, retrieving the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value from the first storage system and replacing the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value stored in the second storage system with the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value retrieved from the first storage system.

12. The method of claim 1 , further comprising storing the cyclic redundancy check value with the selected file portion and the first secure hash algorithm value in a third storage system at a third predetermined geographic location, determining whether the selected file portion is properly stored in the second storage system based upon the first secure hash algorithm value and the cyclic redundancy check value, and, based upon said determining whether the selected file portion is properly stored in the second storage system, retrieving the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value from the third storage system and replacing the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value stored in the second storage system with the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value retrieved from the third storage system.

13. The method of claim 12 , wherein said replacing the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value stored in the second storage system comprises immediately replacing the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value stored in the second storage system with the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value retrieved from the third storage system.

14. The method of claim 12 , wherein the third predetermined geographic location is distal from the first and second predetermined geographic locations.

15. The method of claim 12 , further comprising designating the selected file portion as being stable when the selected file portion is confirmed to be properly stored on the first, second and third storage systems.

16. The method of claim 15 , further comprising determining that a number of stable file portions on the second storage system is less than a predetermined threshold value and, based upon said determining that the number of stable file portions on the second storage system is less than the predetermined threshold value, rebuilding the second storage system on a fourth storage system by moving copies of the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value stored on the second storage system from the first and third storage systems to the fourth storage system.

17. The method of claim 1 , further comprising assigning a unique global value to the selected file portion for keeping track of a first location of the selected file portion as stored on the first storage system and a second location of the selected file portion as stored on the second storage system, wherein said storing includes storing the unique global value with the selected file portion at the first storage system, and wherein said routing includes routing the unique global value with the selected file portion to the second storage system.

18. A product for rapidly transferring and recovering large data sets by replicating one or more file portions of a file, the product being a combination of a computer program and non-transitory machine-readable storage media, comprising:

instruction for calculating a first secure hash algorithm value for a selected file portion; instruction for storing the selected file portion with the first secure hash algorithm value in a first storage system at a first predetermined geographic location;

instruction for routing the selected file portion with the first secure hash algorithm value to a second storage system at a second predetermined geographic location different from the first predetermined geographic location;

instruction for retrieving the selected file portion stored in the first storage system;

instruction for calculating a second secure hash algorithm value for the retrieved file portion;

instruction for comparing the first secure hash algorithm value and the second secure hash algorithm value;

instruction for retrieving the selected file portion with the first secure hash algorithm value from the second storage system and replacing the selected file portion with the first secure hash algorithm value stored in the first storage system with the selected file portion with the first secure hash algorithm value retrieved from the second storage system if the first secure hash algorithm value and the second secure hash algorithm value do not match; and

instruction for calculating a cyclic redundancy check value of the first secure hash algorithm value;

instruction for storing the cyclic redundancy check value with the selected file portion and the first secure hash algorithm value in the first and second storage systems;

instruction for determining whether the selected file portion is properly stored in the first storage system based upon the first secure hash algorithm value and the cyclic redundancy check value; and

instruction for retrieving the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value from the second storage system and replacing the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value stored in the first storage system with the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value retrieved from the second storage system, based upon said determining.

19. A system for rapidly transferring and recovering large data sets by replicating one or more file portions of a file, comprising:

first and second storage systems, said second storage system being geographically remote from said first storage system; and

a processing system being proximate to said first storage system and being configured for:

dividing the file into the file portions;

calculating a first secure hash algorithm value for a selected file portion;

storing the selected file portion with the first secure hash algorithm value in said first and second storage systems;

retrieving the selected file portion stored in said first storage system;

calculating a second secure hash algorithm value for the retrieved file portion;

comparing the first and second secure hash algorithm values;

if the first and second secure hash algorithm values do not match, retrieving the selected file portion with the first secure hash algorithm value from said second storage system and replacing the selected file portion with the first secure hash algorithm value stored in said first storage system with the selected file portion with the first secure hash algorithm value retrieved from said second storage system;

calculating a cyclic redundancy check value of the first secure hash algorithm value;

storing the cyclic redundancy check value with the selected file portion and the first secure hash algorithm value in the first and second storage systems;

determining whether the selected file portion is properly stored in the first storage system based upon the first secure hash algorithm value and the cyclic redundancy check value; and

based upon said determining, retrieving the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value from the second storage system and replacing the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value stored in the first storage system with the selected file portion with the first secure hash algorithm value and the cyclic redundancy check value retrieved from the second storage system.

Assignments (3)
SECURITY INTEREST Recorded Apr 8, 2026
From: WASABI TECHNOLOGIES LLC
To: BAIN CAPITAL CREDIT, LP AS AGENT FOR THE LENDERS
Reel/Frame 074307/0425 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: R-STOR, INC.
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 064642/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2020
From: MATZE, JOHN EDWARD GERARD; GAUGHAN, ANTHONY P; KOWALEWSKI, DAMIAN
To: R-STOR INC.
Reel/Frame 052642/0477 →
Continuity (1)
Provisional Application 62847184 · May 13, 2019
Cited By (1)
US 12,625,784