Hermes:高效、容错且线性化的复制协议

Hermes:高效、容错且线性化的复制协议

HermesHermes: a fault-tolerant replication protocol, implemented over RDMA, guaranteeing linearizability and achieving low latency and high throughput.项目地址:https://gitcode.com/gh_mirrors/hermes7/Hermes

项目介绍

Hermes 是一个公开可用的项目,支持 ASPLOS'20 论文《Hermes: A Fast, Fault-Tolerant and Linearizable Replication Protocol》。该项目不仅包含了用于实验评估 Hermes(KV) 的代码,还提供了完整的 Hermes TLA+ 规范,可以通过模型检查来验证 Hermes 的正确性。Hermes 协议以其高效、容错和线性化的特性,在分布式系统领域引起了广泛关注。

项目技术分析

高性能特性

  • 读取:支持本地读取和负载均衡读取(由任意副本提供服务)。
  • 更新(写入和读取-修改-写入):支持跨键并发、去中心化和快速提交(1 RTT 提交,任意副本)。
  • 写入:非冲突写入(即永不中止)。

一致性和属性

Hermes 提供了线性化的读取、写入和读取-修改-写入操作,具有以下特性:

  1. 写入:从活动副本发起的写入操作在使其他活动副本失效并获得确认后总是提交。
  2. 读取-修改-写入:最多只有一个并发读取-修改-写入操作可以提交,且只有在收集到所有活动副本的确认后才能提交。
  3. 读取:如果目标键处于有效状态且协调器在读取时被认为是活动的,则返回本地值。

容错性

Hermes 通过将失效与每个键的逻辑时间戳(Lamport 时钟)结合,并在失效消息中传播更新值(早期值传播),使得任何因更新(写入或读取-修改-写入)而阻塞的副本可以安全地重放更新并解除阻塞。

项目及技术应用场景

Hermes 协议适用于需要高吞吐量、低延迟和强一致性的分布式系统场景。例如:

  • 分布式数据库:Hermes 可以作为分布式数据库的底层复制协议,确保数据的一致性和高可用性。
  • 云计算平台:在云计算环境中,Hermes 可以用于实现高可靠性的存储服务。
  • 金融交易系统:Hermes 的线性化特性使其非常适合用于需要严格一致性的金融交易系统。

项目特点

  • 高效性:Hermes 通过 1 RTT 提交和去中心化设计,实现了高效的写入和读取操作。
  • 容错性:Hermes 通过早期值传播和逻辑时间戳,确保了在副本故障情况下的数据一致性。
  • 线性化:Hermes 提供了线性化的读取、写入和读取-修改-写入操作,确保了强一致性。
  • 易于集成:Hermes 基于 HERD/MICA 设计,代码经过适配,易于集成到现有系统中。

总结

Hermes 是一个具有高性能、容错性和线性化特性的复制协议,适用于各种需要高可靠性和一致性的分布式系统场景。无论是在分布式数据库、云计算平台还是金融交易系统中,Hermes 都能提供卓越的性能和可靠性。如果你正在寻找一个高效且可靠的分布式复制协议,Hermes 绝对值得一试。


项目地址: Hermes GitHub
论文链接: Hermes 论文
联系作者: Antonios Katsarakis

HermesHermes: a fault-tolerant replication protocol, implemented over RDMA, guaranteeing linearizability and achieving low latency and high throughput.项目地址:https://gitcode.com/gh_mirrors/hermes7/Hermes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姚婕妹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值