ByConity icon indicating copy to clipboard operation
ByConity copied to clipboard

请问下查询时,server怎么选择 vm-default 执行

Open lzf575 opened this issue 11 months ago • 4 comments

请问下查询时,server怎么选择 vm-default 执行?

Question

例如有 4 个 vm-default, 这时server 同时收到 4个 查询请求,
这时4个查询请求会不会都选择同一个 vm-default 执行? 有没有配置,可以轮询或随机选择 vm-default 执行?

lzf575 avatar Feb 10 '25 09:02 lzf575

可以将worker分为不同的计算组,查询sql最后可以加参数 SETTINGS virtual_warehouse='vw-uuid' 就可以指定计算组进行查询

ixnzh avatar Feb 11 '25 10:02 ixnzh

@ixnzh 如果4个 vw-default 是同一个计算组的话, 查询时也没有指定virtual_warehouse,默认 vw-default 怎么执行查询的? 例如当前同时查询4个sql, 每个sql 都会下发给1个计算组的 4个 vw-default 去查询么,实际就是查询16次?

lzf575 avatar Feb 19 '25 03:02 lzf575

@ixnzh 如果4个 vw-default 是同一个计算组的话, 查询时也没有指定virtual_warehouse,默认 vw-default 怎么执行查询的? 例如当前同时查询4个sql, 每个sql 都会下发给1个计算组的 4个 vw-default 去查询么,实际就是查询16次?

会根据不同的执行计划,有不同的执行方式。比如如果有cache在某个worker上,命中cache的情况下是由这台worker来进行计算的。

ixnzh avatar Feb 19 '25 07:02 ixnzh

@ixnzh 如果4个 vw-default 是同一个计算组的话, 查询时也没有指定virtual_warehouse,默认 vw-default 怎么执行查询的? 例如当前同时查询4个sql, 每个sql 都会下发给1个计算组的 4个 vw-default 去查询么,实际就是查询16次?

会根据不同的执行计划,有不同的执行方式。比如如果有cache在某个worker上,命中cache的情况下是由这台worker来进行计算的。

如果每个worker 都只有部分cache, 是不是每个worker 都需要计算。然后计算结果再汇总到一个worker 返回?还有,它怎么判断哪个worker 有cache,是一致性hash么? 按什么来hash?

lzf575 avatar Feb 20 '25 08:02 lzf575