源地址:
在发布YunTable0.1版之后,我将这个好消息和我一个在中国移动工作的同济同学分享了,他首先向我表示祝贺,但是他不理解像YunTable这样的分布式数据库和Oracle这样的关系型数据库有什么区别?当接到这个问题的时候,我并没有立即回答,因为我感到这个疑问不仅是他一个人会有,而且估计有很多同学也有类似的疑问,这就是本文的由来。但在介入分布式数据库之前,让我们剖析一下关系型数据库有哪些不足。
关系型数据库的不足之处
-
- 扩展困难:由于类似“join”等语句的存在,使得一个关系型数据库很难扩展,即使能扩展,也比较常用“垂直扩展”这类比较昂贵的解决方案。
- 并发读写慢:由于关系型数据库内部存在很多锁,导致在并发读写方面有一定的不足,当访问量上去的时候,有可能会出现性能大幅降低的情况。
- 成本高:除了上面提到的昂贵的解决方案外,普通的商业数据库的购置成本也是非常高的。
- 有限的支撑容量:由于类似Oracle和IBM这样的公司在设计数据库的时候,并不是以Google这样的互联网企业为目标客户,使得它们的产品虽然能满足大型企业的需求,但是面对类似Google这样的海量需求而言,是难以为继的。
分布式数据库的优势
-
- 简单的扩展:只要通过简单几个步骤就能给一个机群添加一个新的节点来支撑新的流量和数据,总体规模能达到P以上的级别,在这方面HBase已经有成功的范例了。
- 自动的备份:分布式数据库的产品基本都会附带自动备份功能来保护数据的安全。
- 快速的读写:因为在内存利用,压缩和Column存储等方面分布式数据库都有很多的支持,所以在读写方面,速度会有优势,这方面的例子有Cassandra。
- 低廉的成本:由于开源的特性,所有其购置成本是很低的。
虽说关系型数据库有很多不足之处,但是其还有很多优点,比如:对工业标准的SQL语言有良好的支持,事务的支持和较低的学习成本,也就是说,分布式数据库要替代关系型数据库,还有很多路要走,所以现在分布式数据库还属于小众。
最后,通知一下,YunTable马上将发布其0.11和0.2版,0.11将会是一个fixpack,主要修复YunTable0.1版中存在的内存泄漏问题,而0.2版将会是以feature为主的版本,目标是完整实现其分布式模型,并能够正常的工作,但不要求其能在Production的环境下运作,到时将会在Google Code上进行开源,希望大家有时间的话,可以一起参与,毕竟这是一个非常不错的相互学习的机会。