Coordination services and protocols are critical components of distributed systems and are essential for providing consistency, fault tolerance, and scalability. However, due to the lack of standard benchmarking and evaluation tools for distributed coordination services, coordination service developers/researchers either use a NoSQL standard benchmark and omit evaluating consistency, distribution, and fault tolerance; or create their own ad-hoc microbenchmarks and skip comparability with other services. In this study, we analyze and compare the evaluation mechanisms for known and widely used consensus algorithms, distributed coordination services, and distributed applications built on top of these services. We identify the most important requirements of distributed coordination service benchmarking, such as the metrics and parameters for the evaluation of the performance, scalability, availability, and consistency of these systems. Finally, we discuss why the existing benchmarks fail to address the complex requirements of distributed coordination system evaluation.
academicHow to Evaluate Distributed Coordination Systems? -- A Survey and Analysis
- 论文ID: 2403.09445
- 标题: How to Evaluate Distributed Coordination Systems? -- A Survey and Analysis
- 作者: Bekir Turkkan (IBM Research), Elvis Rodrigues (University at Buffalo), Tevfik Kosar (University at Buffalo), Aleksey Charapko (University of New Hampshire), Ailidani Ailijiang (Microsoft), Murat Demirbas (MongoDB)
- 分类: cs.DC (Distributed Computing)
- 发表时间: arXiv预印本,最后更新于2025年10月27日
- 论文链接: https://arxiv.org/abs/2403.09445
分布式协调服务和协议是分布式系统的关键组件,对于提供一致性、容错性和可扩展性至关重要。然而,由于缺乏标准的基准测试和评估工具,分布式协调服务的开发者和研究人员要么使用NoSQL标准基准测试但忽略一致性、分布性和容错性评估;要么创建自己的临时微基准测试但无法与其他服务进行比较。本研究分析和比较了已知且广泛使用的共识算法、分布式协调服务以及基于这些服务构建的分布式应用的评估机制。作者识别了分布式协调服务基准测试的最重要需求,如性能、可扩展性、可用性和一致性评估的指标和参数。最后,讨论了为什么现有基准测试无法满足分布式协调系统评估的复杂需求。
分布式协调系统(包括共识算法、协调服务和分布式应用)缺乏标准化的评估基准,导致:
- 评估不完整:开发者要么使用NoSQL基准(如YCSB)但忽略一致性、分布性和容错性
- 可比性差:各系统使用自定义微基准测试,采用不同的指标和技术,无法公平比较
- 评估碎片化:没有统一的框架来全面评估性能、可扩展性、可用性和一致性
- 实际需求:云计算和大数据应用(搜索引擎、社交网络、视频流、IoT)都依赖分布式协调
- 技术演进:从Paxos到Raft,再到WPaxos、SwiftPaxos等针对WAN优化的变体不断涌现
- 应用广泛:Google Spanner、Apache Kafka、Twitter Manhattan等关键系统都依赖协调服务
- 评估复杂:分布式协调系统需要同时考虑性能、一致性、容错性和地理分布等多维度特性
现有基准测试工具的不足:
- YCSB:单客户端进程,不支持数据访问重叠、访问局部性等关键参数
- TPC-C:主要针对事务处理,不适合协调服务的特定需求
- Jepsen:需要深入了解工具内部,非黑盒测试,不易采用
- 缺乏WAN支持:大多数工具不支持地理分布式场景的评估
本文通过系统性调研30+个分布式协调系统的评估实践,旨在:
- 识别当前评估实践的共性和差异
- 提炼出分布式协调系统评估的核心需求
- 分析现有基准测试工具的缺陷
- 为未来开发标准化基准测试工具提供指导
- 系统性调研:分析了30多个分布式协调系统(包括13个共识算法、10个协调服务、7个分布式应用)的评估实践
- 拓扑分类:识别并定义了6种实验拓扑结构(扁平、星形、多星形、层次化、网格、中心日志),为理解系统架构提供框架
- 指标和参数体系:
- 系统梳理了4大评估指标:性能、可扩展性、可用性、一致性
- 识别了关键工作负载参数:读写比例、数据访问重叠、访问局部性、对象数量和大小等
- 基准测试需求:提出了分布式协调系统基准测试的7大核心需求:
- 灵活性和复杂性
- WAN系统支持
- 基准测试可扩展性
- 易于采用
- 黑盒测试能力
- 一致性验证能力
- 故障注入能力
- 差距分析:系统分析了10+个现有基准测试工具(YCSB、TPC-C、Jepsen、Elle等)的能力和不足
- 实践指导:为研究人员和工程师提供了评估分布式协调系统的最佳实践和注意事项
本文不是提出新的技术方法,而是进行系统性调研和分析,任务包括:
- 输入:30+个分布式协调系统的论文和评估材料
- 处理:提取评估拓扑、指标、参数、工具等信息
- 输出:系统性的评估实践总结、需求分析和工具能力对比
作者根据相关性、时效性和影响力选择了三类系统:
类别I:共识算法(13个)
- Paxos变体:Mencius, FPaxos, Multi-Paxos, Hybrid-Paxos, E-Paxos, M2 Paxos, WPaxos, SwiftPaxos, Omni-Paxos
- 其他协议:Raft, Bizur, ZAB, Hydra
类别II:协调服务(10个)
- ZooKeeper, Tango, Calvin, WanKeeper, ZooNet, Boki, FlexLog, SplitFT, Fabric, Narwhal
类别III:分布式应用(7个)
- Spanner, DistributedLog, PNUTS, COPS, CockroachDB, OceanBase, ScalarDB
作者根据quorum创建方式和请求处理方式定义了6种拓扑:
| 拓扑类型 | 特征 | 代表系统 |
|---|
| 扁平拓扑 | 多领导者或无领导者,允许并发更新 | Mencius, E-Paxos |
| 星形拓扑 | 单领导者协议 | ZooKeeper, Raft, Hybrid-Paxos |
| 多星形拓扑 | 多个quorum,每个星形,领导者间扁平通信 | ZooNet, M2 Paxos, Spanner |
| 层次化拓扑 | 多星形但领导者间有层次 | WanKeeper |
| 网格拓扑 | 使用网格quorum优化性能 | FPaxos, WPaxos |
| 中心日志拓扑 | 共享持久化日志记录执行顺序 | Tango, Boki, Calvin |
从每个系统的论文中提取:
- 实验设置:区域数、服务器数、客户端数、测试平台、基准测试工具
- 评估指标:吞吐量、延迟、可扩展性、可用性、一致性
- 工作负载参数:读写比例、对象数量/大小、数据访问重叠、访问局部性
作者分析了30个系统的实验设置,主要发现:
地理分布:
- 单区域部署:大多数系统(如Raft, Multi-Paxos, ZooKeeper)
- 多区域部署:WAN优化系统(如WPaxos 5区域15服务器,SwiftPaxos 13区域)
- 真实云环境:Amazon EC2, Google Compute Engine, Alibaba ECS
- 受控环境:Emulab, DETER(网络延迟可控)
集群规模:
- 小规模:3-13个服务器(大多数共识算法)
- 中等规模:15-100个服务器(协调服务)
- 大规模:OceanBase达到1557个服务器,360,000客户端/服务器
客户端配置:
- 单客户端:Bizur, Omni-Paxos
- 多线程客户端:Multi-Paxos(1-20线程)
- 分布式客户端:E-Paxos(50客户端),PNUTS(300客户端)
根据Table 2的统计:
| 指标类别 | 评估系统数 | 覆盖率 |
|---|
| 性能-吞吐量 | 28/30 | 93% |
| 性能-延迟 | 27/30 | 90% |
| 可扩展性-服务器 | 14/30 | 47% |
| 可扩展性-客户端 | 8/30 | 27% |
| 可用性-故障 | 14/30 | 47% |
| 可用性-分区 | 5/30 | 17% |
| 一致性 | 8/30 | 27% |
关键发现:
- 性能评估几乎是普遍的,但一致性评估严重不足
- 网络分区测试远少于节点故障测试
- 可扩展性评估通常只关注服务器数量,忽略区域扩展
根据Table 3的分析:
- 100%写操作:Multi-Paxos, E-Paxos, Hybrid-Paxos(关注冲突命令)
- 0-100%变化:ZooKeeper, WanKeeper(展示不同场景)
- 固定比例:COPS(50%写),PNUTS(10%写)
- 未指定:Raft, FPaxos等多个系统
问题:不同读写比例下性能差异巨大,但很多系统只测试单一配置
- 100%重叠:Mencius, E-Paxos, Hybrid-Paxos(最坏情况)
- 0-100%变化:WanKeeper, Boki, FlexLog
- 未评估:大多数单领导者系统(因为对性能影响小)
关键洞察:多领导者系统性能严重依赖访问重叠,但评估常被忽略
- 评估系统:M2 Paxos(0-100%),WPaxos(70-90%),COPS(0-100%)
- 未评估:大多数系统
- 重要性:对使用所有权机制的系统影响巨大
- 指定系统:Mencius(16-1024),M2 Paxos(1-1000),Omni-Paxos(500-50K)
- 大多数未指定:限制了冲突率的理解
- 小对象:6B-1KB(CPU密集型工作负载)
- 大对象:1KB-8KB(网络密集型工作负载)
- 变化范围:Mencius(6B-4KB),SplitFT(128B-8KB)
工作负载可扩展性:
- Hybrid-Paxos, E-Paxos:增加并发客户端数量
- WPaxos:调整客户端限流程度
- 大多数系统:测试直到饱和点
系统可扩展性:
- 水平扩展:ZooKeeper(3-13副本),Calvin(4-100副本)
- 区域扩展:E-Paxos和Mencius(3-7区域)
- 垂直扩展:M2 Paxos(变化CPU性能)
问题:缺乏统一的扩展性测试方法,难以比较不同系统
当前实践:
- 测试工具:Bizur使用Serialla,Multi-Paxos使用校验和检查
- Jepsen测试:ZooKeeper, CockroachDB(线性化验证)
- Elle测试:ScalarDB(严格可串行化验证)
- 陈旧性测量:ZooNet, PNUTS, BG(但不能证明强一致性)
核心问题:
- 大多数系统声称"强一致性"但定义模糊
- 缺乏系统化的一致性验证方法
- 陈旧性测量不足以验证线性化或可串行化
根据Table 4:
故障类型:
- 节点崩溃:最常见(14/30系统)
- 网络分区:较少(5/30系统)
- 其他故障:时钟漂移、内存损坏等几乎未测试
故障数量:
- 单节点故障:大多数系统
- 多节点故障:ZooKeeper(2个follower),Omni-Paxos(1-2节点)
测试方法:
- 测量故障期间的吞吐量降级
- Spanner:崩溃整个区域但Paxos组仍可用
- Hybrid-Paxos:增加副本数测试可用性提升
NoSQL数据库基准:
- YCSB (2010):最流行的NoSQL基准,但不支持分布式客户端和WAN场景
- YCSB+T (2014):添加事务支持,但仍是单进程
- YCSB++ (2011):支持分布式客户端,但依赖ZooKeeper同步,不适合WAN
应用特定基准:
- BG (2013):社交网络工作负载,但使用锁避免冲突
- TPC-C (1992):事务处理标准,但不针对协调服务
- HiBench (2010):Hadoop基准,不适合协调系统
大数据基准:
- BigDataBench (2014):覆盖多种大数据工作负载
- 但都不适合评估协调服务的特定需求(一致性、容错、地理分布)
Jepsen (2013-至今):
- 强大的一致性测试框架
- 能检测线性化违反
- 但需要深入了解工具,非黑盒测试
Elle (2020):
- 基于Jepsen,更高效的隔离级别检测
- 构建事务依赖图识别违反循环
- 仍需要定制化工作负载
其他测试工具:
- Serialla:Bizur使用的严格可串行化测试
- UPB (2013):可用性基准,但基于YCSB
云服务评估:
文件系统和数据仓库:
- 分布式文件系统基准测试
- 数据仓库查询性能评估
- 与协调系统需求不同
协调服务综述:
- 算法比较(Paxos变体)
- 服务特性分析
- 本文独特之处:首次系统性分析评估实践和基准测试需求
- 评估实践碎片化:30个系统中,只有7个使用标准基准(YCSB, TPC-C, Jepsen),大多数使用自定义微基准
- 指标覆盖不均:
- 性能评估普遍(93%系统)
- 一致性评估不足(27%系统)
- 网络分区测试稀少(17%系统)
- 参数使用不一致:
- 关键参数(访问局部性、数据访问重叠)常被忽略
- 缺乏标准化的参数配置
- 难以公平比较不同系统
- 现有基准不足:
- YCSB:不支持分布式客户端、WAN场景、访问局部性
- TPC-C:不针对协调服务
- Jepsen:非黑盒,难以采用
- 没有任何工具满足所有需求
- 7大基准测试需求:
- 灵活性和复杂性(支持多维度参数调优)
- WAN系统支持(地理分布、不均匀延迟)
- 可扩展性(分布式负载生成)
- 易于采用(黑盒测试、语言无关)
- 性能基准(吞吐量、延迟、尾延迟)
- 一致性验证(线性化、可串行化)
- 故障注入(崩溃、分区、时钟漂移)
- 样本覆盖:虽然涵盖30个系统,但可能遗漏一些新兴系统或特定领域的协调服务
- 时效性:分布式系统快速演进,新的评估实践和工具不断出现
- 深度分析:对每个系统的评估实践分析基于公开论文,可能无法获得所有实现细节
- 基准工具实现:本文识别需求但未实现完整的基准测试工具
- 一致性模型:不同系统声称的"强一致性"定义不同,难以统一评估标准
- 开发标准化基准工具:
- 支持分布式客户端和WAN场景
- 提供灵活的参数配置
- 集成一致性验证能力
- 支持多种故障注入
- 建立评估标准:
- 定义最小必需评估指标集
- 标准化工作负载参数配置
- 制定一致性验证协议
- 扩展调研范围:
- 包括更多新兴协调协议(如基于DAG的共识)
- 分析区块链共识算法的评估实践
- 研究边缘计算场景的协调需求
- 实证研究:
- 使用标准基准重新评估现有系统
- 量化不同参数对性能的影响
- 验证声称的一致性保证
- 自动化测试:
- 开发自动化一致性验证工具
- 集成持续集成/持续部署(CI/CD)
- 支持回归测试
- 广度:覆盖30个系统,跨越20年研究历史(Paxos 1998 - 最新系统2024)
- 深度:详细分析实验设置、拓扑、指标、参数
- 分类清晰:三层分类(算法-服务-应用)+ 六种拓扑类型
- 指导意义:为开发者提供评估最佳实践
- 需求明确:7大基准测试需求具有可操作性
- 问题导向:明确指出现有工具的具体不足
- 3个综合表格:Table 1(实验设置)、Table 2(指标使用)、Table 3(工作负载参数)
- 量化分析:指标覆盖率、参数使用频率
- 可视化:6种拓扑的清晰图示
- 不偏袒特定系统或基准工具
- 公正分析各工具的优缺点
- 基于事实的评估而非主观判断
- 引用85篇参考文献
- 方法论清晰(选择标准、分析框架)
- 结论有充分数据支撑
- 未提供不同评估方法的性能差异数据
- 没有量化参数选择对结果的影响程度
- 缺少统计分析(如相关性、显著性检验)
- 未实际开发满足需求的基准工具
- 没有通过实验验证提出的需求是否可行
- 缺少原型系统的评估
- 对不同一致性模型的区别讨论不够深入
- 未提供具体的一致性验证方法论
- 缺少一致性测试的复杂度分析
- 虽然强调WAN重要性,但具体分析不够
- 未详细讨论不同地理分布模式的影响
- 缺少跨云、跨大陆部署的特殊挑战
- 区块链共识算法评估实践未涉及
- 边缘计算场景的协调需求未讨论
- 机器学习系统中的协调评估未涉及
- 未提供详细的实验复现指南
- 缺少开源数据集或评估脚本
- 没有讨论如何确保评估的可复现性
- 填补空白:首次系统性调研分布式协调系统评估实践
- 理论价值:建立评估框架和需求体系
- 引用潜力:可能成为该领域评估方法的参考文献
- 工程指导:帮助开发者选择合适的评估方法
- 基准开发:为新基准工具提供需求规格
- 标准化推动:可能促进评估标准的建立
- 实现缺失:没有提供可直接使用的工具
- 验证不足:需求的可行性未经实证验证
- 更新需求:快速演进的领域需要持续更新
- 直接适用:分布式协调系统的研究人员和工程师
- 间接适用:分布式数据库、区块链、云计算系统开发者
- 教育价值:可作为分布式系统课程的参考材料
- 新协议开发:设计评估方案时参考需求清单
- 系统比较:选择合适的指标和参数进行公平比较
- 论文撰写:引用标准评估实践,增强可信度
- 系统选型:理解不同系统的评估结果和局限
- 性能调优:识别影响性能的关键参数
- 故障测试:设计全面的可用性测试方案
- 课程教学:介绍分布式系统评估方法论
- 项目实践:指导学生设计实验和评估方案
- 文献综述:理解该领域的研究现状
- 基准开发:作为需求规格文档
- 行业标准:推动评估标准的制定
- 认证测试:设计协调服务的合规性测试
- Lamport, L. (1998). The part-time parliament. ACM TOCS - Paxos原始论文
- Ongaro, D. & Ousterhout, J. (2014). In search of an understandable consensus algorithm. USENIX ATC - Raft算法
- Hunt, P. et al. (2010). ZooKeeper: Wait-free coordination for internet-scale systems. USENIX ATC
- Balakrishnan, M. et al. (2013). Tango: Distributed data structures over a shared log. SOSP
- Cooper, B.F. et al. (2010). Benchmarking cloud serving systems with YCSB. SoCC
- Kingsbury, K. (2024). Jepsen tests - 一致性测试框架
- Kingsbury, K. & Alvaro, P. (2020). Elle: Inferring Isolation Anomalies from Experimental Observations
- Ailijiang, A. et al. (2017). Multileader WAN Paxos: Ruling the archipelago with fast consensus - WPaxos
- Mao, Y. et al. (2008). Mencius: Building efficient replicated state machines for WANs. OSDI
- Corbett, J.C. et al. (2013). Spanner: Google's globally distributed database. ACM TOCS
总结:本文是分布式协调系统评估领域的重要综述工作,系统性地揭示了当前评估实践的碎片化问题,并提出了标准化基准测试的需求。虽然缺少实际工具实现,但为未来研究和工程实践提供了清晰的方向。对于分布式系统研究人员和工程师,这是理解该领域评估方法论的必读文献。