S EADS: Scalable and Cost-effective Dynamic Dependence Analysis of Distributed Systems via Reinforcement Learning

S EADS: Scalable and Cost-effective Dynamic Dependence Analysis of Distributed Systems via Reinforcement Learning
复制标题

S EADS:通过强化学习对分布式系统进行可扩展且经济高效的动态依赖分析

DOI:
10.1145/3379345
复制
发表时间:
2021
影响因子:
4.4
通讯作者:
Li, Li
Li, Li
中科院分区:
计算机科学1区
文献类型:
--
作者:
Fu, Xiaoqin;Cai, Haipeng;Li, Wen;Li, Li

文献摘要

相似文献

如今,分布式软件系统的开发和部署越来越多。这些系统中的许多都应该连续运行。鉴于它们在我们的社会和日常生活中的重要作用,确保分布式系统的质量至关重要。分析运行时程序依赖性一直是软件质量保证的众多工具支持的基础技术。然而,传统的方法,动态依赖分析面临着严重的可扩展性障碍时,他们被应用到现实世界的分布式系统,由于无限的执行进行分析,除了常见的效率挑战所遭受的动态analysis.In这篇文章中,我们提出了SEADS,一个分布式的,在线的,andcost-efficient的分布式依赖分析框架,其目的是在扩展分析现实世界的分布式系统。分析本身是分布式的以利用分布式计算资源(例如,集群);它在线工作以克服无限执行轨迹的问题同时与被分析的系统一起连续运行以提供分析结果的及时查询(即,任何给定查询的运行时依赖集)。最重要的是,给定用户指定的时间预算,分析自动调整自身以更好的成本效益权衡(比其他情况下),同时通过根据依赖性分析所花费的时间改变各种分析参数来遵守预算。自动调整的核心是我们应用强化学习方法进行决策-根据当前配置及其相关的分析成本相对于用户预算来决定调整哪个配置。我们已经实现了SEADSfor Java,并将其应用于八个实际的连续执行分布式系统。我们的实证结果表明,我们的框架的效率和可扩展性的优势,在传统的动态分析,至少在方法级的动态依赖计算。虽然我们在本文中的动态依赖分析的上下文中演示了这一点,但在持续运行的系统中实现和维护可伸缩性和更高成本效益的方法更广泛地适用于其他动态分析。
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 SEADS, adistributed,online, andcost-effectivedynamic 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 SEADSfor 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, themethodologyfor achieving and maintaining scalability and greater cost-effectiveness against continuously running systems is more broadly applicable to other dynamic analyses.