分布式数据库中的数据分配

4
如何在分布式数据库中优化数据分配?
有没有软件产品来解决这个问题?
例如:
分布式数据库有一些连接的服务器。每个服务器同时是该数据库的客户端。
数据库有许多表。
我们统计了每个客户端对特定表的查询次数。
每个服务器存储数据的价格不同。
每个服务器和客户端之间传输的价格已知。
目标:以最佳方式在服务器上分配所有表(或表的部分)。
为了解决这个问题,我们可以应用各种启发式算法:遗传算法、进化策略、蚂蚁算法等。
但我找不到任何已经实现这些算法的现成软件工具。
是否有工具可用于解决分布式数据库(Oracle或其他)的这个问题?
是否有人关注这个问题?
也许有人有已经优化了查询统计信息的分布式数据库系统示例?
谢谢!

“在服务器上分配所有表”是什么意思?您是在询问如何在存储上分配数据吗?还是在询问有关查询负载平衡的问题? - Jeffrey Kemp
我的意思是数据分布。例如,分布的结果是:服务器1上的表a和c,服务器2上的表b。 - Artem Frolov
如果所有客户端都通过同一个Oracle实例进行访问,那么数据在物理存储位置上有什么区别呢? - kurosch
Kurosch,从服务器A存储或传输数据的成本可能高于从服务器B存储或传输的成本。因此,目标是找到每个数据部分的最佳分配方案。 - Artem Frolov
3个回答

0

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


0

0

我曾经寻找过类似的工具,但不幸的是,目前没有现成的工具可以用于数据库分析。不过,你可以在各种研究项目、大学论文等中找到很多信息。

作为替代方案,可以使用现成的数学工具来优化数据本地化/相关性以适应特定客户。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接