写点什么

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:085134
用户头像

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

关注

评论

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

【译】JavaScript 代码整洁之道-重构篇

KooFE

JavaScript 大前端 代码重构 6月日更 整洁代码

Mybatis缓存机制详解

北游学Java

Java mybatis

京东T8Java架构师呕心沥血总结整理的《15w字的Java面试手册》免费开放分享给大家复习。

Java架构之路

Java 程序员 架构 面试 编程语言

2021版最新!字节跳动3面+腾讯6面一次过,谈谈我的大厂面经

Java架构之路

Java 程序员 架构 面试 编程语言

博客

vincentjia

一文读懂开源项目 OpenHarmony2.0

科技热闻

每日优鲜:AI 技术驱动下的社区新零售

蚂蚁集团移动开发平台 mPaaS

人工智能 算法 图像识别 codehub

5.7w字?GitHub标星120K的Java面试知识点总结,真就物超所值了

Java 编程 程序员 面试 计算机

揭秘Spring家族之——AOP和IOC

Java架构师迁哥

普通二本,吃透这份阿里高级专家的《Java面试手册21版》成功拿下腾讯offer

Java架构师迁哥

解读革命性容器集群CCE Turbo:计算、网络、调度全方位加速

华为云开发者联盟

容器 华为云 CCE Turbo 集群服务器

入职美团定级P7,总结2021年最新180道高级岗面试题及答案

Java架构师迁哥

从零开始学习3D可视化之坐标系

ThingJS数字孪生引擎

物联网 可视化 数字时代 3D模型 3D可视化

干货:ANR日志分析全面解析

vivo互联网技术

android 堆栈 日志分析 anr

看Kunpeng BoostKit 使能套件如何实现大数据场景倍级性能提升

华为云开发者联盟

大数据 开源 鲲鹏 鲲鹏计算 Kunpeng BoostKit

@成都的Coder

蚂蚁集团移动开发平台 mPaaS

flutter 移动开发 mPaaS

数仓发生数据倾斜不要慌,教你轻松获取表倾斜率

华为云开发者联盟

GaussDB MPP GaussDB(DWS) 数据倾斜 并行架构

Hanoi 塔问题(Java实现)

若尘

数据结构 java编程 6月日更

带你遨游银河系的十种分布式数据库

悟空聊架构

数据库 分布式 分布式数据库 6月日更

学历不够,技术来凑,8年开发经验,逆袭拿到阿里P7岗

Java架构师迁哥

如何在 Electron 上实现 IM SDK 聊天消息全文检索

网易云信

全文检索 Electron IM

代码写的烂才是原罪?字节三面+微信四面+PayPal四面,大厂面经分享

Java 程序员 架构 面试

为什么开发5年的同事,还在学习23种设计模式?是他太菜?

Java架构师迁哥

java中的NIO和IO到底是什么区别?20个问题告诉你答案

华为云开发者联盟

Java io nio buffer channel

AI缘起——达特茅斯会议

行者AI

人工智能

Linux Shell 自动交互人机交互的 3 种方法

学神来啦

Linux 运维 Shell 虚拟机 linux运维

双非本科逆袭记,阿里技术四面+交叉面+HR面,成功拿到offer

Java架构师迁哥

阿里都会问些什么?4面阿里余额宝Java高级技术岗

Java架构师迁哥

网络攻防学习笔记 Day39

穿过生命散发芬芳

网络攻防 6月日更

花了三个小时把一份GitHub上标星115k的《Java超全进阶教程》整理成了PDF文档。

Java架构之路

Java 程序员 架构 面试 编程语言

老同学突然升到了阿里P7,只因偷偷掌握了JVM的奥秘?

Java架构师迁哥

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