Workflow scheduling has been extensively studied to improve the system performance. However, existing approaches are usually built on predefined workflow graph structure, neglecting the possibility that a workflow graph itself may be changeable when certain conditions are satisfied. Therefore, in this paper, we propose the concept of graph refactoring that transforms certain types of sequential tasks to run in parallel without changing system's functionality. We first provide a classification for task dependencies in workflows and identify that previously sequential task ordering in loose control dependency can be scheduled to run in parallel as long as supporting services are trustworthy. With this concept, we present a refactoring algorithm to traverse, restructure, and parallelize loose control dependencies in the graph when the reputations of related executing services are above certain threshold. In addition, refactoring effects on common sub-graph structures are analyzed and discussed. In practice, our algorithm can be integrated into existing workflow management systems as a preprocessor to generate a new functionally equivalent working graph with more concurrent branches for further scheduling. Experiments and analysis show that graph refactoring can improve the system performance scalably because of concurrent execution of previously sequential tasks.
|Number of pages||15|
|Journal||Concurrency Computation Practice and Experience|
|Publication status||Published - 10 Sep 2013|
|Event||2nd international workshop on workflow management in service and cloud computing - Hong Kong|
Duration: 11 Dec 2010 → 13 Dec 2010
- workflow refactoring