【问题标题】:Fastest way to read from database table in cluster environment在集群环境中读取数据库表的最快方法
【发布时间】:2012-06-14 02:53:30
【问题描述】:

在集群环境中从非常大的数据库表中读取数据的最佳方法是什么。

假设我们需要尽可能快地读取巨大的数据库表,然后将这些数据发送到 jms 队列。我们希望避免读取相同的数据,因为它需要处理,所以最好不要交叉。而且这个应用程序要部署在 jboss 集群中,所以节点应该知道如何通信。

所以在一个节点的情况下——非集群环境我只能让一个进程读取表。 在两个节点的情况下 - 这种读取应该是如何协调以避免两个节点读取相同的数据......三个节点等......

不知道目标环境中有多少节点,节点可以使用 db table 或 jboss 缓存进行通信

因此很明显,每个进程读取块或页面将提供最佳性能。

在简单的 java 多线程环境中这将是一件容易的事,因为我们知道有多少线程将被读取,并且很容易计算如何划分页面并将页面读取分配给单个线程。

但是在不知道有多少节点的情况下,节点之间应该有一些协议来通信和优化读取。

【问题讨论】:

    标签: database multithreading performance jboss cluster-computing


    【解决方案1】:

    由于您必须保持庞大的数据库数据分布,我建议您查看某种分布式哈希表。我在一个具有相同要求的企业项目中使用了GemFire,它已经得到了充分证明。但是你总是有最大数据库连接的限制,所以你不能无限增长。

    【讨论】:

      猜你喜欢
      • 2018-09-06
      • 2012-06-10
      • 2012-09-24
      • 1970-01-01
      • 2012-05-17
      • 2013-08-19
      • 2018-08-30
      • 2011-05-04
      • 1970-01-01
      相关资源
      最近更新 更多