代码之家  ›  专栏  ›  技术社区  ›  GilliVilla

分布式数据库计算——在RDBMS范式中真的有可能吗?

  •  1
  • GilliVilla  · 技术社区  · 14 年前

    我是在NoSQL环境中问这个问题的,它可以在不昂贵的情况下实现可伸缩性和性能。

    所以,如果我需要实现跨数据库的大规模并行分布式计算… 今天(在RDBMS范式中)有哪些方法可以实现具有高可伸缩性的分布式计算?

    数据库群集和镜像是否对分布式计算有任何贡献?

    3 回复  |  直到 12 年前
        1
  •  2
  •   smartnut007    14 年前

    我想您是在问RDBMS数据库的可伸缩性。谈论基于(Amazon Dynamo,Bigtable)的NoSQL数据库是另一个主题。我说的是HBase、Cassandra等,还有一些商业产品,比如Oracle Coherence,更像是分布式缓存和关键价值存储,简而言之。

    回到RDBMS,

    分片 要缩放RDBMS,可以执行CUSSTOM切分。切分是一种技术,其中多个表可能是多个主机。然后以某种方式决定将某些行分配给某些表。例如,您可以说行1-1M指向表1,行1-2M指向表2等,但从管理的角度来看,这是一个困难的过程。很多大型网站依靠分片进行规模化。其他值得一提的技术还有分区和mysql联合和mysql集群。

    MPP数据库 然后有数据库,有非常多的RDBMS,它们为您进行分布和缩放。TerraData是这些公司中最成功的。我相信他们在某种程度上使用了Postgres核心代码。许多财富500强公司和许多航空公司使用TerraData。但是,它的价格太高了。有一些新的公司,如Greenplum,Vertica,Netezza。

        2
  •  1
  •   jmarranz    12 年前

    除非您是一家具有极端可伸缩性要求的非常大的公司,否则您可以通过构建一个相同的RDBMS实例集群并将它们与JTA事务同步,来横向和酸性地扩展您的数据库。

    看看这个基于Java/JDBC的 article 这个 JEPLayer 使用了框架,但您可以使用直接的JDBC和JTA代码。

        3
  •  0
  •   user78706    13 年前

    在RDBMS范式中:切分。
    在RDBMS范式之外:关键值存储。

    我的选择:(我来自RDBMS背景)Tabular类型的键值存储-HBase。

    在RDBMS范式中,切分不会让您走得更远。
    使用RDBMS范式设计模型,以启动和运行项目。
    使用表格键值存储扩展。

    Sharding:

    考虑分片的一个好方法是将其视为面向用户的帐户
    数据库设计。

    用户帐户接触的所有模式实体都保存在一台主机上。

    当用户创建帐户时,会将用户分配给主机。
    加载最少的主机将获取该用户。

    当用户在创建帐户后登录时,他会连接
    发送给拥有他的数据的主机。

    每个主机都有一组用户帐户。

    这种方法的问题是,如果主机被托管,
    一小部分用户将被屏蔽掉。

    解决方案是让一个复制的备用主机
    当主主机遇到问题时成为主主机。

    此外,它是一个相当严格的过程设置,在那里设计
    不会急剧改变。

    从用户的角度来看,我注意到网站
    有了一个分片的数据库后端,就没有“打开一角硬币”那么快了。
    在他们的平台上创建不同的业务模型。

    将其与真正分布的网站进行对比
    键值存储。这些企业可以承载任何范围的
    服务。他们的平台就是那个——一个平台。
    它不是关系型的,它有一个API接口,
    但这似乎奏效了。