1

Vertica 集群中的连接池/分布如何?

我试图了解 Vertica 中的连接是如何处理的!就像 Oracle 处理它的连接一样,它是侦听器,或者连接如何在集群内平衡(为了更好的分布)。

4

1 回答 1

4

Vertica 处理连接的流程基本如下:

  • 一个节点接收连接,使其成为Initiator Node.
  • 发起者节点生成查询执行计划并将其分发给其他节点。
  • 节点填写执行计划的任何节点特定详细信息
  • 节点执行查询
  • (这里忽略一些东西)*
  • 节点将结果集发送回发起节点
  • 发起者节点收集数据并进行最终聚合
  • 发起者节点将数据发送回客户端。

通过 Vertica 进行连接的推荐方法是通过负载平衡器,因此没有单个节点会成为故障点。Vertica 本身不会在节点之间分配连接,而是将查询分配给其他节点。

我不太熟悉 Oracle 或系统如何进行数据连接过程的细节;所以希望我不会离你正在寻找的东西太远。

根据 /my/ 的经验,每个节点都可以处理多个连接。一旦您尝试将更多内容连接到节点,它将拒绝连接。这是从连接到 map 函数的 map-reduce 作业中体验到的。

*根据查询/数据/分区,可能需要在后台进行一些数据传输以完成每个节点的查询。发生这种情况时,它会减慢查询速度。

于 2012-08-30T14:45:10.770 回答