【问题标题】:Data allocation in the distributed databases分布式数据库中的数据分配
【发布时间】:2011-05-06 17:56:51
【问题描述】:

如何优化分布式数据库中的数据分配?

有解决这个问题的软件产品吗?

例如:

分布式数据库有一些连接的服务器。每个服务器同时是这个数据库的一个客户端。

数据库有很多表。

我们统计了每个客户端对特定表的查询。

每台服务器的数据存储都有一定的价格。 每对服务器和客户端都有一定的传输价格。

目标:以最佳方式分配服务器上的所有表(或部分表)。

为了解决这个问题,我们可以应用多种启发式算法:遗传算法、进化策略、蚂蚁算法等。

但我找不到任何可以实现这些算法的现成软件工具。

是否有任何工具可以解决分布式数据库(Oracle 或其他)的这个问题?

有人关心吗?

也许有人有具有查询统计的系统示例以及以这种方式优化的分布式数据库?

谢谢!

【问题讨论】:

  • “分配服务器上的所有表”是什么意思?您是否在询问如何在存储上分配数据?还是您在询问查询的负载平衡?
  • 我的意思是数据分布。比如分发的结果:server1上的表a和c,server2上的表b
  • 如果所有的客户端都经过同一个Oracle实例,那么数据的物理存储位置有什么区别?
  • kurosch,从服务器 A 存储或/和传输数据的成本可能大于从服务器 B 存储或/和传输数据的成本。因此,目标是 - 为每个部分找到最佳分配数据

标签: database oracle optimization genetic-algorithm distributed-database


【解决方案1】:

我一直在寻找类似的东西,但可悲的事实是,没有现成的工具可以对数据库进行这种分析。但是,您可以找到很多信息,包括各种研究项目、大学论文等。

作为替代方案,这可以使用现成的数学工具进行建模,以优化与特定客户的数据本地化/相关性。

【讨论】:

    【解决方案2】:

    我认为将数据存储在集中式数据库中并为各个位置配置缓存要容易得多。因为不同的位置不可能在同一个网格中,所以缓存配置应该是同步缓存,因为在异步缓存解决方案中,数据库中的更新顺序可能不是应用更新的顺序。 与应该直接访问数据库的情况相比,缓存将减少大量查询网络流量并提高远程位置的性能。 Oracle In-Memory Cache Database Option 值得研究。适用于 10.2.0.4 及更高版本的数据库,使用以前称为 TimesTen 的 11.2.1.8 版本。一个很好的选择。 您要求的算法是有效的缓存算法。确保经常使用的数据以最优惠的价格靠近消费者。如果您可以在内存上花费更多,则可以容纳更多数据。LRU 将负责从缓存中清除不常用的数据。

    【讨论】:

      【解决方案3】:

      解决这个问题的分布式数据库的一个例子是Clustrix,它是唯一具有独立索引分布的数据库。 Clustrix 是一个从头开始构建的数据库,旨在替代分布式 MySQL。

      更多关于how Clustrix does data distributiondistributed evaluation model

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-04
        • 2017-05-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多