System and method for analyzing and tuning a marketing program
First Claim
Patent Images
1. A method for tuning and executing a plurality of connected processes, the method comprising:
- identifying a plurality of stages of processing that are performed and consume computing resources including memory and processing cycles to transmit a plurality of electronic communications; and
reducing consumption of the computing resources to transmit the plurality of electronic communications at least by;
identifying a plurality of distinct paths between a first stage and a second stage within the plurality of stages of processing;
determining thread boundaries that corresponds to at least the first stage and the second stage based in part or in whole upon a directed graph, at least one of the thread boundaries identifying the first stage and the second stage as being executable by a common thread using the same computing resources, the directed graph comprising a node for each of the plurality of stages, thread boundary creator nodes that correspond to stages that start a new thread and thread follower nodes that correspond to stages that do not start a new thread;
persisting unique paths for the plurality of stages of processing and thread boundaries in a database and normalizing the unique paths;
determining whether the first stage and the second stage are connected by two or more paths within the at least one of the thread boundaries;
in response to determining that the first stage and the second stage are connected by the two or more paths within the one of the thread boundaries;
launching the second stage in a single launch using first computing resources for a merged group that is generated by merging groups of work items that are output by the two or more paths, each of the two or more paths using separate computing resources and each work item representing a different user to which electronic communications may be targeted, wherein the merged group comprises a campaign stage that transmits electronic communications; and
executing the single launch to transmit the plurality of electronic communications for the merged group.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for permitting a program to be analyzed and tuned includes the steps of receiving a program which itself includes a plurality of stages, where execution of the program follows a plurality of distinct paths, each of the distinct paths including one or more of the stages. The method further includes determining unique paths of the program and determining execution boundaries of the program. In addition, the method includes persisting the unique paths and the execution boundaries in a database, and changing an execution of the program based on the persisted unique paths and execution boundaries.
78 Citations
20 Claims
-
1. A method for tuning and executing a plurality of connected processes, the method comprising:
-
identifying a plurality of stages of processing that are performed and consume computing resources including memory and processing cycles to transmit a plurality of electronic communications; and reducing consumption of the computing resources to transmit the plurality of electronic communications at least by; identifying a plurality of distinct paths between a first stage and a second stage within the plurality of stages of processing; determining thread boundaries that corresponds to at least the first stage and the second stage based in part or in whole upon a directed graph, at least one of the thread boundaries identifying the first stage and the second stage as being executable by a common thread using the same computing resources, the directed graph comprising a node for each of the plurality of stages, thread boundary creator nodes that correspond to stages that start a new thread and thread follower nodes that correspond to stages that do not start a new thread; persisting unique paths for the plurality of stages of processing and thread boundaries in a database and normalizing the unique paths; determining whether the first stage and the second stage are connected by two or more paths within the at least one of the thread boundaries; in response to determining that the first stage and the second stage are connected by the two or more paths within the one of the thread boundaries; launching the second stage in a single launch using first computing resources for a merged group that is generated by merging groups of work items that are output by the two or more paths, each of the two or more paths using separate computing resources and each work item representing a different user to which electronic communications may be targeted, wherein the merged group comprises a campaign stage that transmits electronic communications; and executing the single launch to transmit the plurality of electronic communications for the merged group. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer-readable medium storing instructions that, when executed by a processor of a computer system, cause a processor to perform a set of acts for tuning and executing a plurality of stages of processing, the set of acts comprising:
-
identifying a plurality of stages of processing that are performed and consume computing resources including memory and processing cycles to transmit a plurality of electronic communications; and reducing consumption of the computing resources to transmit the plurality of electronic communications at least by; identifying a plurality of distinct paths between a first stage and a second stage within the plurality of stages of processing; determining thread boundaries that corresponds to at least the first stage and the second stage based in part or in whole upon a directed graph, at least one of the thread boundaries identifying the first stage and the second stage as being executable by a common thread using the same computing resources, the directed graph comprising a node for each of the plurality of stages, thread boundary creator nodes that correspond to stages that start a new thread and thread follower nodes that correspond to stages that do not start a new thread; persisting unique paths for the plurality of stages of processing and thread boundaries in a database and normalizing the unique paths;
determining whether the first stage and the second stage are connected by two or more paths within the at least one of the thread boundaries;in response to determining that the first stage and the second stage are connected by the two or more paths within the one of the thread boundaries; launching the second stage in a single launch using first computing resources for a merged group that is generated by merging groups of work items that are output by the two or more paths, each of the two or more paths using separate computing resources and each work item representing a different user to which electronic communications may be targeted, wherein the merged group comprises a campaign stage that transmits electronic communications; and executing the single launch to transmit the plurality of electronic communications for the merged group. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer system, comprising:
-
a non-transitory computer accessible storage medium storing thereupon a plurality of instructions; and one or more processors configured to execute at least some of the plurality of instructions to; identify a plurality of stages of processing that are performed and consume computing resources including memory and processing cycles to transmit a plurality of electronic communications; and reduce consumption of the computing resources to transmit the plurality of electronic communications at least by; identifying a plurality of distinct paths between a first stage and a second stage within the plurality of stages of processing; determining thread boundaries that corresponds to at least the first stage and the second stage based in part or in whole upon a directed graph, at least one of the thread boundaries identifying the first stage and the second stage as being executable by a common thread using the same computing resources, the directed graph comprising a node for each of the plurality of stages, thread boundary creator nodes that correspond to stages that start a new thread and thread follower nodes that correspond to stages that do not start a new thread; persisting unique paths for the plurality of stages of processing and thread boundaries in a database and normalizing the unique paths; determining whether the first stage and the second stage are connected by two or more paths within the at least one of the thread boundaries; in response to determining that the first stage and the second stage are connected by the two or more paths within the one of the thread boundaries; launching the second stage in a single launch using first computing resources for a merged group that is generated by merging groups of work items that are output by the two or more paths, each of the two or more paths using separate computing resources and each work item representing a different user to which electronic communications may be targeted, wherein the merged group comprises a campaign stage that transmits electronic communications; and executing the single launch to transmit the plurality of electronic communications for the merged group. - View Dependent Claims (17, 18, 19, 20)
-
Specification