数据仓库服务 GAUSSDB(DWS)-query_band负载识别:query_band支持的负载行为

时间:2024-04-02 16:41:18

query_band支持的负载行为

query_band是一个session级别的GUC参数,作为作业标识符本身没有特殊含义,数据类型为字符型,支持赋值任何字符串。但是为方便区分和设置,query_band负载识别仅支持识别键值对形式的query_band,示例:

SET query_band='JobName=abc;AppName=test;UserName=user';

其中,‘JobName=abc’,‘AppName=test’以及‘UserName=user’都是一个独立的键值对。query_band键值对规格:

  • query_band使用键值对方式设置,即'key=value';session内支持设置多个query_band键值对,多个键值对之间使用分号分隔。query_band键值对和query_band参数值长度的上限均为1024个字符。
  • query_band键值对支持的有效字符包括:数字0~9、大写字母A~Z、小写字母a-z、'.'、'-'、'_' 以及'#'。

query_band负载识别以键值对为单位设置和识别负载行为,目前支持的负载行为,如表1所示:

表1 QUERY_BAND支持负载行为

类别

行为

行为表现

负载管理(workload)

资源池(respool)

query_band关联资源池

负载管理(workload)

优先级(priority)

队列内优先级

次序(order)

队列(respool)

目前为无效字段,主要用于后续扩展。

query_band搜索次序

其中,行为类别用于负载行为归类,不同的负载行为可能属于同一个类别,比如资源池和优先级同属于负载管理类别;负载行为代表query_band键值对关联的是哪种负载行为;行为表现用于记录具体的负载行为是什么;负载类别中的次序用于标记query_band负载行为识别的优先级,一个session内设置多个query_band键值对时,优先使用次序较小的query_band键值对识别负载行为。每一个query_band键值对都可以对应0个或多个负载行为,但是一种负载行为只能关联一个。query_band负载行为详细说明如下:

  • 资源池:query_band支持关联资源池,作业执行时,若query_band指定了资源池,则使用query_band关联的资源池,否则使用用户关联的资源池。
    • query_band关联资源池时,资源池不存在报错退出,关联失败。
    • query_band关联资源池时,记录query_band与资源池依赖关系。
    • query_band关联资源池删除时,提示有query_band依赖,资源池删除失败。
  • 队列内优先级:query_band支持关联作业优先级,支持高中低(High/Medium/Low)三个优先级,同时提供Rush作为特殊优先级(绿色通道),默认优先级为Medium。正常实践过程中,大部分作业使用Medium优先级,优先级较低作业使用Low优先级,特权作业使用High优先级,High作业不建议过多。Rush优先级作为特殊场景下应急使用,平时不建议使用。

    队列内优先级实现队列内排队优先级:

    • 静态负载管理场景下,CN并发不足时,触发CN全局队列排队,CN全局队列为优先级队列。
    • 动态负载管理场景下,DN内存不足时,触发CCN全局排队,CCN全局队列为优先级队列。
    • 资源池并发或内存不足时,触发资源池排队,资源池队列为优先级队列。

    以上优先级队列均遵守以下调度规则:

    • 优先级高作业优先调度。
    • 优先级高作业全部调度完之后调度优先级低作业。
    • 动态负载管理场景下,CN全局队列不支持query_band优先级。
  • 次序:支持设置query_band识别次序,未设置识别次序的使用默认次序-1。除默认次序外,不存在次序相同的两个query_band。设置次序时对query_band次序进行校验,存在相同次序时,已存在次序递归+1直到不存在相同次序为止。
    • session内设置多个query_band键值对时,使用次序较小的query_band键值对作为负载识别的query_band。
    • 次序最小为0,默认次序-1为最大次序。
    • 次序都为默认次序时,使用设置靠前的query_band作为负载识别的query_band。
    • 示例:set query_band='b=1;a=3;c=1'; b=1,其中b=1次序-1,a=3次序4,c=1次序1,则使用c=1作为负载识别的query_band,此设计可提供负载管理员对负载调度调整能力。
support.huaweicloud.com/performance-dws/dws_10_0065.html