调整 Tuple Mover 池设置

场景 1

在重负载操作期间,您偶尔会注意到 ROS 容器的数量激增。您希望 Tuple Mover 更主动地执行合并以合并 ROS 容器,并避免 ROS 推回。

解决方案

使用 ALTER RESOURCE POOL 增加 TM 资源池 中 MAXCONCURRENCY 的设置。此设置确定有多少线程可用于合并。默认情况下,此参数设置为 7。Vertica 将一半线程分配给处于活动状态的分区,其余一半根据需要分配给处于活动状态和非活动状态的分区。如果 MAXCONCURRENCY 设置为奇整数,Vertica 会向上舍入以支持处于活动状态的分区。

例如,如果您将 MAXCONCURRENCY 增加到 9,则 Vertica 会将五个线程专门分配给处于活动状态的分区,并将剩余的四个线程分配给处于活动状态和非活动状态的分区。

场景 2

您有一个专用于时间敏感型分析查询的辅助子群集。您希望限制此子群集上可能干扰其处理查询的任何其他工作负载,并同时释放内存以执行查询。

默认情况下,每个子群集都有一个用于 Tuple Mover 操作的内置 TM 资源池,该资源池可用于执行 Tuple Mover 合并操作。TM 池消耗可用于查询的内存。此外,合并操作可能会给子群集的处理稍微增加一点开销。您希望重新分配由 TM 池消耗的内存,并阻止子群集运行合并操作。

解决方案

使用 ALTER RESOURCE POOL 覆盖辅助子群集的全局 TM 资源池,并将其 MAXMEMORYSIZE 和 MEMORYSIZE 都设置为 0。这允许您使用由全局 TM 池消耗的内存来运行分析查询,并防止为子群集分配要执行的 TM 合并操作。