大规模分布式系统的失效恢复缺陷分析与检测
Yu Gao, Wensheng Dou, Feng Qin, Chushu Gao, Dong Wang, Jun Wei, Ruirui Huang, Li Zhou and Yongming Wu (2018): An Empirical Study on Crash Recovery Bugs in Large-Scale Distributed Systems. ESEC/FSE 2018: 539-550
背景:大规模分布式系统,如分布式存储系统、分布式计算框架、集群管理服务等,已成为支撑网络化应用不可或缺的重要成分。大规模分布式系统管理着成千上万节点,由于断电、硬件或软件错误等不确定性因素,部分节点失效难以避免。分布式系统必须从节点失效中正确恢复,否则可能导致致命故障,影响大量用户,例如阿里云2018年6月的故障影响巨大。
科学难题:大规模分布式系统引入各种复杂的失效恢复机制应对节点失效。然而,不正确节点失效恢复机制及其实现,可能引入错综复杂的缺陷,并且导致集群无服务、数据不一致等严重后果,如何发现这类缺陷模式进而能检测失效恢复缺陷成为一个难题。
重要突破:我们针对4个著名的开源分布式系统(ZooKeeper、Hadoop MapReduce、HBase和Cassandra)中103个典型失效恢复缺陷,从缺陷根因、缺陷触发、缺陷影响、缺陷修复四个方面采取实证研究方法进行了深入研究,总结发现了若干严重的缺陷模式,用于指导设计新的缺陷检测方法。进而,针对失效恢复原子性违背和失效节点遗留数据相关缺陷设计了自动化检测方法,从而有效提高了大规模分布式系统在节点失效情况下的可靠性。该研究成果发表于软件工程国际顶级学术会议ESEC/FSE 2018(CCF A类),并获得2018年ACM SIGSOFT杰出论文奖。