IP Library Granted Patent US 10,901,782
Granted Patent B2
US 10,901,782 · App. 16/040,774 · Granted Jan 26, 2021

Dataflow execution time estimation for in-memory distributed processing framework

Inventors: Vinícius Michel Gottin (Rio de Janeiro, BR); Jonas F. Dias (Rio de Janeiro, BR); Edward José Pacheco Condori (Rio de Janeiro, BR); Angelo E. M. Ciarlini (Rio de Janeiro, BR); Bruno Carlos da Cunha Costa (Teresópolis, BR); Fábio André Machado Porto (Petrópolis, BR); Paulo de Figueiredo Pires (Rio de Janeiro, BR); Yania Molina Souto (Petrópolis, BR); Wagner dos Santos Vieira (Rio de Janeiro, BR)
Assignee: EMC IP Holding Company LLC
G06F9/4881G06F9/485G06F9/5083
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,901,782
App. No.
16/040,774
Granted
Jan 26, 2021
Kind
B2
Abstract

Techniques are provided for dataflow execution time estimation for distributed processing frameworks. An exemplary method comprises: obtaining an input dataset for a dataflow for execution; determining a substantially minimal data unit for a given operation of the dataflow processed by the given operation; estimating a number of rounds required to execute a number of data units in the input dataset using nodes assigned to execute the given operation; determining an execution time spent by the given operation to process one data unit; estimating the execution time for the given operation based on the execution time spent by the given operation to process one data unit and the number of rounds required to execute the number of data units in the input dataset; and executing the given operation with the input dataset. A persistent cost model is optionally employed to record the execution times of known dataflow operations.

Claims (39)

1. A method, comprising: obtaining an input dataset for a dataflow for execution in a distributed processing framework comprising a plurality of processing nodes;

determining a data unit for a given operation of the dataflow, wherein the data unit is based on a size of a partition of data processed by each of the processing nodes assigned to execute the given operation, wherein the partitioning of the input dataset is determined for the given operation of the dataflow;

estimating a number of rounds required to execute a number of data units in the input dataset using the processing nodes of the distributed processing framework assigned to execute the given operation, wherein the number of rounds is based on a relative number of the data units processed by each of the processing nodes assigned to execute the given operation;

determining, using at least one processing device, a round execution time for one or more of the processing nodes assigned to execute the given operation to process one data unit; and

estimating, using the at least one processing device, an operation execution time for the given operation to process the input dataset based on the round execution time and the number of rounds required to execute the number of data units in the input dataset,

wherein the given operation is executed with the input dataset in one or more of the distributed processing framework and a second distributed processing framework.

2. The method of claim 1 , wherein the step of determining the round execution time further comprises the steps of instrumenting source code of the given operation to obtain the start and end times of the given operation; and executing the instrumented code to capture the round execution time of the given operation.

3. The method of claim 1 , further comprising the step of generating a persistent cost model containing the operation execution times of known dataflow operations.

4. The method of claim 3 , wherein the persistent cost model is instantiated in a data structure indexed by the given operation, an input data structure, input data, and an infrastructure of the distributed processing framework; and wherein the persistent cost model indicates the total execution time of the given operation.

5. The method of claim 3 , wherein the persistent cost model provides an estimate for an execution of a newly submitted dataflow, and wherein the persistent cost model is extended as new operations are executed.

6. The method of claim 1 , further comprising the step of capturing the execution time of the execution of the given operation and comparing the captured execution time with the estimated operation execution time from the estimating step.

7. The method of claim 6 , further comprising the step of updating the operation execution time for the given operation in a cost model when the difference between the captured execution time and the estimated operation execution time from the estimating step exceeds a predefined threshold.

8. The method of claim 1 , wherein the execution of the given operation comprises executing a single round of the given operation when the given operation comprises a sample operation.

9. A system, comprising:

a memory; and

at least one processing device, coupled to the memory, operative to implement the following steps:

obtaining an input dataset for a dataflow for execution in a distributed processing framework comprising a plurality of processing nodes;

determining a data unit for a given operation of the dataflow, wherein the data unit is based on a size of a partition of data processed by each of the processing nodes assigned to execute the given operation, wherein the partitioning of the input dataset is determined for the given operation of the dataflow;

estimating a number of rounds required to execute a number of data units in the input dataset using the processing nodes of the distributed processing framework assigned to execute the given operation, wherein the number of rounds is based on a relative number of the data units processed by each of the processing nodes assigned to execute the given operation;

determining, using at least one processing device a round execution time for one or more of the processing nodes assigned to execute the given operation to process one data unit; and

estimating, using the at least one processing device, an operation execution time for the given operation to process the input dataset based on the round execution time and the number of rounds required to execute the number of data units in the input dataset,

wherein the given operation is executed with the input dataset in one or more of the distributed processing framework and a second distributed processing framework.

10. The system of claim 9 , wherein the step of determining the round execution time further comprises the steps of instrumenting source code of the given operation to obtain the start and end times of the given operation; and executing the instrumented code to capture the round execution time of the given operation.

11. The system of claim 9 , further comprising the step of generating a persistent cost model containing the operation execution times of known dataflow operations.

12. The system of claim 11 , wherein the persistent cost model provides an estimate for an execution of a newly submitted dataflow, and wherein the persistent cost model is extended as new operations are executed.

13. The system of claim 9 , further comprising the step of capturing the execution time of the execution of the given operation and comparing the captured execution time with the estimated operation execution time from the estimating step.

14. The system of claim 9 , wherein the execution of the given operation comprises executing a single round of the given operation when the given operation comprises a sample operation.

15. A computer program product, comprising a non-transitory machine-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by at least one processing device perform the following steps:

obtaining an input dataset for a dataflow for execution in a distributed processing framework comprising a plurality of processing nodes;

determining a data unit for a given operation of the dataflow, wherein the data unit is based on a size of a partition of data processed by each of the processing nodes assigned to execute the given operation, wherein the partitioning of the input dataset is determined for the given operation of the dataflow;

estimating a number of rounds required to execute a number of data units in the input dataset using the processing nodes of the distributed processing framework assigned to execute the given operation, wherein the number of rounds is based on a relative number of the data units processed by each of the processing nodes assigned to execute the given operation;

determining, using at least one processing device, a round execution time for one or more of the processing nodes assigned to execute the given operation to process one data unit; and

estimating, using the at least one processing device, an operation execution time for the given operation to process the input dataset based on the round execution time and the number of rounds required to execute the number of data units in the input dataset,

wherein the given operation is executed with the input dataset in one or more of the distributed processing framework and a second distributed processing framework.

16. The computer program product of claim 15 , wherein the step of determining the round execution time further comprises the steps of instrumenting source code of the given operation to obtain the start and end times of the given operation; and executing the instrumented code to capture the round execution time of the given operation.

17. The computer program product of claim 15 , further comprising the step of generating a persistent cost model containing the operation execution times of known dataflow operations.

18. The computer program product of claim 17 , wherein the persistent cost model provides an estimate for an execution of a newly submitted dataflow, and wherein the persistent cost model is extended as new operations are executed.

19. The computer program product of claim 15 , further comprising the step of capturing the execution time of the execution of the given operation and comparing the captured execution time with the estimated operation execution time from the estimating step.

20. The computer program product of claim 15 , wherein the execution of the given operation comprises executing a single round of the given operation when the given operation comprises a sample operation.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2018
From: GOTTIN, VINÍCIUS MICHEL; DIAS, JONAS F.; PACHECO CONDORI, EDWARD JOSÉ; CIARLINI, ANGELO E. M.; DA CUNHA COSTA, BRUNO CARLOS; PORTO, FÁBIO ANDRÉ MACHADO; PIRES, PAULO DE FIGUEIREDO; SOUTO, YANIA MOLINA; VIEIRA, WAGNER DOS SANTOS
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046413/0098 →