写点什么

Tokutek 宣布了用于 MongoDB 的新一致性算法

  • 2014-08-12
  • 本文字数:1053 字

    阅读完需:约 3 分钟

Tokutek 已经宣布,将致力于一种新的一致性算法,目标是替代 MongoDB 现有的群首选举算法。该算法名为 Ark,Tokutek 正在其 MongoDB 分支 TokuMX 中开发,并使用它解决 MongoDB 现有算法中的若干问题。

该算法的设计在很大程度上受到了 Raft Paxos 算法的影响,其目标是提供同样可验证的强一致性保证。与 Raft 不同,它实现了拉式异步复制模型,这使它能够支持 MongoDB 的架构和编程模型。开发人员声称,这

……支持更广泛的客户端语义,允许应用程序开发人员在安全性和延迟之间选择一个平衡点。此外,Ark 支持不同的复制拓扑,如链式复制和多数据中心复制,与 Raft 同步推式模型的做法相比,这有更大的灵活性。

Tokutek 解释了需要新算法的理由,它指出了 MongoDB 现有的群首选举算法的两个问题。首要问题是一个正确性问题。在宣布Ark 的博文中, Zardosht Kasheff 指出,成功实现 majority write concern 的更新也可能回滚。

我们的主要目标是修改选举协议,使 TokuMX 成为一个真正的 CP 系统。就是说,在面对网络分区时,TokuMX 将保持一致性。这样做意味着,在面对一个网络分区时,可以确保任何成功实现 acknowledged 级别 majority write concern 的写操作永远不会丢失。对于 TokuMX 和 MongoDB 而言,现在并不是这种情况

Tokutek 关注的第二个问题是一个可用性问题。在相应的技术报告中,Zardosht 与合著者 Leif Walsh 解释说,MongoDB 副本集可能会有 30 秒钟不可用,在故障转移期间或者会更长。

在任何一个 30 秒里,MongoDB 的选举协议允许一个成员在多次选举中不投“是”。……在实践中,这样一个 30 秒的阀值可能会有问题,尤其是如果选举失败:这必然会导致副本集至少 30 秒钟不可用,如果后续选举失败则可能会更长。

Ark 通过开发利用 TokutekDB 的全局事务标识符(GTID)解决了这些缺陷。GTID 包含一对 64 位整数(term,opid),其中,每次在主副本上的操作提交时,opid 就会加 1,而每次选定一个新的主副本时,term 就会加 1,而且这时还会将 opid 置为 0。GTID 中的 term 与 Raft 协议中 term 概念服务于相同的目的,这种相似性允许 Ark 采用许多与 Raft 相同的解决方案来提供强一致性保证。

由于 Ark 是一种在真实数据库系统中工作的一致性协议实现,它也证实了 Raft 一致性算法的灵活性。以安全的方式调整 Raft 使它适合 MongoDB 的架构和编程模型相对简单些,而且我们认为这是 Raft 的一个重要特征。

GitHub 上提供了一个 Ark 的开发分支,Tokutek 正积极地征求关于设计和实现的反馈。

查看英文原文:**** Tokutek Announces New Consensus Algorithm for MongoDB

2014-08-12 19:085234
用户头像

发布了 256 篇内容, 共 99.9 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

分布式锁

邱学喆

分布式锁 redis分布式锁 zookeeper分布式锁

5分钟速读之Rust权威指南(七)

wzx

rust

显示器的未知之海:从电脑窗口到数字世界的Mate级探险

脑极体

智慧公安微警务APP搭建,公安信息化建设

数据仓库如何确定主题域?

数据社

数据仓库 5月日更

Mac电脑:安装cnpm(补充步骤)

三掌柜

5月日更

后台开发:核心技术与应用实践 — C++

奔着腾讯去

c++ 面向对象 服务器开发 C++后台开发

工业互联网平台赋能需充分挖掘数据价值

人工智能--野人过河

空城机

Java 算法 5月日更 大学笔记

521的祝福-北爱的回忆

数据一哥

520单身福利 520 单身福利

区块链专家与媒体面对面 | “区块链让数据产生价值”

CECBC

关于爱情的碎碎念

穿过生命散发芬芳

520单身福利

Docker 入门

飞跃

学习笔记之:05 | 数组:一秒钟,定义 1000 个变量

Nydia

学习

阿里专家离职带出来的Java面试全秘籍,我看了三个月,就收到了京东的offer

Java 程序员 架构 面试 计算机

中国数字货币释放利好消息!

CECBC

架构学习笔记:架构设计3原则

风翱

架构 5月日更

活性炭能去甲醛吗?

小天同学

科普 5月日更 活性炭

多线程 VS 多进程(三)

若尘

多线程 Python编程 5月日更

未来每个人的生活可能都会离不开区块链

CECBC

内卷是必然

ES_her0

5月日更

520有感而发

yu

520 单身福利

翻译:谁将在AI中赚钱?by Simon Greenman John 易筋 ARTS 打卡 Week 48

John(易筋)

ARTS 打卡计划

华仔训练营模块4作业

方堃

波特五力模型

石云升

创业 战略 职场经验 5月日更

C#常用特性和快捷键

fox

520单身福利

“产学合作,协同育人”——安谋中国集成电路人才发展趋势沙龙圆满举行

脑极体

Flink的分布式缓存

大数据技术指南

flink 5月日更

Docker 镜像和容器

飞跃

Docker 520 单身福利

可以学习一下安全方面的知识

escray

学习 极客时间 安全 5月日更 安全攻防技能30讲

Node.js使用数据库LevelDB:超高性能kv存储引擎

devpoint

nodejs leveldb

Tokutek宣布了用于MongoDB的新一致性算法_语言 & 开发_Benjamin Darfler_InfoQ精选文章