tidb_force_priority 参数的真正含义和影响范围?

按照 系统变量 | PingCAP Docs的说明:
tidb_force_priority
这个参数是用来调整SQL的优先级的,但其作用域为:INSTANCE,也就是:

INSTANCE 作用域变量的更改,设置后会立即对当前 TiDB 实例所有活动连接会话或新连接会话生效,其他 TiDB 实例不生效。更改 不会 被持久化,重启 TiDB 后会 失效

也就是即便设置了这个参数,同台TiDB Server上的优先级还是一样的,就达不到文档中说的效果了。所以这个参数的真正含义(作用域)是?

1赞

对tidb 实例生效啊,如果你有多台 tidb的实例,每个实例有不同的优先级需求,可以用这个变量来区分了

不知道你想怎么理解…

所以,这个不是用来调整用户的优先级,如果想用这个参数的话,得人为的把SQL发往不同的TiDB Server实例?

这样的话,那文档还是修改一下说明吧。例如:

例如,你可以通过设置该变量来确保正在执行 OLAP 查询的TiDB Server优先级低于正在执行 OLTP 查询的TiDB Server

不过不同实例TiDB Server之间的SQL应该是没有关联的,是TiDB发往TiKV的算子上会设置优先级么?

对,最开始 TiKV 上有多个线程池,设置不同的优先级会让这些 Cop Task 发到不同优先级的线程池中去执行

1赞