`

分布式数据库CockroachDB

    博客分类:
  • DB
阅读更多

    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
0
分享到:
评论

相关推荐

    分布式数据库--30讲

    4. CockroachDB、YugabyteDB、TBase、TDSQL、巨杉、VoltDB、GaussDB 300 等等,还有很多产品正在赶来的路上。 分布式数据库的学习价值包括: 1. 提高架构设计水平:学习分布式数据库可以提高自己的架构设计水平和...

    藏经阁-PostgresChina2018_赖宝华_开源分布式NewSQL数据库CockroachDB架构及最佳实践.pdf

    在此背景下,开源分布式NewSQL数据库CockroachDB应运而生。 CockroachDB是一种开源分布式NewSQL数据库,由Golang语言编写,其设计目标是提供传统关系数据库的ACID事务特性,同时也能够无缝扩展到多地域、多数据中心...

    分布式数据库2019考题.rar

    而NewSQL数据库则试图在保持SQL语义的同时,提供类似NoSQL的水平扩展能力,如CockroachDB、TiDB等。 10. **大数据与分布式数据库**:分布式数据库在处理大数据时的角色,如在Hadoop生态系统中的HDFS与HBase的配合,...

    美团分布式数据库实践.pdf

    CockroachDB、TiDB、GaussDB等后来者则在不同方面对分布式数据库进行了优化,如云原生、分布式事务和水平扩展能力。 在美团的分布式数据库实践——Blade项目中,面临的主要问题包括硬件拓展性、高可用性、成本控制...

    分布式数据库参考文献

    NewSQL数据库如Google的Spanner和 CockroachDB,则试图在保持SQL接口的同时,实现分布式数据库的高性能和强一致性。 10. **云原生分布式数据库**: 随着云计算的发展,云原生分布式数据库应运而生,如Amazon ...

    PyPI 官网下载 | sqlalchemy_cockroachdb-1.3.0-py3-none-any.whl

    这个库允许开发者利用Python的SQLAlchemy来操作分布式数据库CockroachDB,提供了一种更高效、易用的方式来管理和查询数据。通过在PyPI上下载这个文件,用户可以方便地将其安装到Python环境中,以便在项目中使用。

    分布式数据库实践字节跳动分布式数据库实践V2.pdf

    4. **物理时钟与逻辑时钟**:文档中提到了Hybrid Logical Clocks (HLC)和CockroachDB,HLC是一种兼顾精度和效率的逻辑时钟算法,被CockroachDB这样的分布式数据库所采用,用于解决分布式系统中的时间同步问题。...

    字节跳动分布式数据库实践.pdf

    分布式事务的版本分配是个挑战,文中提到了几种方法,如基于中心化全局事务版本号分配的ByteSQL,以及使用TrueTime API(如Google Spanner)、物理时钟的逻辑时钟HLC(Hybrid Logical Clock,如CockroachDB)等。...

    王天宇-金山云分布式数据库DragonBase架构详解和实践1

    - 云原生分布式、NewSQL、多模(2010~2020):随着云计算的普及,云原生分布式数据库如Aurora、Google Spanner等出现,同时NewSQL数据库如TiDB、CockroachDB致力于兼顾分布式和ACID特性,多模数据库则适应了更多样...

    cpp-Jepsen是开源社区比较公认的分布式数据库的测试框架

    Jepsen 是开源社区比较公认的分布式数据库的测试框架。Jepsen 验证过程包括 VoltDB、CockroachDB、Galera、MongoDB、etcd 在内的几乎所有的主流分布式数据库 / 系统。

    分布式数据库在金融行业的应用.pptx

    与CockroachDB一起,TiDB在全球范围内推动了NewSQL技术的创新。TiDB的独特之处在于它的完全分布式架构,不是基于现有的数据库(如MySQL、PG)或中间件改造,而是从零开始设计,提供了分布式SQL API和TiSpark集成,...

    CockroachDB中文文档

    CockroachDB是一种分布式SQL数据库,它的设计初衷是追求高扩展性、强一致性和高生存性。这些特性赋予了CockroachDB强大的容错能力,使其能够应对磁盘、机器、机架甚至整个数据中心的故障,并能够在无需人工干预的...

    金山云分布式数据库DragonBase架构详解和实践.pptx

    - **云原生分布式、New SQL、多模**(2010~2020):随着云计算的发展,Aurora、Google Spanner、CockroachDB/TiDB等云原生数据库出现,支持New SQL的高性能事务处理和多模数据处理。 - **软硬一体化**:结合硬件...

    开源项目-cockroachdb-cockroach.zip

    尽管CockroachDB是分布式数据库,但它仍保持了对标准SQL的广泛支持,使得开发人员可以使用熟悉的SQL语法进行查询和操作。此外,它还提供了一些特有的功能,如: 1. **分布式事务**:CockroachDB支持ACID(原子性、...

    PyPI 官网下载 | cockroachdb-0.1.0.tar.gz

    《PyPI官网下载:cockroachdb-0.1.0.tar.gz——分布式数据库与Python库探索》 在Python的世界里,PyPI(Python Package Index)是开发者获取和分享软件包的重要平台。此次我们关注的资源“cockroachdb-0.1.0.tar.gz...

Global site tag (gtag.js) - Google Analytics