华东师范大学学报(自然科学版)

• 计算机科学 • 上一篇    下一篇

DBugHelper:应用于大规模分布式系统开发的Debug协助工具

张燕飞, 张春熙, 李宇明, 张 蓉   

  1. 华东师范大学 数据科学与工程研究院 上海高可信计算重点实验室, 上海 200062
  • 收稿日期:2016-06-24 出版日期:2016-09-25 发布日期:2016-11-29
  • 通讯作者: 张 蓉, 女, 博士, 副教授, 研究方向为分布式数据管理. E-mail: rzhang@sei.ecnu.edu.cn
  • 基金资助:

    国家 863 计划项目(2015AA015307); 国家自然科学基金重点项目(61232002, 61332006); 国家自然科学基金 (61432006)

DBugHelper: A Debug assistant tool for distributed systems

ZHANG Yan-fei, ZHANG Chun-xi, LI Yu-ming, ZHANG Rong   

  1. Institute for Data Science and Engineering, Shanghai Key Laboratory of Trustworthy Computing, East China Normal University, Shanghai 200062, China
  • Received:2016-06-24 Online:2016-09-25 Published:2016-11-29

摘要:

对于大规模分布式系统的开发而言, 其开发周期比较漫长, 包括前期的开发、过程中的 Debug、后期的维护和测试等. 在整个开发周期中, Debug 是一个非常关键和重要的环节, 如何才能在短时间内找到最可靠的方法来解除 bug 成为一个重要的挑战. 对于系统开发人员来说, bug 报告能非常有效地帮助其了解 bug 的所有特征信息, 并找到能修复 bug 的方法. 通过研究发现, 许多大规模分布式系统之间具有较强的相关性和相似性, 因而其 bug 的产生情况和修复方法也具有类似特征. 开发人员可以利用已存在的修复 bug 的方案来协助修复与其一致或相近的 bug. 本文提出一个适用于大规模分布式系统的 Debug 协助工具------DBugHelper, 能为某些大规模分布式系统的开发人员的 bug 修复提供比较有效、正确的帮助. DBugHelper 将最新的 bug 报告进行文本处理, 形成查询向量, 并将大量已被修复的 bug 及其相关信息进行离线处理和缓存, 从而为在线查询提供索引机制. 通过将大量已修复的 bug 报告进行离线处理并同时减少在线处理的数据量, 从而使其准确并快速地为系统开发人员提供必要的 Debug 协助工作, 以此减少系统开发的周期与成本.

关键词: 大规模分布式系统, Debug; bug报告, 协助

Abstract:

Development of large-scale distributed systems has experienced a long developing period. During the whole development cycle, debug is one of the most important steps. We meet the challenges of finding all the bugs and the corresponding solutions fixing bugs in a short time. Bug reports record bug histories and solutions, which provide a way to understand bug features and help to find solutions for new bugs. After we analyze the bug reports and fixed solutions, we find that there are strong correlation and similarity among many large-scale distributed systems. Thus the developing and fixing scheme of bugs may have similar characteristics. Then existed fixing solutions of bugs can be used to assist fixing new bugs. In this paper, we propose DBugHelper, a debug helping tool which
can be applied to boost the development of large-scale distributed systems and provide a more effective way to fix bugs. In DBugHelper, the existed bug reports are processed offline, and the latest bug report is represented as a query vector. We query the bug report history database and find the similar bugs with their solutions. In such way, we suppose to shorten the whole system development period.

Key words: large-scale distributed system, Debug, bug report, assistance