如何优化分布式数据库中的数据分配?
是否有任何软件产品可以解决这个问题?
例如:
分布式数据库有一些连接的服务器。每个服务器同时是该数据库的客户端。
数据库有很多表。
我们有来自每个客户端到特定表的查询统计信息。
每台服务器的数据存储都有一定的价格。 每一对服务器和客户端都有一些转移价格。
目标:以最佳方式在服务器上分配所有表(或表的一部分)。
要解决这个问题,我们可以应用各种启发式算法:遗传算法,进化策略,蚂蚁算法等。
但我找不到任何可以实现这些算法的现成软件工具。
是否有任何工具可以解决分布式数据库(Oracle或其他)的问题?
有人关心吗?
也许有人用分布式数据库的具有查询统计信息的系统的例子已经以这种方式进行了优化?
谢谢!
答案 0 :(得分:0)
我已经找到了类似的东西,但令人遗憾的事实是,没有现成的工具可以对数据库进行这种分析。但是,您可以通过各种研究项目,大学论文等找到大量信息。
作为替代方案,可以使用现成的数学工具对其进行建模,以优化与特定客户端的数据本地化/关联。
答案 1 :(得分:0)
我认为将数据存储在集中式数据库中并为各个位置配置缓存要容易得多。由于不同的位置不太可能位于同一网格中,因此缓存配置应该是同步缓存,因为在异步缓存解决方案中,数据库中的更新顺序可能不是应用更新的顺序。 与直接访问数据库时相比,缓存将减少大量查询网络流量并提高远程位置的性能。 Oracle内存缓存数据库选项值得研究。适用于10.2.0.4及更高版本的数据库,使用以前称为TimesTen的11.2.1.8版本。一个很好的选择。 您要求的算法是有效的缓存算法。确保经常使用的数据以最优惠的价格接近消费者。如果您可以在内存上花费更多,那么可以使用更多数据.LRU将负责清理缓存中不常使用的数据。
答案 2 :(得分:0)
解决此问题的分布式数据库的一个示例是Clustrix,它是唯一具有独立索引分发的数据库。 Clustrix是一个从头开始构建的数据库,是一个分布式MySQL替代品。
有关how Clustrix does data distribution的更多信息 和distributed evaluation model