+ -
当前位置:首页 → 问答吧 → 分布式数据库的两个方向探讨

分布式数据库的两个方向探讨

时间:2010-10-11

来源:互联网

本帖最后由 osdba 于 2010-10-11 16:01 编辑

目前在数据库的分布方面,有两个不同的方向:
一种是数据存储设计到到数据分布算法都完全由自己实现的分布式数据库引擎,
另一种是在底层使用现有成熟的关系型数据库,上层再实现一套分布式引擎的系统。
前一种中,Cassandra就是其突出代表,而后一种以PostgreSQL数据库为基础的分布式方案有plproxy、pgpool、greenplum、pgmaster等等。
这两种分布式方案各有优缺点:
第一种方案:
优点:
在特定的场景上,性能可能更高一些,集群的机器数可以更多一些。
缺点:
1. 不够成熟。例如Digg公司就是因为把技术架构从原先成熟的LAMP迁移到Cassandra上去,由于Cassandra技术的不稳定,Digg的技术人员
无法解决这些问题,网站遭遇到了重大的打击,导致了技术副总裁John Quinn的为此而卷铺盖走人。见http://www.dbthink.com/?p=639&cpage=1
2. 由于所有都是由自己来实现,所以程序的实现相当复杂,程序的可维护性不好,需要很高的维护成本。
3. 部分功能不完善。既没有传统的关系型数据库的各种各样成熟的备份方案,一些激动人心的功能可能还在开发中。

第二种方案:
优点:
1. 方案成熟。由于底层是使用传统的关系型数据库,而仅是实现上层做数据分布的部分,所以一般来说这种方案的实现成本低,程序相对简单,所以bug也比较少,运行也比较稳定。
2. 维护成本低。由于低层是传统的关系型数据库,底层的维护与原先的数据库维护完全一样,传统数据库的备份方案可以直接使用。

虽然第二种方案看起来创新程度不如第一种,但我是比较倾向于使用第二种方案。原因是第二种方案比较成熟,维护成本低。
另外说一说NoSQL,现在NoSQL很火,有点象病毒一样在开发人员中传播,这也很容易理解,因为生活在科技前沿,对于大部分开发人员来讲,是令人兴奋的,但是企业在实施时必须非常谨慎,不要重蹈Digg的覆辙。

其实,PostgreSQL与MySQL相对,除支持复杂SQL、功能丰富以外,最大的优势就是有很多开源的做数据水平拆平的开源软件,如pgpool、plproxy等等方案,使用这些方案可才轻松支持海量数据的分布式方案。

作者: osdba   发布时间: 2010-10-11

CAP的命题证明了分布式数据库在基本就是水中月

作者: wolfop   发布时间: 2010-10-12