实现数据库分布式的两个方向探讨
时间:2010-10-11 来源:osdba
目前在数据库的分布方面,有两个不同的方向,一种是数据存储到数据分布算法都完全由自己实现分布式引擎,另一个方向是在底层使用现有成熟的关系型数据库,上层再实现一套分布式引擎的系统。 前一种中,Cassandra就是其突出代表,而后一种,我们公司的mysql+corbar方案就是其突出代表,其他以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的覆辙。
相关阅读 更多 +