IP Library Granted Patent US 11,093,328
Granted Patent B1
US 11,093,328 · App. 16/723,190 · Granted Aug 17, 2021

Managing distributed system performance using accelerated data retrieval operations

Inventors: Esteban Molina-Estolano (Redwood City, CA); Silvius V. Rus (Orinda, CA)
Assignee: Quantcast Corporation
G06F11/1076G06F3/061G06F3/064G06F3/067G06F3/0611G06F3/0619G06F3/0647G06F3/0659G06F11/1088H04L67/1097G06F3/065
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,093,328
App. No.
16/723,190
Granted
Aug 17, 2021
Kind
B1
Abstract

A distributed system is adapted to manage the performance of distributed processes. In one aspect, multiple stripes associated with a data item are stored in a distributed storage. The stored stripes may include one or more stripes of redundancy information for the data item. The stored stripes may include one or more copies of stripes for the data item. A distributed process including at least one task is performed. During performance of the distributed process, a determination is made as to whether to perform an accelerated data retrieval operation. Responsive to a determination to perform an accelerated data retrieval operation, at more than the minimal number stripes information required to reconstruct the data item is requested from the distributed storage. After a sufficient subset of stripes associated with the data item is received, the data item is reconstructed using the subset.

Claims (68)

1. A method for managing performance of a distributed process of a distributed storage system, the storage system comprising a plurality of stripes corresponding to a data item generated according to a coding scheme, wherein the coding scheme generates a number of stripes associated with the data item that is more than a minimum number of stripes needed to reconstruct the data item, and wherein the plurality of stripes are stored in a plurality of storage devices of the distributed storage system, the method comprising:

responsive to determining that a performance level associated with performing a first task is below a threshold:

for the first task, requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system; and

performing a second task, the second task being a replica of the primary task, comprising requesting at least the minimum number of stripes needed to reconstruct the data item from the distributed storage system; and

responsive to a determining that at least the minimum number of stripes required to reconstruct the data item has been received, reconstructing the data item.

2. The method of claim 1 , wherein performing the second task further comprises:

requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system.

3. The method of claim 1 , wherein:

the plurality of generated stripes includes a plurality of copies of at least one stripe; and

wherein requesting more than the minimum number of stripes needed to reconstruct the data item comprises for the first task comprises requesting at least two copies of at the least one stripe.

4. The method of claim 3 , wherein performing the second task further comprises:

requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system, and

requesting at least two copies of at the least one stripe.

5. The method of claim 1 , wherein:

the plurality of generated stripes includes redundancy information for the data item; and;

wherein reconstructing the data item for the first task is based on the redundancy information.

6. The method of claim 5 , wherein performing the second task further comprises:

requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system.

7. The method of claim 1 , wherein:

requesting more than the minimum number of stripes for the first task comprises requesting a first subset of data stripes; and

requesting at least the minimum number of stripes for the second task further comprises requesting a second subset of stripes; and

the first subset of stripes and the second subset of stripes comprise different stripes.

8. A non-transitory computer-readable storage medium storing processor-executable computer program instructions that, when executed, cause a computer processor to perform a method for managing performance of a distributed process of a distributed storage system, the storage system comprising a plurality of stripes corresponding to a data item generated according to a coding scheme, wherein the coding scheme generates a number of stripes associated with the data item that is more than a minimum number of stripes needed to reconstruct the data item, and wherein the plurality of stripes are stored in a plurality of storage devices of the distributed storage system, the method comprising:

responsive to determining that a performance level associated with performing a first task is below a threshold:

for the first task, requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system; and

performing a second task, the second task being a replica of the primary task, comprising requesting at least the minimum number of stripes needed to reconstruct the data item from the distributed storage system; and

responsive to a determining that at least the minimum number of stripes required to reconstruct the data item has been received, reconstructing the data item.

9. The medium of claim 8 , wherein performing the second task further comprises:

requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system.

10. The medium of claim 8 , wherein:

the plurality of generated stripes includes a plurality of copies of at least one stripe; and

wherein requesting more than the minimum number of stripes needed to reconstruct the data item comprises for the first task comprises requesting at least two copies of at the least one stripe.

11. The medium of claim 10 , wherein performing the second task further comprises:

requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system, and

requesting at least two copies of at the least one stripe.

12. The medium of claim 8 , wherein:

the plurality of generated stripes includes redundancy information for the data item; and;

wherein reconstructing the data item for the first task is based on the redundancy information.

13. The medium of claim 12 , wherein performing the second task further comprises:

requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system.

14. The medium of claim 8 , wherein:

requesting more than the minimum number of stripes for the first task comprises requesting a first subset of data stripes; and

requesting at least the minimum number of stripes for the second task further comprises requesting a second subset of stripes; and

the first subset of stripes and the second subset of stripes comprise different stripes.

15. A system comprising:

a processor; and

a non-transitory computer-readable storage medium storing processor-executable computer program instructions that, when executed, cause a computer processor to perform a method for managing performance of a distributed process of a distributed storage system, the storage system comprising a plurality of stripes corresponding to a data item generated according to a coding scheme, wherein the coding scheme generates a number of stripes associated with the data item that is more than a minimum number of stripes needed to reconstruct the data item, and wherein the plurality of stripes are stored in a plurality of storage devices of the distributed storage system, the method comprising:

responsive to determining that a performance level associated with performing a first task is below a threshold:

for the first task, requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system; and

performing a second task, the second task being a replica of the primary task, comprising requesting at least the minimum number of stripes needed to reconstruct the data item from the distributed storage system; and

responsive to a determining that at least the minimum number of stripes required to reconstruct the data item has been received, reconstructing the data item.

16. The system of claim 15 , wherein performing the second task further comprises:

requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system.

17. The system of claim 15 , wherein:

the plurality of generated stripes includes a plurality of copies of at least one stripe; and

wherein requesting more than the minimum number of stripes needed to reconstruct the data item comprises for the first task comprises requesting at least two copies of at the least one stripe.

18. The system of claim 17 , wherein performing the second task further comprises:

requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system, and

requesting at least two copies of at the least one stripe.

19. The system of claim 15 , wherein:

the plurality of generated stripes includes redundancy information for the data item; and;

wherein reconstructing the data item for the first task is based on the redundancy information.

20. The system of claim 19 , wherein performing the second task further comprises:

requesting more than the minimum number of stripes needed to reconstruct the data item from at least two of the plurality of storage devices of the distributed storage system.

21. The system of claim 15 , wherein:

requesting more than the minimum number of stripes for the first task comprises requesting a first subset of data stripes; and

requesting at least the minimum number of stripes for the second task further comprises requesting a second subset of stripes; and

the first subset of stripes and the second subset of stripes comprise different stripes.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Jun 21, 2024
From: BANK OF AMERICA, N.A.
To: QUANTCAST CORPORATION
Reel/Frame 067807/0017 →
SECURITY INTEREST Recorded Jun 18, 2024
From: QUANTCAST CORPORATION
To: CRYSTAL FINANCIAL LLC D/B/A SLR CREDIT SOLUTIONS
Reel/Frame 067777/0613 →
SECURITY INTEREST Recorded Dec 5, 2022
From: QUANTCAST CORPORATION
To: VENTURE LENDING & LEASING IX, INC.; WTI FUND X, INC.
Reel/Frame 062066/0265 →
SECURITY INTEREST Recorded Sep 30, 2021
From: QUANTCAST CORPORATION
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 057677/0297 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2020
From: RUS, SILVIUS V.; MOLINA-ESTOLANO, ESTEBAN
To: QUANTCAST CORP.
Reel/Frame 051461/0367 →
Continuity (5)
Continuation 16007706 · Jun 13, 2018
Continuation 15379004 · Dec 14, 2016
Continuation 15163387 · May 24, 2016
Continuation 14038255 · Oct 22, 2013
Continuation 13763459 · Feb 8, 2013