CockroachDB:面向高可用的数据同步与复制解决方案

需积分: 20 9 下载量 115 浏览量 更新于2024-07-17 收藏 1.7MB PDF 举报
CockroachDB 是一款专注于提供稳定可靠的数据复制和同步解决方案的分布式数据库系统,它并未像 Google 的 Spanner 那样追求极致的全球时间同步,因为这并非大多数在线应用的必要需求。Spanner 通过原子钟确保全球数据中心间的时钟同步,支持高可用性和全球范围内的事务一致性,其核心特性包括全球分布式存储、跨数据中心的同步复制、透明的分片与数据移动、以及支持各种类型的事务处理(如单机事务、分布式事务,以及单原子写和多次读操作)。 相比之下,CockroachDB 更侧重于实用主义,旨在应对现实世界中的应用需求,即使在单个数据中心出现故障的情况下也能保证服务的连续性。它设计上更易于扩展和适应Web2.0时代的计算模型变化,能够处理海量数据的收集、存储和分析,同时提供快速响应用户搜索请求的能力。 虽然 Google 在搜索引擎的发展历程中,从分布式+批处理,到数据中心作为计算机的核心,再到实时搜索和数据分析,其技术演进伴随着一系列关键的创新,如MapReduce、GFS、Bigtable、MegaStore、Dataflow、Spanner 和 F1 等。特别是 Spanner,它基于 Bigtable 并结合了 Megastore 的优点,提供了强大的分布式存储和事务处理能力,包括全球分布、跨数据中心复制、以及关系型schema的支持。 然而,CockroachDB 和 Spanner 都展示了在数据管理领域的独特视角,前者更注重实际应用场景的灵活性和可用性,后者则追求更高的性能和一致性标准。对于企业级应用来说,选择哪个数据库系统取决于具体的业务需求、规模和对一致性、可扩展性的不同预期。 总结来说,CockroachDB 和 Spanner 分别代表了不同的数据库设计理念和技术路线,它们都是为了满足不同层次的业务需求而存在,而理解这些技术背后的原理和优势,对于开发者和企业决策者来说,是优化IT基础设施和提高应用程序性能的关键。
2019-07-19 上传
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/ 标签:蟑螂数据库  国人开源