IP Library Granted Patent US 10,692,529
Granted Patent B2
US 10,692,529 · App. 16/288,344 · Granted Jun 23, 2020

Systems and methods and systems for reading data sequentially on a media

Inventors: Jeff Flowers (Boston, MA); Mark Rees (Boston, MA)
Assignee: Wasabi Technologies, Inc.
G11B20/1217G06F3/0604G06F3/067G06F3/0619G06F3/0623G06F3/0638G06F3/0644G06F3/0655G06F3/0659G06F3/0683G06F21/6218G11B5/012G11B20/00217G11B27/105G06F3/06G11B27/30G11B2020/1238G11B2020/1292H04N21/231H04N21/23103H04Q2213/13176
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,692,529
App. No.
16/288,344
Granted
Jun 23, 2020
Kind
B2
Abstract

Systems and methods for reading data are provided herein using a data archive architecture controlled by a head server. The head server can read data in a contiguous manner across multiple storage devices for data that has been partitioned into multiple portions and spread across the multiple storage devices. Portions of a first object can be transmitted and read from a first subset of storage devices and portions of a second object can be transmitted and read from a second subset of storage devices. The head server can increment a read pointer based on a length of the portions of the first object to a determine a read location of different portions of the first object or the second object. The head server can identify different read location to read sub sequent of different portions of multiple objects using one or more lengths of the objects or portions of the object.

Claims (65)

1. A method to read data sequentially on a media comprising:

identifying, by a head server in communication with a plurality of storage devices, a first read location corresponding to a first plurality of portions of a first object;

determining, by the head server, a first length of the first plurality of portions of the first object;

identifying, by the head server, a second read location corresponding to a second plurality of portions of a second object using the first length;

transmitting, by respective ones of the first subset of plurality of storage devices, each of the first plurality of portions from the first read location to the head server;

reading, by the head server, the first plurality of portions of the first object from the first subset of plurality of storage devices;

incrementing, by the head server, a read pointer from the first read location to the second read location based on the first length;

transmitting, by respective ones of the second subset of plurality of storage devices, each of the second plurality of portions from the second read location to the head server; and

reading, by the head server, the second plurality of portions of the second object from the second subset of plurality of storage devices.

2. The method of claim 1 , comprising:

organizing, by the head server, the first subset of the plurality of storage devices in a first contiguous order; and

organizing, by the head server, the second subset of the plurality of storage devices in a second contiguous order.

3. The method of claim 2 , comprising:

reading, by the head server, the first plurality of portions forming the first object from the first subset of the plurality of storage devices in the first contiguous order; and

reading, by the head server, the second plurality of portions forming the second object from the second subset of the plurality of storage devices in the second contiguous order.

4. The method of claim 1 , comprising:

combining, by the head server, the first plurality of portions to form the first object; and

combining, by the head server, the second plurality of portions to form the second object.

5. The method of claim 1 , further comprising storing the first read location corresponding to the first plurality of portions and the second read location corresponding to the second plurality of portions to a storage media independent from the plurality storage devices.

6. The method of claim 1 , further comprising extracting the first read location corresponding to the first plurality of portions and the second read location corresponding to the second plurality of portions to a storage media independent from the plurality storage devices.

7. The method of claim 1 , further comprising:

identifying the first read location for a first one of the first plurality of portions of the first object from a storage media independent from the plurality storage devices; and

identifying the second read location for a first one of the second plurality of portions of the second object from the storage media independent from the plurality storage devices.

8. The method of claim 1 , further comprising:

identifying metadata corresponding to the first object stored in at least one entry of a storage media independent from the plurality storage devices;

determining an encryption key for the first object from the metadata; and

decrypting the first object with the encryption key.

9. The method of claim 1 , further comprising:

reading, by the head server, one of the plurality of the first portions from a first block stored on a temporary storage medium; and

reading, by the head server, one of the plurality of the second portions from the first block stored on the temporary storage medium.

10. The method of claim 1 , wherein the second subset of the plurality of storage devices is different than the first subset of the plurality of storage devices.

11. A system to read data sequentially on a media, comprising:

a head server in communication with a plurality of storage devices, the head server configured to:

identify a first read location corresponding to a first plurality of portions of a first object;

determine a first length of the first plurality of portions of the first object;

identify a second read location corresponding to a second plurality of portions of a second object using the first length;

read the first plurality of portions of the first object from a first subset of the plurality of storage devices;

increment a read pointer from the first read location to the second read location based on the first length; and

read the second plurality of portions of the second object from a second subset of the plurality of storage devices; and

respective ones of the first subset of plurality of storage devices configured to:

transmit each of the first plurality of portions from the first read location to the head server; and

respective ones of the second subset of plurality of storage devices configured to:

transmit each of the second plurality of portions from the second read location to the head server.

12. The system of claim 11 , wherein the head server is further configured to:

organize the first subset of the plurality of storage devices in a first contiguous order; and

organize the second subset of the plurality of storage devices in a second contiguous order.

13. The system of claim 12 , wherein the head server is further configured to:

read the first plurality of portions forming the first object from the first subset of the plurality of storage devices in the first contiguous order; and

read the second plurality of portions forming the second object from the second subset of the plurality of storage devices in the second contiguous order.

14. The system of claim 12 , wherein the head server is further configured to:

combine the first plurality of portions to form the first object; and

combine the second plurality of portions to form the second object.

15. The system of claim 12 , wherein the head server is further configured to store the first read location corresponding to the first plurality of portions and the second read location corresponding to the second plurality of portions to a storage media independent from the plurality storage devices.

16. The system of claim 12 , wherein the head server is further configured to extract the first read location corresponding to the first plurality of portions and the second read location corresponding to the second plurality of portions from a storage media independent from the plurality storage devices.

17. The system of claim 12 , wherein the head server is further configured to:

identify the first read location for a first one of the first plurality of portions of the first object from a storage media independent from the plurality storage devices; and

identify the second read location for a first one of the second plurality of portions of the second object from the storage media independent from the plurality storage devices.

18. The system of claim 12 , wherein the head server is further configured to:

identify metadata corresponding to the first object stored in at least one entry of a storage media independent from the plurality storage devices;

determine an encryption key for the first object from the metadata; and

decrypt the first object with the encryption key.

19. The system of claim 12 , wherein the head server is further configured to:

read one of the plurality of the first portions from a first block stored on a temporary storage medium; and

read one of the plurality of the second portions from the first block stored on the temporary storage medium.

20. The system of claim 12 , wherein the second subset of the plurality of storage devices is different than the first subset of the plurality of storage devices.

Assignments (4)
SECURITY INTEREST Recorded Apr 8, 2026
From: WASABI TECHNOLOGIES LLC
To: BAIN CAPITAL CREDIT, LP AS AGENT FOR THE LENDERS
Reel/Frame 074307/0425 →
CHANGE OF NAME Recorded Jan 19, 2022
From: WASABI TECHNOLOGIES, INC.
To: WASABI TECHNOLOGIES LLC
Reel/Frame 058769/0058 →
SECURITY INTEREST Recorded Dec 10, 2020
From: WASABI TECHNOLOGIES, INC.
To: MGG INVESTMENT GROUP LP, AS COLLATERAL AGENT
Reel/Frame 054609/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2019
From: FLOWERS, JEF; REES, MARK
To: WASABI TECHNOLOGIES, INC.
Reel/Frame 048573/0940 →
Continuity (2)
Provisional Application 62702083 · Jul 23, 2018
Related Publication 20200026458A1 · Jan 23, 2020