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无缝获取事务到正确位。
当集群处于负载中时,甚至可以在数据中心或云基础设施提供者之间移动表或整个数据库。可以轻松构建一致的应用程序;支持具有分布式死锁检测的乐观并发;默认隔离级别为序列化。
相关推荐
藏经阁-PostgresChina2018_赖宝华_开源分布式NewSQL数据库CockroachDB架构及最佳实践.pdf
Jepsen 是开源社区比较公认的分布式数据库的测试框架。Jepsen 验证过程包括 VoltDB、CockroachDB、Galera、MongoDB、etcd 在内的几乎所有的主流分布式数据库 / 系统。
CockroachDB是一个云原生SQL数据库,用于构建...CockroachDB是基于事务性和高度一致的键值存储构建的分布式SQL数据库。 它水平缩放; 在磁盘,机器,机架乃至数据中心故障中幸存下来,并最大程度地减少了延迟中断和
CockroachDB (蟑螂数据库)是一个可伸缩的、支持地理位置处理、支持事务处理的数据存储系统,和谷歌的F1系统类似,支持分布式事务等特性。。CockroachDB 提供两种不同的的事务特性,包括快照隔离(snapshot ...
CockroachDB is a cloud-native SQL database for building global, scalable cloud services that survive disasters. What is CockroachDB? CockroachDB is a distributed SQL database built on a transactional ...
Perseus是一组脚本,用于在分布式数据库的三个节点之一与同级隔离时调查分布式数据库的响应能力 数据库 隔离停机 隔离导致部分停机 干扰时间 恢复停机 恢复时部分停机 恢复时间 版 1秒 0秒 1秒 1秒 0秒 2秒 3.2.13 0...
CockroachDB是一个分布式SQL数据库,旨在快速扩展,生存一切并在任何地方蓬勃发展。 无论您是一家单人创业公司还是一家跨国企业,CockroachDB的设计目的都是为了简化数据管理。 要了解有关CockroachDB的更多信息,...
CockroachDB是基于事务性和高度一致的键值存储构建的分布式SQL数据库。 它水平缩放; 在磁盘,机器,机架甚至数据中心故障中幸存下来,从而将延迟中断降到最低,并且无需人工干预; 支持高度一致的ACID交易; 并...
策略:使用分布式数据库解决方案,如Cassandra, CockroachDB等。 主从复制原理 概述:数据从一个MySQL服务器(主)复制到一个或多个MySQL服务器(从)。 工作原理: 主服务器上的二进制日志 (binary log) 记录了...
CockroachDB是一款开源的分布式数据库,具有NoSQL对海量数据的存储管理能力,又保持了传统数据库支持的ACID和SQL等,还支持跨地域、去中心、高并发、多副本强一致和高可用等特性。支持OLTP场景,同时支持轻量级OLAP...
OurGi-src 团队智能区块链OurGi网状网络:区块链链只是DAO(去中心自治组织)的一种实现方式,包含筏式共识算法的分布式数据库应该是另一种可能更容易的DAO实现方式如果能在Raft共识算法的前面插入替换钩子就可以...
CockroachDB 是一个云原生 SQL 数据库,用于构建可在灾难中幸存的全球可扩展云服务。 YugabyteDB 是一个高性能、云原生的分布式 SQL 数据库。 分析数据库/数据仓库 Greenplum 数据库 (GPDB) 是一个先进的、功能齐全...