当前位置: X-MOL 学术ACM Trans. Softw. Eng. Methodol. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
S EADS
ACM Transactions on Software Engineering and Methodology ( IF 4.4 ) Pub Date : 2020-07-07 , DOI: 10.1145/3379345
Xiaoqin Fu 1 , Haipeng Cai 1 , Li Li 2
Affiliation  

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.

中文翻译:

SEADS

今天,分布式软件系统得到越来越多的开发和部署。许多这些系统应该连续运行。鉴于它们在我们的社会和日常生活中的关键作用,确保分布式系统的质量至关重要。分析运行时程序依赖关系长期以来一直是软件质量保证众多工具支持的基础技术。然而,传统的动态依赖分析方法在应用于现实世界的分布式系统时面临着严重的可扩展性障碍,因为除了动态分析通常遇到的常见效率挑战之外,还要分析无限的执行。在本文中,我们介绍 SEADS, 一种分散式,在线的, 和具有成本效益动态依赖分析框架,旨在将分析扩展到现实世界的分布式系统。分析本身是分布式的,以利用被分析系统的分布式计算资源(例如,集群);它在线工作以克服无限执行跟踪的问题,同时与被分析的系统连续运行以提供对分析结果的及时查询(即,任何给定查询的运行时依赖集)。最重要的是,给定用户指定的时间预算,分析会自动调整自身以更好地权衡成本效益(比其他方式),同时通过根据依赖分析所花费的时间更改各种分析参数来尊重预算。自动调整的核心是我们在决策中应用强化学习方法——根据当前配置及其与用户预算相关的分析成本来决定调整哪个配置。我们已经实施了 SEADS用于 Java 并将其应用于八个具有连续执行的真实分布式系统。我们的实证结果揭示了我们的框架相对于传统动态分析的效率和可扩展性优势,至少对于方法级别的动态依赖计算而言。虽然我们在本文中在动态依赖分析的背景下进行了演示,但方法针对连续运行的系统实现和保持可扩展性和更高的成本效益更广泛地适用于其他动态分析。
更新日期:2020-07-07
down
wechat
bug