System, method and computer program product for conditionally executing related reports in parallel based on an estimated execution time
First Claim
1. A computer program product, comprising a non-transitory computer usable medium having a computer readable program code embodied therein, the computer readable program code adapted to be executed to implement a method, the method comprising:
- receiving at a first processor a request to execute a composite report including a plurality of related reports;
identifying the plurality of related reports to be executed;
determining an estimate of an amount of time to execute all of the identified plurality of related reports from a sub-estimate of an amount of time to execute each of the related reports, wherein the sub-estimate is determined for each of the related reports using statistics, and wherein the determined estimate is increased more when the request is received from an application than when the request is received from a user via a user interface;
performing a sequential execution of all of the identified plurality of related reports by the first processor when it is determined that the estimate is less than a predefined threshold amount of time; and
performing a parallel execution of all of the identified plurality of related reports by a plurality of distributed processors other than the first processor, such that each of the plurality of distributed processors executes a different one of the related reports, when it is determined that the estimate is greater than the predefined threshold amount of time.
1 Assignment
0 Petitions
Accused Products
Abstract
In accordance with embodiments, there are provided mechanisms and methods for conditionally executing related reports in parallel based on an estimated execution time. These mechanisms and methods for conditionally executing related reports in parallel based on an estimated execution time can provide parallel execution of related reports when predetermined time-based criteria are met. The ability to conditionally provide parallel execution of related reports can reduce overhead caused by such parallel execution when the time-based criteria is met.
-
Citations
7 Claims
-
1. A computer program product, comprising a non-transitory computer usable medium having a computer readable program code embodied therein, the computer readable program code adapted to be executed to implement a method, the method comprising:
-
receiving at a first processor a request to execute a composite report including a plurality of related reports; identifying the plurality of related reports to be executed; determining an estimate of an amount of time to execute all of the identified plurality of related reports from a sub-estimate of an amount of time to execute each of the related reports, wherein the sub-estimate is determined for each of the related reports using statistics, and wherein the determined estimate is increased more when the request is received from an application than when the request is received from a user via a user interface; performing a sequential execution of all of the identified plurality of related reports by the first processor when it is determined that the estimate is less than a predefined threshold amount of time; and performing a parallel execution of all of the identified plurality of related reports by a plurality of distributed processors other than the first processor, such that each of the plurality of distributed processors executes a different one of the related reports, when it is determined that the estimate is greater than the predefined threshold amount of time. - View Dependent Claims (2, 3, 4)
-
-
5. A method, comprising:
-
receiving at a first processor a request to execute a composite report including a plurality of related reports; identifying the plurality of related reports to be executed; determining an estimate of an amount of time to execute all of the identified plurality of related reports from a sub-estimate of an amount of time to execute each of the related reports, wherein the sub-estimate is determined for each of the related reports using statistics, and wherein the determined estimate is increased more when the request is received from an application than when the request is received from a user via a user interface; performing a sequential execution of all of the identified plurality of related reports by the first processor when it is determined that the estimate is less than a predefined threshold amount of time; and performing a parallel execution of all of the identified plurality of related reports by a plurality of distributed processors other than the first processor, such that each of the plurality of distributed processors executes a different one of the related reports, when it is determined that the estimate is greater than the predefined threshold amount of time.
-
-
6. An apparatus, comprising:
-
a first processor for; receiving a request to execute a composite report including a plurality of related reports; identifying the plurality of related reports to be executed; determining an estimate of an amount of time to execute all of the identified plurality of related reports from a sub-estimate of an amount of time to execute each of the related reports, wherein the sub-estimate is determined for each of the related reports using statistics, and wherein the determined estimate is increased more when the request is received from an application than when the request is received from a user via a user interface; and performing a sequential execution of all of the identified plurality of related reports by the first processor when it is determined that the estimate is less than a predefined threshold amount of time; wherein a parallel execution of all of the identified plurality of related reports is performed by a plurality of distributed processors other than the first processor, such that each of the plurality of distributed processors executes a different one of the related reports, when it is determined that the estimate is greater than the predefined threshold amount of time.
-
-
7. A method for transmitting code, comprising:
-
transmitting code for receiving at a first processor a request to execute a composite report including a plurality of related reports; transmitting code for identifying the plurality of related reports to be executed; transmitting code for determining an estimate of an amount of time to execute all of the identified plurality of related reports from a sub-estimate of an amount of time to execute each of the related reports, wherein the sub-estimate is determined for each of the related reports using statistics, and wherein the determined estimate is increased more when the request is received from an application than when the request is received from a user via a user interface; transmitting code for performing a sequential execution of all of the identified plurality of related reports by the first processor when it is determined that the estimate is less than a predefined threshold amount of time; and transmitting code for performing a parallel execution of all of the identified plurality of related reports by a plurality of distributed processors other than the first processor, such that each of the plurality of distributed processors executes a different one of the related reports, when it is determined that the estimate is greater than the predefined threshold amount of time.
-
Specification