Affiliation:
1. School of Electrical Engineering and Computer Science, Washington State University
2. Faculty of Information Technology, Monash University
Abstract
Distributed software systems are increasingly developed and deployed today. Many of these systems are supposed to run continuously. Given their critical roles in our society and daily lives, assuring the quality of distributed systems is crucial. Analyzing runtime program dependencies has long been a fundamental technique underlying numerous tool support for software quality assurance. Yet conventional approaches to dynamic dependence analysis face severe scalability barriers when they are applied to real-world distributed systems, due to the unbounded executions to be analyzed in addition to common efficiency challenges suffered by dynamic analysis in general.
In this article, we present S
EADS
, a
distributed
,
online
, and
cost-effective
dynamic dependence analysis framework that aims at scaling the analysis to real-world distributed systems. The analysis itself is distributed to exploit the distributed computing resources (e.g., a cluster) of the system under analysis; it works online to overcome the problem with unbounded execution traces while running continuously with the system being analyzed to provide timely querying of analysis results (i.e., runtime dependence set of any given query). Most importantly, given a user-specified time budget, the analysis automatically adjusts itself to better cost-effectiveness tradeoffs (than otherwise) while respecting the budget by changing various analysis parameters according to the time being spent by the dependence analysis. At the core of the automatic adjustment is our application of a reinforcement learning method for the decision making—deciding which configuration to adjust to according to the current configuration and its associated analysis cost with respect to the user budget. We have implemented S
EADS
for Java and applied it to eight real-world distributed systems with continuous executions. Our empirical results revealed the efficiency and scalability advantages of our framework over a conventional dynamic analysis, at least for dynamic dependence computation at method level. While we demonstrate it in the context of dynamic dependence analysis in this article, the
methodology
for achieving and maintaining scalability and greater cost-effectiveness against continuously running systems is more broadly applicable to other dynamic analyses.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Reference86 articles.
1. Apache. 2015. ZooKeeper. Retrieved from https://zookeeper.apache.org/. Apache. 2015. ZooKeeper. Retrieved from https://zookeeper.apache.org/.
2. Apache. 2017. Voldemort. Retrieved from https://github.com/voldemort. Apache. 2017. Voldemort. Retrieved from https://github.com/voldemort.
3. Apache. 2017. The Voldemort Project. Retrieved from https://www.project-voldemort.com/voldemort/. Apache. 2017. The Voldemort Project. Retrieved from https://www.project-voldemort.com/voldemort/.
4. Apache. 2018. Thrift. Retrieved from https://thrift.apache.org/. Apache. 2018. Thrift. Retrieved from https://thrift.apache.org/.
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献