以视频分析为主要载体的人工智能算法在泛安防场景中是怎样落地的?>> 了解详情
写点什么

CockroachDB :一个可伸缩的、跨地域复制的,且支持事务的数据存储

  • 2014 年 8 月 31 日
  • 本文字数:1088 字

    阅读完需:约 4 分钟

CockroachDB 是一个开源的数据存储项目,该项目的开发团队最近宣布发布了该项目的第一个 alpha 版本。受到 Google 的 Spanner 项目的启发,CockroachDB 旨在打造一个开源的、可伸缩的、跨地域复制且兼容 ACID 的数据库,这在当前的开源社区中还是非常少见的。

一直以来,NoSQL 数据存储都通过在多个数据中心之间进行异步复制来支持多数据中心的配置。这是在 MongoDB 中所推崇的方式,这同样也是 Riak , Cassandra HBase 中唯一可用的方式。然而,异步复制阻碍了在多个数据中心之间的一致性保证。此外,大多数第一代 NoSQL 数据存储都无法支持任何跨键(key)的事务。近来,像 FoundationDB HyperDex 这些新系统在一开始就被设计用来支持跨键的事务。然而,这些系统并不能很好地支持多数据中心的配置。

在这样的背景下,Google 在 2012 年公开了他们的 Spanner 系统,这是一个同时支持事务和多数据中心一致性的系统,该系统为这一领域打开了新的局面。Spanner 的论文给大家带来了启发,但是一直都没有人对其进行实现。直到 CockroachDB 团队开启了他们的开源项目,他们尝试实现并复制 Spanner 中的那些富有挑战的混合特性。

规范的草案中,在Google 参与 Colossus 文件系统开发工作的 Spencer Kimball 对 CockroachDB 进行了描述,CockroachDB 支持 ACID 的事务语义和版本化的值,并将其作为头等特性。其主要的设计目标便是全局的一致性和生存能力,所以该数据存储也由此得名(译者注:Cockroach 是蟑螂的意思,即打不死的小强)。… Cockroach 实现了一个单一的、整体排序的 map(键值映射),并且键和值都是字节字符串。

CockroachDB 的事务特性由两种方式提供。Kimball 解释说

如果逻辑上的一次变化所影响的键全部落在同一范围(range)内,那么原子性和一致性可以由 Raft 算法来保障,这是最快的提交路径。否则,会在受影响的范围之间使用一个非阻塞的分布式提交协议。Cockroach 提供了快照隔离(snapshot isolation,简称 SI)和顺序的快照隔离(SSI)语义…SSI 是默认的隔离级别;客户端必须有意识地在正确性和性能之间做出选择。

该非阻塞分布式提交协议仍然处于发展之中,而 Kimball 则引用了悉尼大学耶鲁大学的论文,并且特别关注来自 Yahoo! 的一篇论文,并将其作为实现 SSI 语义的潜在选择。

当前的 alpha 版本提供了一个所需功能的非常小的子集。集群的初始化和加入、gossip 网络和一个基础键值的 REST API 目前已经得到了支持。但是 raft 一致性算法、范围的分裂或事务功能目前还没有得到支持。该项目是由 Go 语言编写的,而他们目前正在寻找代码贡献者

查看英文原文: CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

2014 年 8 月 31 日 13:5710857
用户头像

发布了 52 篇内容, 共 20.5 次阅读, 收获喜欢 5 次。

关注

评论

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

打工人必会算法—快速幂算法讲解

bigsai

架构师训练营第 1 期 -Week6 - 课后练习

鲁小鲁

极客大学架构师训练营

周练习 6

何毅曦

思考 - 从传统雪崩到K8S

东风微鸣

k8s

week06学习总结

追风

架构师一期

架构师训练营 第六周学习总结

郎哲158

极客大学架构师训练营

架构师 01 期,第六周课后作业

子文

Week_06 总结+作业

golangboy

极客大学架构师训练营

架构师训练营 - 第 6周课后作业-CAP原理

树森

架构师训练营第六周总结

月殇

极客大学架构师训练营

第六周作业 (作业一)

Geek_83908e

极客大学架构师训练营

doris临时故障恢复图

happy

week06作业

追风

架构师一期

CAP原理简述及应用

博古通今小虾米

CAP

Week2 框架设计

贺志鹏

极客大学架构师训练营

架构师训练营 Week6 - 技术选型 - 分布式数据库,NoSQL,Zookeeper,搜索引擎

极客大学架构师训练营

架构师训练营—第五周作业

Geek_shu1988

2周 总结

水浴清风

架构师训练营第六周课程笔记及心得

Airs

架构师训练营第 2 期 第二周作业 1

月下独酌

架构师训练营 week2 学习总结

花果山

极客大学架构师训练营

技术选型(1) 课后作业

ABS

架构师训练营第六周作业

月殇

极客大学架构师训练营

第六周-CAP原则理解

袭望

架构师训练营—第五周学习总结

Geek_shu1988

分布式CAP原理

Jacky.Chen

架构师训练营第六周作业

郎哲158

极客大学架构师训练营

技术选型二第六周作业「架构师训练营第 1 期」

天天向善

第六周作业

TheSRE

极客大学架构师训练营

架构一期第六周作业

Airs

架构师训练营第 1 期 -Week6 - 技术选型二学习总结

鲁小鲁

极客大学架构师训练营

CockroachDB :一个可伸缩的、跨地域复制的,且支持事务的数据存储-InfoQ