共用数据导向的分布式系统失效恢复缺陷检测
作者:
作者单位:

作者简介:

高钰(1992-),女,博士,主要研究领域为软件工程,系统测试,系统可靠性.;王栋(1996-),男,博士生,CCF学生会员,主要研究领域为程序分析,软件可靠性.;戴千旺(1998-),男,硕士,主要研究领域为软件可靠性,数据库系统测试.;窦文生(1984-),男,博士,副研究员,CCF专业会员,主要研究领域为程序分析,软件工程.;魏峻(1970-),男,博士,研究员,博士生导师,CCF高级会员,主要研究领域为软件工程,网络分布式计算.

通讯作者:

窦文生,E-mail:wsdou@otcaix.iscas.ac.cn

中图分类号:

TP311

基金项目:

国家自然科学基金(62072444, 61732019); 中国科学院前沿科学重点研究项目(QYZDJ-SSW-JSC036); 中国科学院青年创新促进会(2018142)


Common Data Guided Crash Recovery Bug Detection for Distributed Systems
Author:
Affiliation:

Fund Project:

  • 摘要
  • |
  • 图/表
  • |
  • 访问统计
  • |
  • 参考文献
  • |
  • 相似文献
  • |
  • 引证文献
  • |
  • 资源附件
  • |
  • 文章评论
    摘要:

    分布式系统的可靠性和可用性至关重要. 然而, 不正确的失效恢复机制及其实现会引发失效恢复缺陷, 威胁分布式系统的可靠性和可用性. 只有发生在特定时机的节点失效才会触发失效恢复缺陷, 因此, 检测分布式系统中的失效恢复缺陷具有挑战性. 提出了一种新方法Deminer来自动检测分布式系统中的失效恢复缺陷. 在大规模分布式系统中观察到, 同一份数据(即共用数据)可能被一组I/O写操作存储到不同位置(如不同的存储路径或节点). 而打断这样一组共用数据写操作执行的节点失效更容易触发失效恢复缺陷. 因此, Deminer以共用数据的使用为指导, 通过自动识别和注入这类容易引发故障的节点失效来检测失效恢复缺陷. 首先, Deminer追踪目标系统的一次正确执行中关键数据的使用. 然后, Deminer基于执行轨迹识别使用共用数据的I/O写操作对, 并预测容易引发错误的节点失效注入点. 最后, Deminer通过测试预测的节点失效注入点以及检查故障征兆来暴露和确认失效恢复缺陷. 实现了Deminer原型工具, 并在4个流行的开源分布式系统ZooKeeper、HBase、YARN和HDFS的最新版本上进行了验证. 实验结果表明Deminer方法能够有效检测分布式系统中的失效恢复缺陷. Deminer已经检测到6个失效恢复缺陷.

    Abstract:

    The critical reliability and availability of distributed systems are threatened by crash recovery bugs caused by incorrect crash recovery mechanisms and their implementations. The detection of crash recovery bugs, however, can be extremely challenging since these bugs only manifest themselves when a node crashes under special timing conditions. This study presents a novel approach Deminer to automatically detect crash recovery bugs in distributed systems. Observations in the large-scale distributed systems show that node crashes that interrupt the execution of related I/O write operations, which store a piece of data (i.e., common data) in different places, e.g., different storage paths or nodes, are more likely to trigger crash recovery bugs. Therefore, Deminer detects crash recovery bugs by automatically identifying and injecting such error-prone node crashes under the usage guidance of common data. Deminer first tracks the usage of critical data in a correct run. Then, it identifies I/O write operation pairs that use the common data and predicts error-prone injection points of a node crash on the basis of the execution trace. Finally, Deminer tests the predicted injection points of the node crash and checks failure symptoms to expose and confirm crash recovery bugs. A prototype of Deminer is implemented and evaluated on the latest versions of four widely used distributed systems, i.e., ZooKeeper, HBase, YARN, and HDFS. The experimental results show that Deminer is effective in finding crash recovery bugs. Deminer has detected six crash recovery bugs.

    参考文献
    相似文献
    引证文献
引用本文

高钰,王栋,戴千旺,窦文生,魏峻.共用数据导向的分布式系统失效恢复缺陷检测.软件学报,2023,34(12):5578-5596

复制
分享
文章指标
  • 点击次数:
  • 下载次数:
  • HTML阅读次数:
  • 引用次数:
历史
  • 收稿日期:2022-01-07
  • 最后修改日期:2022-04-21
  • 录用日期:
  • 在线发布日期: 2022-10-26
  • 出版日期:
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号