暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

CockroachDB重磅来袭!

CockroachDB 2021-07-14
4961

   CockroachDB 简介  


项目背景

受到Google的Spanner 项目的启发,CockroachDB旨在打造一个开源的、可伸缩的、跨地域复制且兼容ACID的数据库。


创始人

三位创始人,Spencer Kimball(CEO), Peter Mattis(VP) 和Ben Darnell(CTO) 均来自Google,并且他们对Google的基础设施非常了解。Kimball 和 Mattis 是加州伯克利的大学室友,在大学期间他们成立了著名开源项目GIMP。在Google期间,他们开发了Colossus文件系统,该系统是GFS的进一步演化,并且是Spanner的底层存储系统。Darnell和 Kimball 以及Mattis 成立过公司ViewFinder,之后该公司被出售给Square。他们三人在Google期间使用过Colossus,BigTable,Spanner,当离开Google后,因为这些系统并未开源,他们无法在自己新的项目中使用到这些系统,所以他们决定以开源的方式克隆类似的系统。

融资情况

  • Cockroach Labs A轮和A1轮 累积融资2600万美元。领投方为Benchmark,Index Ventures 以及 Google Ventures 等。

  • Cockroach Labs B轮融资2700 万美元。领头方为Redpoint Venture,Benchmark,Index Ventures, Google Ventures 等。


   CockroachDB特性   


支持标准SQL
CockroachDB支持标准SQL, 包括Join, 外键约束和显示事务。除此之外,CockrochDB还增加了一些自己的SQL 语义,例如interleaved tables. CockroachDB 兼容PostgreSQL的协议以及语法,所有使用PostgreSQL的应用可以直接连接CockroachDB.


分布式事务
CockroachDB支持两种隔离级别:
SERIALIZABLE : CockroachDB的默认隔离级别,类似于标准事务隔离级别中的串行化。

SNAPSHOT : 在事务冲突比较严重的情况下,snapshot isolation的并发处理能力要更好一些,但是会有write skew的问题。
应用需要在正确性和性能方面做出权衡,从而选择合适的隔离级别。当应用需要显示的事务操作时,可以直接使用标准SQL的begin和commit等操作。


高并发
CockroachDB本质是一个OLTP型的系统,底层存储采用分布式KV(类NoSQL系统),且采用去中心化的架构设计,任意节点都可以对应用提供读写请求,可以很好地支持用户高并发的访问需求。


分布式SQL
传统的OLTP型数据库,例如MySQL,对JOIN, Group By 等 OLAP类的查询支持比较弱。CockroachDB在分布式KV的基础上构建了分布式计算框架,可以将OLAP类的的SQL请求通过物理执行计划转化为分布式计算任务,所以对OLAP类的查询也可以很好的支持。


弹性扩容
对于使用传统关系型数据库(类似MySQL)的应用而言,当数据量或者访问量急剧增长时,传统关系型数据库会遇到单机瓶颈的问题。而CockroachDB可以让用户专注与业务逻辑,当数据量或者访问量增长时,可以通过新增节点的方式来满足业务需求,且新增节点的过程中,业务无感知。


高可用
对于应用而言,经常关注的一个问题在于底层系统的可用性。传统的单机数据库在出现故障时,往往会影响甚至中断业务的正常访问。CockroachDB在架构设计上无中心节点,且数据以Range(默认64M)为单位按照默认3副本的方式进行组织,Range的各个副本之间按照Raft协议进行数据的同步。单个节点的故障会导致某些Range出现副本丢失的情况,但是Raft协议保证对于单个Range,3副本情况下,2副本可用该Range对外依然可用。且集群有自愈功能,当集群检测到某些Range缺失副本的情况下,会自动尝试进行补全,且整个过程对应用无感知。


   CockroachDB 使用  


集群搭建
在单机上启动3个节点,以insecure的方式启动
./cockroach start --store=/data1 --http-port=8080 --port=26660 --insecure --background
./cockroach start --store=/data2 --http-port=8081 --port=26661 --join=127.0.0.1:26660 --join=127.0.0.1:26661 --insecure --background
./cockroach start --store=/data3 --http-port=8082 --port=26662 --join=127.0.0.1:26660 --join=127.0.0.1:26661 --insecure --background

查询节点情况

终端访问


查看集群信息
打开浏览器的 http://127.0.0.1:8080 查看 adminUI



    CockroachDB重要大事件   

  • 2015年6月4日,成立Cockroach Labs,专门从事CockroachDB的开发,同时宣布获得625万美元的A轮融资。

  • 2016年3月, Cockroach Labs 获得了 2000 万美元的 A1 轮融资。

  • 2016年 5月 30日,发布CockroachDB beta版。

  • 2017年5月10日,发布1.0版本,并宣布获得2700万美元的B轮融资。






 关于我们:我们是百度DBA团队,团队有两位CockroahDB Member, 目前受邀参与CockroachDB 社区的核心开发工作,团队在积极推动NewSQL在百度内部以及外部的发展。除了NewSQL, 我们在MySQL, PostgreSQL, GreenPlum有多年的内核开发经验及实践经验,对数据库和大数据领域有疑问或者需求欢迎联系我们,同时欢迎有志青年加入我们!



....................  长按关注  ....................


文章转载自CockroachDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论