分布式数据库CockroachDB

    CockroachDB(中文名蟑螂DB,所以又可以称为小强DB),是构建于事务处理及强一致性KV存储上的分布式SQL数据库,支持水平扩展、自动容错处理、强一致性事务,并且提供SQL接口用于数据处理,是Google Spanner/F1的开源实现。
    CockroachDB适用于应用对数据要求精确、可靠、完全正确的场景,支持自动复制、均匀分布、基于极小配置的数据恢复,可用于分布式的、可复制的联机事务处理(OLTP),多数据中心的部署,私有云的基础构建,它不适用于读少写多的场景,可以用内存数据库来代替,也不适用于复杂的join查询,重量级的数据分析及联机分析处理(OLAP)。

扩展性
    可运行于本地机器、单服务、开发集群中,在运行的集群中扩容只需指定一个新的节点即可。在KV层,CockroachDB开始是单一的空区域,单一达到阈值(64M)时数据被分裂为两个区域,每块覆盖整个键值空间的一个连续段,当新的数据进入时继续分裂,目的是保持相对小及一致的区域大小。集群跨越多个节点时,新分裂的区域自动平衡到有更多容量的节点中,CockroachDB使用对等的gossip协议使得节点间可以交换网络地址、存储容量等信息。

容错

    CockroachDB支持从服务器重启到数据中心宕机的软硬件故障,并使用强一致性复制及故障后的自动修复,使用Raft一致性算法来来保证数据复制的可用性和副本之间的一致性,有多种定义副本位置的方法,不同服务器在同一机架作服务器容错、不同服务器不同机架在同一数据中心作电源/网络容错、不同服务在不同的数据中心作大规模网络或宕机容错。

强一致性

    CockroachDB多次复制数据保证副本之间的一致性,特性:只要系统时钟同NTP一致,CockroachDB 就能保证可序列化的SQL事务; 服务器重启、机器故障或数据中心宕机不停机;在故障切换时本地或广域网复制无陈旧数据读取;使用Raft。

    实现:存储数据通过MVCC进行版本控制,因此读取只是将他们的范围限制在读事物开始时可见的数据;写试用Raft一致性算法,该算法保证大部分副本总是一致同意更新是否成功提交,写更新必须达到大多数副本(默认为2/3)才认为已提交。

 分布式事务

    CockroachDB的分布式事务夸集群,不论是单机中的少数服务器还是夸多个数据中心的多服务器。不像分片设置,不需要知道数据的精确位置;在集群中只需同节点通信,CockroachDB无缝获取事务到正确位。

当集群处于负载中时,甚至可以在数据中心或云基础设施提供者之间移动表或整个数据库。可以轻松构建一致的应用程序;支持具有分布式死锁检测的乐观并发;默认隔离级别为序列化。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值