中文

Bodega:通过 Roster Leases 随时随地从任意节点本地提供线性一致读

分布式、并行与集群计算 2025-09-10 v1

摘要

我们提出了 Bodega,这是首个无论是否存在冲突写操作,都能从任意所需节点本地提供线性一致读的共识协议。Bodega 通过一种新颖的 roster leases 算法实现了这一点,该算法保护了 roster——一种新的集群元数据概念。Roster 是领导权的泛化;它将副本的任意子集追踪为用于本地读的响应节点。通过 roster leases 建立对 roster 的一致共识,这是一种全对全的租借机制,泛化了现有的全对一租借方法(Leader Leases、Quorum Leases),解锁了协议设计空间中的新位置。Bodega 进一步采用乐观持有和提前接受通知,以最大程度地减少冲突写操作带来的中断,并结合智能 roster 覆盖与轻量级心跳以最大化实用性。Bodega 是对经典共识的非侵入式扩展;除了要求响应者覆盖法定人数外,它对写操作没有特殊要求。我们在 Vineyard(一个用异步 Rust 编写的协议通用复制键值存储)中实现了 Bodega 及相关工作。我们将其与先前的协议(Leader Leases、EPaxos、PQR 和 Quorum Leases)以及两个生产级协调服务(etcd 和 ZooKeeper)进行了比较。在真实的 WAN 集群上,与在中等写冲突下的先前方法相比,Bodega 将客户端平均读请求速度提升了 5.6 倍至 13.1 倍,提供了可比的写性能,支持快速主动的 roster 变更以及通过租借实现的容错,并且在所有 YCSB 工作负载上紧密匹配顺序一致的 etcd 和 ZooKeeper 部署的性能。我们将在发表时开源 Vineyard。

关键词

引用

@article{arxiv.2509.07158,
  title  = {Bodega: Serving Linearizable Reads Locally from Anywhere at Anytime via Roster Leases},
  author = {Guanzhou Hu and Andrea Arpaci-Dusseau and Remzi Arpaci-Dusseau},
  journal= {arXiv preprint arXiv:2509.07158},
  year   = {2025}
}

备注

12 pages, 16 figures, 1 table, contains appendix