cockroachDB学习总结

本文介绍了开源数据库CockroachDB,它的设计理念源于Google的Spanner,但针对中小规模应用,着重数据复制和同步。文章详细讲述了CockroachDB的安装、启动、基本操作、Web监控和SQL语法,包括外键、序列和默认值的处理方式。
摘要由CSDN通过智能技术生成

1. cockroachDB介绍

蟑螂是地球上适应性最强的物种之一。它们能在无氧环境下存活45分钟,在没有食物的情况下存活超过一个月。甚至就算身首异处也无法让小强当场毙命——他们的身体没了头都还能活好几天。
在像 Google,Amazon 和 Facebook 这样的科技巨头内部,掌握领先技术的工程师们也在让他们自己的网站像小强一样顽强。如果一台服务器宕机,一个服务器集群宕机,或者整个数据中心电力中断,那这些网站每一秒都在损失大量收入。
现在,一个开源开发者小组想让每一家公司都能够通过使用这种完全基于网络的云计算系统来搭建如小强般顽强的网站。他们为项目命名为“CockroachDB”(“小强DB”),在宣传中称该项目是“具有超强生命力的数据库”。或许蟑螂被用在软件命名中很违和,但联合创始人 Spencer Kimball —— 一名前 Google 工程师 —— 则认为只有小强才能配得上他们的项目。
“这个名字代表了项目最重要的两大特征:首先不用说,是生存性,其次是一种近乎自主的散布性”。
和很多其他同类型的开源项目一样,CockroachDB 的灵感来自于一份 Google 的研究论文,这篇论文详细地介绍了一种叫做“Spanner”的大型系统。Spanner 将允许 Google 将数据分布到全球上百个数据中心的上百万台服务器。系统的开发大约会耗时5年。
目前项目还处于 α 阶段的开发,离实际应用还很遥远。但 CockroachDB 小组也是现在唯一一个致力于实现 Spanner 系统的开发组。不少参与项目的开发者都曾就职于 Google,但没有一个参与过 Spanner 项目。这其中,最出名的 Photoshop 开源替代产品 GIMP 的的联合创始人 Spencer Kimball 和 Peter Mattis 曾帮助开发 Google 的大型文件存储系统,也就是 Colossus;Ben Darnell 曾参与过 Google Reader 开发,而 Andy Bonventre 则参与过 Chrome 和 Google Tasks 的开发。
CockroachDB 并没有尝试复制 Spanner 最不寻常的理念——用原子钟来让全球各地的数据中心时间同步。考虑到大多数线上应用都没有达到 Google 的规模,他们或许不需要这样的功能。Kimball 表示,这些公司真正需要的是是有一种稳定可靠的方式来让数据自动复制和同步到各个数据中心的服务器里,这样就算一个数据中心倒下了,应用还能正常运行,这也是 CockroachDB 的目标。
转自:CockroachDB —— 像小强一样坚不可摧的数据库

2. 安装及使用CRDB

2.1 安装CRDB

1、 下载cockroachDB二进制文件

[root@ dcs-01 ~]# wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz

2、 解压文件

[root@dcs-01 ~]# tar xfz cockroach-latest.linux-amd64.tgz
[root@dcs-01 ~]# cp cockroach-latest.linux-amd64/ cockroach /usr/local/bin/
[root@dcs-01 ~]# scp /usr/local/bin/cockroach dev2:/usr/local/bin

2.2启动CRDB

1、 启动第1个节点

[root@dcs-01 ~]# cockroach start --insecure --host=dcs-01 --background --http-port=8081
CockroachDB node starting at 2017-03-02 17:59:35.757366168 +0800 CST
build:      CCL 9648163 @ 2017/02/13 19:27:00 (go1.7.5)
admin:      http://dcs-01:8081
sql:        postgresql://root@dcs-01:26257?sslmode=disable
logs:       cockroach-data/logs
store[0]:   path=cockroach-data
status:     initialized new cluster
clusterID:  255b11fe-d801-
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、付费专栏及课程。

余额充值