Cockroach DB 1.0发布

分布式SQL数据库Cockroach DB遵循软件产品以动物命名的模式。近日,该数据库的第一个生产就绪版本1.0发布。

许多人将Cockroach DB视为Google Spanner的开源版本。后者是一个强一致性、横向可扩展的RDBMS,它起初是一个服务于谷歌服务的内部项目,近日加入了谷歌云。和NuoDB一样,这些数据库都致力于解决同样的问题,那个NoSQL数据库在过去十年中设法从不同角度解决的问题。高可用性、线性可扩展性、强一致性、运行中复制技术以及快速响应和呈指数增长的数据集,所有这些问题都是数据库供应商数十年来致力于解决的问题。

NoSQL供应商采用的一种方法是放松关系型数据库强加的部分约束,一致性、可用性或分区容错性,就像CAP理论所描述的那样。SQL支持即使存在,大多数时候也是受限的。

另一方面,有时称为“NewSQL”数据库的方法是从头设计一种完全兼容SQL的数据库系统,并且仍然设法满足上述所有需求。

构建分布式数据库的其中一个最大的挑战是事件顺序。一个事务中的有序操作可以确保读取者和写入者有一致的数据视图。

根据谷歌发表的论文,Google Spanner使用了TrueTime概念中的GPS和原子钟在几毫秒内实现不同节点之间的同步。Cockroach的全局排序方法使用了他们在博客中描述的混合逻辑时钟。据称,两种方法都违背了CAP理论的定律,就是在一个分布式系统中,我们无法通过稍微不同的实现同时保证一致性、高可用性和分区容错性。

Cockroach的第一个生产就绪版本还提供了零宕机(在线)模式修改、次级索引和外键支持。在提供高可用性的同时,Cockroach还重点强调了一致性,使用每个数据集三个或三个以上的活动副本,所有这些副本都可以同时读/写。除了增加高可用性外,地理上分散的客户端可以连接到最近的服务器进行写入,确保每个客户端的状态在全球范围内都是一致的,在这种情况下,该“多活可用性”模型也很有用。Cockroach的其中一个客户是一家大型游戏公司,他们正积极地在生产环境中使用这项特性。Cockroach的主要客户还包括百度,他们积极地用它处理每秒23000多次的写入操作。

Cockroach DB的一大卖点是,它不需要重写MVC代码或者使用一些中间层翻译ORM和数据库查询,因为它提供了面向许多流行框架(如Ruby on Rails、Hibernate、Python和Node的Sequelize)的连接器及示例代码。GitHub上提供了详细的架构图,企业客户可以获得商业支持。复杂SQL联合查询还不够优化,它的名字也让许多用户心情复杂,但这没有阻止Cockroach于月初在红点创投领投的B轮融资中获得了2700万美元。

原文地址:http://www.infoq.com/cn/news/2017/06/Cockroach-DB-Production-Release


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

CockroachDB (蟑螂数据库)是一个可伸缩的、支持地理位置处理、支持事务处理的数据存储系统,和谷歌的F1系统类似,支持分布式事务等特性。。CockroachDB 提供两种不同的的事务特性,包括快照隔离(snapshot isolation,简称SI)和顺序的快照隔离(SSI)语义,后者是默认的隔离级别。        为了保证在线的百万兆字节流量业务的质量,Google开发了Spanner系统,这是一个可扩展的,稳定的,支持事务的系统。许多参与开发CockroachDB的团队现在都服务于开源社区。就像真正的蟑螂(cockroach)一样,CockroachDB可以在没有数据头、任意节点失效的情况下正常运行。这个开源项目有很多富有经验的贡献者,创始人们通过社交媒体、Github、网络、会议和聚会结识他们并鼓励他们参与其中    蟑螂是一个分布式的K/V数据仓库,支持ACID事务,多版本值存储是其首要特性。主要的设计目标是全球一致性和可靠性,从蟑螂的命名上是就能看出这点。蟑螂数据库能处理磁盘、物理机器、机架甚至数据中心失效情况下最小延迟的服务中断;整个失效过程无需人工干预。蟑螂的节点是均衡的,其设计目标是同质部署(只有一个二进制包)且最小配置。    蟑螂数据库实现了单一的、巨大的有序映射,键和值都是字节串形式(不是unicode),支持线性扩展,理论上支持4EB的逻辑数据)。映射有一个或者多个Range组成,每一个Range对应一个把数据存储在RocksDB(LevelDB的一个变种,Facebook贡献)上的K/V数据库,并且复制到三个或者更多蟑螂服务器上,Range定义为有开始和结束键值的区间。Range可以合并及分裂来维持总大小在一个全局配置的最大最小范围之间。Range的大小默认是64M,目的是便于快速分裂和合并,在一个热点键值区间快速分配负载。Range的复制确定为分离的数据中心来达到可靠性(比如如下分组:{ US-East, US-West, Japan }, { Ireland, US-East, US-West}, { Ireland, US-East, US-West, Japan, Australia })    Range有一种变化,通过分布式一致性算法实例来调节确保一致性,蟑螂所选择使用Raft一致性算法。所有的一致性状态存在于RocksDB中。项目官网地址:http://www.cockroachdb.cn/ 标签:蟑螂数据库  国人开源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值