数据库是世界上每个企业的心脏,支撑着小至几个简单的表格,大到成千上万台服务器。
并且他们进化的速度非常快。
在蟑螂实验室(Cockroach Labs)的大多数工程师在他们的职业生涯中都一直在维护并观察这些数据库的运行状态,当他们发现数据库出现这样或那样的瓶颈的时候,他们便会着力解决这些出现的瓶颈问题。

但是首先,为什么要选择“COckroach”?
虽然他的外表长的很荒诞,但是请相信他有一个强韧的内心。
你听说过蟑螂会是世纪末日后唯一的幸存者吗?
现代数据库系统通过模仿自然界最古老和最成功的设计而获得了很多收获。
生存,复制,扩散。
这是古老的地质时代中蟑螂的模型,当然也是我们的。
即使“蟑螂”这个听上去感觉会被遗忘,但是也无所谓啦。

在20世纪初,当我们还在Google工作的时候,我们很快就遇到了在行业当中非常普遍的数据库的问题:应用程序级别的分片(application-level sharding)。
如果你有大量的数据(可能是TB级别的甚至是PB级别的)要存储到数据库中应该怎么办呢?
很简单,解决的办法就是:你把这些数据切分出来,就像切分蛋糕一样,然后把一块蛋糕放到一个数据库里,再把另一块蛋糕放到另一个数据库里,如此循环,尽量多地切分蛋糕,然后分到不同的数据库里(当然我这里说的蛋糕就是分片)。
但是如果数据的增长速度非常快怎么办?
简而言之,大量的数据面临的挑战是:更多的分片,更多的问题,在分片操作时客户将不能访问数据库,服务器过载,安装复杂度也会越来越大。
我们对大规模数据面临的困难提供了良好的鉴别能力。

快进到20世纪中期,那个时候Google迎来了NoSQL的运动。
为了简单起见,NoSQL牺牲了传统关系型数据库(RDBMS)的一些性能。
一个更简单的设计允许商品硬件透明的可扩展性。
自此数据库开发可以像使用单个数据库一样,但是这个数据库背后的数据库集群所能支持的数据量却能达到闻所未闻的大小。
但是我们观察到,NoSQL的这些简化最终成为了开发人员的致命弱点,因为在使用NoSQL的过程中,将使用越来越复杂的应用程序逻辑来处理NoSQL所缺失的一些功能,比如事务。
NoSQL面临的这些问题需要下一代的新的数据库系统设计来解决一致性和事务性的问题。

在2012年我们团队离开了Google取创建一个图片共享平台Viewfinder。
在这段时期,为数十亿用户提供服务的梦想并不是白日做梦,我梦有一个远大的梦想。
但是当我们为我们优秀的基础设施寻求一种开源的解决方案的时候,才发现理想和显示之间存在着一条宏大的沟。
(译者的理解:他们想在开源产品中寻找一款跟在Google的时候用起来很好的NewSQL产品,但是没有发现开源界有,然后他们就准备自己造一个)
我们(在使用市面上的这些开源NoSQL产品时)犯过懵逼,体面的搭建,有的时候使用复杂的解决办法也是可能的,在必要的地方使用管道胶带。
事实证明,调试这些NoSQL产品并不是我们的首要目标,我们根本没有那么多时间来解决使用这些NoSQL产品时遇到的问题(破产品bug太多了!!!)。

所以我们决定以建立一款优秀的分布式数据库产品为我们的首要使命。
于是乎我们建立了蟑螂实验室(Cockroach Labs)并且确立了一个明确的目标:建立一个我们多年以来就像建立的数据库产品,并且使他在建立之初就是开源的。
这项任务很简单,并且我们非常骄傲的承诺:让数据变得简单(Make Data Easy)。

我们想要的这个数据库支持伸缩性,容灾性,始终是一致的,并且支持抽象,以使得他更易于使用。
我们宁愿花时间来快速构建及迭代一个新的产品,也不愿意对现有数据库的缺陷进行工程解决方案。(译者的理解:作者再次强调你们这些开源NoSQL产品bug太多了,该bug的时候还不如重新做一个没啥bug的数据库呢)
而这个数据库(CockroachDB)将会是我们在成立下一家公司时所使用的数据库。
并且时我们下下个公司,下下下个公司……所使用的数据库。

如今,我们为搭建推出蟑螂DB。
使用他,
构建他,
为他做出Contribute吧!

Ben, Peter & Spencer

CockroachDB学习笔记——[译]Hello World的更多相关文章

  1. CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  2. CockroachDB学习笔记——[译]如何优化Go语言中的垃圾回收

    原文链接:https://www.cockroachlabs.com/blog/how-to-optimize-garbage-collection-in-go/ 原作者:Jessica Edward ...

  3. CockroachDB学习笔记——[译]在CockroachDB中如何让在线模式更改成为可能

    原文链接:https://www.cockroachlabs.com/blog/how-online-schema-changes-are-possible-in-cockroachdb/ 原作者: ...

  4. CockroachDB学习笔记——[译]Cgo的成本与复杂性

    原文链接:https://www.cockroachlabs.com/blog/the-cost-and-complexity-of-cgo/ 原作者:Tobias Schottdorf 原文日期:D ...

  5. CockroachDB学习笔记——[译]为什么Go语言是CockroachDB的正确选择

    原文链接:https://www.cockroachlabs.com/blog/why-go-was-the-right-choice-for-cockroachdb/ 原作者:Jessica Edw ...

  6. CockroachDB学习笔记——[译]The New Stack:遇见CockroachDB,一个弹性SQL数据库

    原文链接:https://www.cockroachlabs.com/blog/the-new-stack-meet-cockroachdb-the-resilient-sql-database/ 原 ...

  7. CockroachDB学习笔记——[译]CockroachDB是如何进行分布式原子事务的

    原文:How CockroachDB Does Distributed, Atomic Transactions 原文链接:https://www.cockroachlabs.com/blog/how ...

  8. CockroachDB学习笔记——[译]Scaling Raft

    原文链接:https://www.cockroachlabs.com/blog/scaling-raft/ 原作者:Ben Darnell 原文日期:Jun 11, 2015 译:zifeiy 在Co ...

  9. CockroachDB学习笔记——对此的选择

    无意间了解到TiDB,然后知道了他是一款国产团队开源的NewSQL数据库, 看了一下官网,有很多中文的文档和技术分享挺不错的. 但是安装起来好像挺麻烦的说. 测试的硬件环境 也吓死我了,我只有一台笔记 ...

随机推荐

  1. 定义一个类:实现功能可以返回随机的10个数字,随机的10个字母, 随机的10个字母和数字的组合;字母和数字的范围可以指定,类似(1~100)(A~z)

    #习题2:定义一个类:实现功能可以返回随机的10个数字,随机的10个字母, #随机的10个字母和数字的组合:字母和数字的范围可以指定 class RandomString(): #随机数选择的范围作为 ...

  2. Java&Selenium数据驱动【DataProvider+TestNG+Array】

    Java&Selenium数据驱动[DataProvider+TestNG+Array] package testNGWithDataDriven; import java.util.conc ...

  3. Spring Bean装配(下)——注解

    @Repository,@Service,@Controller这三个注解是基于component定义的注解 component-scan:组件扫描 base-package:扫描这个下的所有类 &l ...

  4. SIGAI深度学习第九集 卷积神经网络3

    讲授卷积神经网络面临的挑战包括梯度消失.退化问题,和改进方法包括卷积层.池化层的改进.激活函数.损失函数.网络结构的改 进.残差网络.全卷机网络.多尺度融合.批量归一化等 大纲: 面临的挑战梯度消失问 ...

  5. Navicat permium快捷键

    Ctrl + F 搜索本页数据 Ctrl + Q 打开查询窗口 Ctrl + /  注释sql语句 Ctrl + Shift + / 解除注释 Ctrl + R 运行查询窗口的sql语句 Ctrl + ...

  6. Activiti服务类- RuntimeService服务类

    一共89个接口1.启动流程实例(20个方法)//使用给定的键在流程定义的最新版本中启动一个新的流程实例.ProcessInstance startProcessInstanceByKey(String ...

  7. 03_每周 5 使用 tar 命令备份/var/log 下的所有日志文件

    ]# vim /root/logbak.shtar -czf log-`date +%Y%m%d`.tar.gz /var/log ]# crontab -e -u root00 03 * * 5 / ...

  8. 多路IO复用模型--select, poll, epoll

    select 1.select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数 2.解决1024以下客户端时使用se ...

  9. 关于openstack 网络相关的文章收集

    journalctl工具基础介绍(你需要这个的.) https://blog.51cto.com/13598893/2072212 新版devstack使用systemd的方式来管理OpenStack ...

  10. IDEA算法导包后 import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey;报错

    仔细查看报错原因就能知道,报错是因为包冲突的原因,可以每种只放一个jar包,就能过避免这种错误. 例如:只导入commons-codec-1.11-javadoc,jar和bcprov-jdk15on ...