国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:高钰,王栋,戴千旺,窦文生,魏峻
单位:高钰,中国科学院 软件研究所, 北京 100190;中国科学院大学, 北京 10004911,王栋,中国科学院 软件研究所, 北京 100190;中国科学院大学, 北京 10004902,戴千旺,中国科学院 软件研究所, 北京 100190;中国科学院大学, 北京 10004903,窦文生,中国科学院 软件研究所, 北京 100190;中国科学院大学, 北京 100049;中科南京软件技术研究院, 江苏 南京 210000;中国科学院大学南京学院, 江苏 南京 21113504,魏峻,中国科学院 软件研究所, 北京 100190;中国科学院大学, 北京 100049;中科南京软件技术研究院, 江苏 南京 210000;中国科学院大学南京学院, 江苏 南京 21113505
关键词:失效恢复缺陷;缺陷检测;故障注入;失效恢复;分布式系统
基金:国家自然科学基金(62072444, 61732019); 中国科学院前沿科学重点研究项目(QYZDJ-SSW-JSC036); 中国科学院青年创新促进会(2018142)
分布式系统的可靠性和可用性至关重要. 然而, 不正确的失效恢复机制及其实现会引发失效恢复缺陷, 威胁分布式系统的可靠性和可用性. 只有发生在特定时机的节点失效才会触发失效恢复缺陷, 因此, 检测分布式系统中的失效恢复缺陷具有挑战性. 提出了一种新方法Deminer来自动检测分布式系统中的失效恢复缺陷. 在大规模分布式系统中观察到, 同一份数据(即共用数据)可能被一组I/O写操作存储到不同位置(如不同的存储路径或节点). 而打断这样一组共用数据写操作执行的节点失效更容易触发失效恢复缺陷. 因此, Deminer以共用数据的使用为指导, 通过自动识别和注入这类容易引发故障的节点失效来检测失效恢复缺陷. 首先, Deminer追踪目标系统的一次正确执行中关键数据的使用. 然后, Deminer基于执行轨迹识别使用共用数据的I/O写操作对, 并预测容易引发错误的节点失效注入点. 最后, Deminer通过测试预测的节点失效注入点以及检查故障征兆来暴露和确认失效恢复缺陷. 实现了Deminer原型工具, 并在4个流行的开源分布式系统ZooKeeper、HBase、YARN和HDFS的最新版本上进行了验证. 实验结果表明Deminer方法能够有效检测分布式系统中的失效恢复缺陷. Deminer已经检测到6个失效恢复缺陷.
来源:2023年第12期
《软件学报》期刊编辑部