IP Library Granted Patent US 9,392,060
Granted Patent B1
US 9,392,060 · App. 14/038,255 · Granted Jul 12, 2016

Managing distributed system performance using accelerated data retrieval operations

Inventors: Silvius V. Rus (Orinda, CA); Esteban Molina-Estolano (Redwood City, CA)
Assignee: Quantcast Corporation
H04L67/1097
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 9,392,060
App. No.
14/038,255
Granted
Jul 12, 2016
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 include one or more stripes of redundancy information 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 least one of the one or more stripes of redundancy information for the data item is requested from the distributed storage. Other stripes associated with the data item may also be 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 (66)

1. A computer-implemented method for managing performance of a distributed system, the method comprising:

storing, in a plurality of storage devices of a distributed storage, a plurality of stripes associated with a data item, the plurality of stripes 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 each stripe in the plurality of stripes includes redundancy information for the data item;

performing a distributed process including a task that requires retrieval of the data item from the distributed storage;

determining a processing speed associated with the task, the processing speed comprising an amount of data processed divided by a pre-defined time; and

responsive to determining the processing speed does not meet a threshold, performing an accelerated data retrieval operation by:

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;

determining whether a sufficient subset of the requested stripes has been received, the sufficient subset comprising at least the minimum number of stripes required to reconstruct the data item; and

responsive to a determination that the sufficient subset has been received, reconstructing the data item using the sufficient subset of the requested stripes.

2. The computer-implemented method of claim 1 , wherein the plurality of stripes associated with the data item is generated according to an error correction coding scheme.

3. The computer-implemented method of claim 1 , wherein the stripes of the plurality of stripes are each stored on a different storage device of the distributed storage.

4. The computer-implemented method of claim 1 further comprising:

storing a plurality of copies of the plurality of stripes associated with the data item in the distributed storage, and

wherein performing the accelerated data retrieval operation further comprises requesting the plurality of copies of the plurality of stripes associated with the data item from the distributed storage.

5. The method of claim 1 , wherein:

the distributed process comprises a plurality of additional tasks, each of the plurality of additional tasks having a respective processing speed, each respective processing speed comprising an amount of data processed by the respective additional task divided by the pre-defined time, an average processing speed of the plurality of additional tasks comprising a sum of the processing speeds of the additional tasks divided by the number of additional tasks; and

the threshold comprises the average processing speed of the plurality of additional tasks.

6. The method of claim 1 , wherein:

the distributed process comprises a plurality of additional tasks, each of the plurality of additional tasks having a respective processing speed, each respective processing speed comprising an amount of data processed by the respective additional task divided by the pre-defined time, an average processing speed of the plurality of additional tasks comprising a sum of the processing speeds of the additional tasks divided by the number of additional tasks; and

the threshold comprises a fraction of the average processing speed of the plurality of additional tasks.

7. The method of claim 1 , wherein:

the distributed process comprises a plurality of additional tasks, each of the plurality of additional tasks having a respective processing speed, each respective processing speed comprising an amount of data processed by the respective additional task divided by the pre-defined time; and

the threshold comprises a selected additional task's processing speed, the selected additional task selected for having a slowest processing speed of the plurality of additional tasks.

8. A non-transitory computer readable storage medium executing computer program instructions for managing performance of a distributed system, the computer program instructions comprising instructions for:

storing, in a plurality of storage devices of distributed storage, a plurality of stripes associated with a data item, the plurality of stripes 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 each stripe in the plurality of stripes includes redundancy information for the data item;

performing a distributed process including a task that requires retrieval of the data item from the distributed storage;

determining a processing speed associated with the task, the processing speed comprising an amount of data processed divided by a pre-defined time; and

responsive to determining the processing speed does not meet a threshold, performing an accelerated data retrieval operation by:

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;

determining whether a sufficient subset of the requested stripes has been received, the sufficient subset comprising at least the minimum number of stripes required to reconstruct the data item; and

responsive to a determination that the sufficient subset has been received, reconstructing the data item using the sufficient subset of the requested stripes.

9. The medium of claim 8 , wherein the plurality of stripes associated with the data item is generated according to an error correction coding scheme.

10. The medium of claim 8 , wherein the stripes of the plurality of stripes are each stored on a different storage device of the distributed storage.

11. The medium of claim 8 , the computer program instructions further comprising instructions for:

storing a plurality of copies of the plurality of stripes associated with the data item in the distributed storage, and

wherein performing the accelerated data retrieval operation further comprises requesting the plurality of copies of the plurality of stripes associated with the data item from the distributed storage.

12. The medium of claim 8 , wherein:

the distributed process comprises a plurality of additional tasks, each of the plurality of additional tasks having a respective processing speed, each respective processing speed comprising an amount of data processed by the respective additional task divided by the pre-defined time, an average processing speed of the plurality of additional tasks comprising a sum of the processing speeds of the additional tasks divided by the number of additional tasks; and

the threshold comprises the average processing speed of the plurality of additional tasks.

13. The medium of claim 8 , wherein:

the distributed process comprises a plurality of additional tasks, each of the plurality of additional tasks having a respective processing speed, each respective processing speed comprising an amount of data processed by the respective additional task divided by the pre-defined time, an average processing speed of the plurality of additional tasks comprising a sum of the processing speeds of the additional tasks divided by the number of additional tasks; and

the threshold comprises a fraction of the average processing speed of the plurality of additional tasks.

14. The medium of claim 8 , wherein:

the distributed process comprises a plurality of additional tasks, each of the plurality of additional tasks having a respective processing speed, each respective processing speed comprising an amount of data processed by the respective additional task divided by the pre-defined time; and

the threshold comprises a selected additional task's processing speed, the selected additional task selected for having a slowest processing speed of the plurality of additional tasks.

15. A system comprising:

a computer readable storage medium storing processor-executable computer program instructions for managing performance of a distributed system, the instructions comprising instructions for:

storing, in a plurality of storage devices of a distributed storage, a plurality of stripes associated with a data item, the plurality of stripes 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 each stripe in the plurality of stripes includes redundancy information for the data item;

performing a distributed process including a task that requires retrieval of the data item from the distributed storage;

determining a processing speed associated with the task, the processing speed comprising an amount of data processed divided by a pre-defined time; and

responsive to determining the processing speed does not meet a threshold, performing an accelerated data retrieval operation by:

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;

determining whether a sufficient subset of the requested stripes has been received, the sufficient subset comprising at least the minimum number of stripes required to reconstruct the data item; and

responsive to a determination that the sufficient subset has been received, reconstructing the data item using the sufficient subset of the requested stripes;

and

a processor for executing the computer program instructions.

16. The system of claim 15 , wherein the plurality of stripes associated with the data item is generated according to an error correction coding scheme.

17. The system of claim 15 , wherein the stripes of the plurality of stripes are each stored on a different storage device of the distributed storage.

18. The system of claim 15 , the instructions further comprising instructions for:

storing a plurality of copies of the plurality of stripes associated with the data item in the distributed storage, and

wherein performing the accelerated data retrieval operation further comprises requesting the plurality of copies of the plurality of stripes associated with the data item from the distributed storage.

19. The system of claim 15 , wherein:

the distributed process comprises a plurality of additional tasks, each of the plurality of additional tasks having a respective processing speed, each respective processing speed comprising an amount of data processed by the respective additional task divided by the pre-defined time, an average processing speed of the plurality of additional tasks comprising a sum of the processing speeds of the additional tasks divided by the number of additional tasks; and

the threshold comprises a fraction of the average processing speed of the plurality of additional tasks.

20. The system of claim 15 , wherein:

the distributed process comprises a plurality of additional tasks, each of the plurality of additional tasks having a respective processing speed, each respective processing speed comprising an amount of data processed by the respective additional task divided by the pre-defined time; and

the threshold comprises a selected additional task's processing speed, the selected additional task selected for having a slowest processing speed of the plurality of additional tasks.

Assignments (12)
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 →
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2021
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: QUANTCST CORPORATION
Reel/Frame 057678/0832 →
RELEASE OF SECURITY INTEREST Recorded May 6, 2021
From: VENTURE LENDING & LEASING VI, INC.; VENTURE LENDING & LEASING VII, INC.
To: QUANTCAST CORPORATION
Reel/Frame 056159/0702 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2021
From: TRIPLEPOINT VENTURE GROWTH BDC CORP.
To: QUANTCAST CORPORATION
Reel/Frame 055599/0282 →
FIRST AMENDMENT TO PATENT SECURITY AGREEMENT Recorded Nov 14, 2016
From: QUANTCAST CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 040614/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2016
From: MOLINA-ESTOLANO, ESTEBAN
To: QUANTCAST CORP.
Reel/Frame 038789/0311 →
PATENT SECURITY AGREEMENT Recorded Jun 26, 2015
From: QUANTCAST CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 036020/0721 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2014
From: RUS, SILVIUS V
To: QUANTCAST CORPORATION
Reel/Frame 032121/0186 →
SECURITY AGREEMENT Recorded Oct 18, 2013
From: QUANTCAST CORPORATION
To: VENTURE LENDING & LEASING VI, INC.; VENTURE LENDING & LEASING VII, INC.
Reel/Frame 031438/0474 →
Continuity (1)
Continuation 13763459 · Feb 8, 2013