我是在NoSQL的背景下提出这个问题的--它在不昂贵的情况下实现了可伸缩性和性能。
因此,如果我需要实现跨数据库的大规模并行分布式计算...目前(在RDBMS范例中)有哪些方法可以实现高可伸缩性的分布式计算?
数据库集群和镜像对分布式计算有什么贡献吗?
发布于 2010-11-02 11:58:41
我猜您问的是RDBMS数据库的可伸缩性。谈论基于(亚马逊发电机,BigTable )的NoSQL数据库则是另一回事。我说的是HBase,Cassandra等。也有像Oracle Coherence这样的商业产品,简单地说,它更像是分布式缓存和键值存储。
回到rdbms,
切分要缩放RDBMS,可以进行自定义切分。分片是一种技术,在这种技术中,多个表可能是多个主机。然后,您决定以某种方式将某些行分配给某些表。例如,您可以说行1-1M分配给table1,1M-2M分配给table2等等。但是,从管理的角度来看,这是一个困难的过程。很多大型网站都是依靠分片来扩展的。值得一提的是分区和mysql联合以及mysql集群。
MPP数据库和数据库都是RDBMS,它可以为你做分发和扩展。Terradata是这些公司中最成功的。我相信他们在某种程度上使用了postgres核心代码。相当多的财富500强公司和很多航空公司都在使用Terradata。但是,它贵得离谱。还有一些较新的公司,如greenplum,vertica,netezza。
发布于 2012-12-20 04:48:52
除非您是一家具有极端可伸缩性要求的非常大的公司,否则您可以通过构建一组相同的RDBMS实例并将它们与JTA事务同步来横向和ACID地扩展您的数据库。
看一下这个基于Java/JDBC的article,虽然使用了JEPLayer框架,但也可以直接使用JDBC和JTA代码。
发布于 2012-01-20 02:12:10
在RDBMS范例中:分片。
在RDBMS范例之外:键值存储。
我的选择:(我来自关系型数据库管理系统背景) tabluar类型的键值存储- HBase。
在RDBMS范例中,分片不会让您走得太远。
使用RDBMS范型来设计您的模型,让您的项目启动并运行。
使用表格式的键值存储向外扩展。
分片:
考虑分片的一个好方法是将其视为面向用户帐户
数据库设计。
用户帐户接触的所有模式实体都保存在一台主机上。
当用户创建帐户时,将用户分配给主机。
负载最小的主机获得该用户。
当该用户在帐户创建后登录时,他将被连接
发送到拥有他的数据的主机。
每台主机都有一组用户帐户。
这种方法的问题是,如果主机被冲洗,
一小部分用户将被屏蔽。
解决方案是使用复制备用主机,该主机
当主要主机遇到问题时,将成为主要主机。
此外,这是一个相当严格的流程设置,其中设计
而不是显著的改变。
从用户的角度来看,我注意到网站
使用分片的DB后端,他们不会那么快地“打开一毛钱”
在他们的平台上创建不同的商业模式。
这与那些真正的分布式网站相比
键值存储。这些业务可以托管任何范围的
服务。他们的平台就是一个平台。
它不是关系型的,而且它有一个API接口,
但它似乎就是起作用了。
https://stackoverflow.com/questions/4074801
复制相似问题