摘要
分布式系统的可靠性和可用性至关重要.然而,不正确的失效恢复机制及其实现会引发失效恢复缺陷,威胁分布式系统的可靠性和可用性.只有发生在特定时机的节点失效才会触发失效恢复缺陷,因此,检测分布式系统中的失效恢复缺陷具有挑战性.提出了一种新方法Deminer来自动检测分布式系统中的失效恢复缺陷.在大规模分布式系统中观察到,同一份数据(即共用数据)可能被一组I/O写操作存储到不同位置(如不同的存储路径或节点).而打断这样一组共用数据写操作执行的节点失效更容易触发失效恢复缺陷.因此,Deminer以共用数据的使用为指导,通过自动识别和注入这类容易引发故障的节点失效来检测失效恢复缺陷.首先,Deminer追踪目标系统的一次正确执行中关键数据的使用.然后,Deminer基于执行轨迹识别使用共用数据的I/O写操作对,并预测容易引发错误的节点失效注入点.最后,Deminer通过测试预测的节点失效注入点以及检查故障征兆来暴露和确认失效恢复缺陷.实现了Deminer原型工具,并在4个流行的开源分布式系统ZooKeeper、HBase、YARN和HDFS的最新版本上进行了验证.实验结果表明Deminer方法能够有效检测分布式系统中的失效恢复缺陷.Deminer已经检测到6个失效恢复缺陷.
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.
作者
高钰
王栋
戴千旺
窦文生
魏峻
GAO Yu;WANG Dong;DAI Qian-Wang;DOU Wen-Sheng;WEI Jun(Institute of Software,Chinese Academy of Sciences,Beijing 100190,China;University of Chinese Academy of Sciences,Beijing 100049,China;Nanjing Institute of Software Technology,Nanjing 210000,China;University of Chinese Academy of Sciences,Nanjing,Nanjing 211135,China)
出处
《软件学报》
EI
CSCD
北大核心
2023年第12期5578-5596,共19页
Journal of Software
基金
国家自然科学基金(62072444,61732019)
中国科学院前沿科学重点研究项目(QYZDJ-SSW-JSC036)
中国科学院青年创新促进会(2018142)。