一句话:提出 DCatch,通过分析正确执行中的 happens-before 关系来预测分布式并发缺陷。
大数据与云计算时代,分布式系统可靠性至关重要,但分布式并发缺陷(DCbug)广泛存在且难以触发。论文提出 DCatch,通过分析分布式系统的正确执行来预测 DCbug:设计一组 happens-before 规则,覆盖真实分布式云系统中多种通信与并发机制;构建运行时追踪与迹分析工具,识别并发冲突的内存访问;并设计误报剪枝与缺陷触发工具。作者在 Cassandra、Hadoop MapReduce、HBase 和 ZooKeeper 四个代表性开源系统上评估,监控七种工作负载的正确执行,共报告 32 个 DCbug,其中 20 个确实有害。
In big data and cloud computing era, reliability of distributed systems is extremely important. Unfortunately, distributed concurrency bugs, referred to as DCbugs, widely exist. They hide in the large state space of distributed cloud systems and manifest non-deterministically depending on the timing of distributed computation and communication. Effective techniques to detect DCbugs are desired. This paper presents a pilot solution, DCatch, in the world of DCbug detection. DCatch predicts DCbugs by analyzing correct execution of distributed systems. To build DCatch, we design a set of happens-before rules that model a wide variety of communication and concurrency mechanisms in real-world distributed cloud systems. We then build runtime tracing and trace analysis tools to effectively identify concurrent conflicting memory accesses in these systems. Finally, we design tools to help prune false positives and trigger DCbugs. We have evaluated DCatch on four representative open-source distributed cloud systems, Cassandra, Hadoop MapReduce, HBase, and ZooKeeper. By monitoring correct execution of seven workloads on these systems, DCatch reports 32 DCbugs, with 20 of them being truly harmful.