暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a加载并行度参数parallel使用

原创 思考的风 2022-09-20
571

加载SQL语句中,有个设置加载并行度的参数PARALLEL,合理设置该值可以更好的利用GBase8a集群所在系统资源,提高加载效率,以下介绍一些设置该值的思路。

 

在手册里提及:PARALLEL用来控制集群加载并行度,取值范围[0,1024]。默认值为0,表示并行度取值是线程池最大可用线程数。

 

注意:设置为默认值0,并不代表使用的是当前集群可用的最大加载并行度,其值与设置的单机参数gbase_parallel_max_thread_in_pool相关gbase_parallel_max_thread_in_pool默认是cpu核数*2,而加载SQL里PARALLEL设置为0,则并行度取值是gbase_parallel_max_thread_in_pool的一半)。而在实际使用中,可以设置该参数值为比线程池最大可用线程数大一些的值。

 

在集群单机层也存在并发控制参数,与加载SQL参数PARALLEL存在关联,具体如下:

   执行命令在单机查看这3个单机层并发控制参数,如下:

| gbase_parallel_degree                      | 0    |

| gbase_parallel_execution                  | ON |

| gbase_parallel_max_thread_in_pool | 8    |


   首先,单机并行启用开关 gbase_parallel_execution 与 加载SQL参数PARALLEL直接相关。如前所示,gbase_parallel_execution默认为on,即打开并发控制,此时,加载SQL参数PARALLEL才有效,单机采用并行处理。一旦单机层将该参数设置为off,则加载SQL参数PARALLEL也无法生效。

 

   其次,经过测试,发现加载SQL参数PARALLEL为 0 时,实际并行度取值与gbase_parallel_max_thread_in_pool相关,为gbase_parallel_max_thread_in_pool的一半。

 

   另,单机层并发控制的第3个参数 gbase_parallel_degree,经测试发现,与加载SQL参数PARALLEL为 0 时的并行度无直接关系。按描述,gbase_parallel_degree为1时,表示单个SQL不启动并行,但是实际测试发现,此时加载SQL参数PARALLEL取值为0,仍启动了并行度。



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论