gbase8s的并行任务(查询、索引和监控)-1

(一) 并行查询的概述

1. 并行查询操作的概述

  • 通过大的数据查询分成许多小的并行任务,每个任务由一个线索进行完成,每个线索运行在不同的物理CPU上,通过多个CPU共同完成一个任务,达到真正的并行
  • gbase8s数据库的并行查询功能称为PDQ(Parallel Data Query),其充分利用了多CPU的能力,并行操作如下
    • 并行扫描
    • 并行连接
    • 并行排序
    • 并行分组
    • 并行汇总
  • 有些操作可能会导致PDQ不生效,不生效的场景如下
    • 使用了cursor stability事务隔离级别
    • 定义为for update或者with hold的游标
    • 相关子查询
    • 查询中包含了SPL调用:select col from tab where clo2=proc();

2. 并行排序的场景

  • 以下场景中,如果有必要,会进行并行排序,如果数据量大,会利用磁盘空间,如果数据量小,则全部在内存中进行排序
    • select语句中具有oracle或group by子句,但不能通过索引去排序
    • select语句通过unique和distinct排除重复的记录
    • 创建索引时需要对键值排序

3. 并行功能的开启

  • 并行参数:
    • PSORT_NPROCS:设置了一个用户连接可以使用的排序线索的数目
      • 大于1表示多个一个用户可以多线索执行
      • 不论是否设置,索引创建的排序部分都会以并行方式进行,这个参数决定了为每个btree appender线索初始化多少个排序线索,没有设置默认为2
    • PDQPRIORITY:
      • 并行度,小于和等于0都会设置为0,表示关闭并行;
      • 1表示并行级别为low
      • 100和100以上都会设置为100,表示high,高并行度
      • 决定排序的内存和扫描的线索,设置大于0,可以提高创建索引的速度
  • 排序和并行数据库查询(PDQ):
    • 当PSORT_NPROCS大于1,不管是否设置了PDQPRIORITY环境变量,排序都将以并行的方式运行
    • 当PSORT_NPROCS大于1,将PDQPRIORITY大于0时,会申请额外的排序线索,并行排序将极大受益
    • 建议:当执行并行数据库查询时,一般将建议初始PSORT_NPROCS设置为2,然后监控磁盘读写和CPU的活动

4. 并行查询的参数配置

  • MAX_PDQPRIORITY:用来限制任何一个PDQ拆线呢可以获得的资源
    • 当使用PDQ时,需要在应用中通过set PDQPRIORITY来设置一个并行的值,这个值*MAX_PDQPRIORITY*DS_MAX_SCANS/10000是一个实际的查询在运行时的并行度
    • 0:表示不能使用并行
    • 通过PDQPRIORITY的值可以平衡OLAP和OLTP的资源,
      • 如白天OLTP较多时,可以设置小点
      • 晚上OLTP较少时,设置大点,允许OLAP获取更多的资源
  • DS_MAX_QUERIES:同时可以并行运行的查询数量
  • DS_TOTAL_MEMORY:定义了并行数据查询可以使用的共享内存上限,这部分内存是从虚拟段中申请的,可以根据需求进行申请
  • DS_MAX_SCANS:限制了服务器可以运行的扫描线索,一般针对一个分片会启动一个扫描线索
  • DATASKIP:查询时,服务器可以跳过离线的chunk
  • DS_NONPDQ_QUERY_MEM:不使用PDQ并行查询时可以使用的内存大小

(二) 并行创建索引的描述

1. 并行创建索引的过程设计和产生索引的操作

  • 前提:如果表的数据页小于100个,服务器将不使用并i选哪个创建索引的技术
  • 产生索引的操作
    • 增加唯一性约束
    • 创建主键
    • 添加约束
    • 使约束生效
    • 上述操作都会出现产生索引的操作

2. 并行创建索引的步骤

  • 并行创建索引过程
    • 先在表中进行取样,取出1000条记录,根据其中的分布决定如何分桶,每个桶的值范围是多少
    • 服务器扫描表中的记录并使用排序的机制对取出来的键值做排序
    • 将并行排序后的值根据各个桶的区域范围,将抽取出来的数据放入到各个桶内
    • 各个线索将各自桶内的数据取出根据规则生成或增补到其中一个子树
    • 由于这些键值事分开进行排序的,所以各个b+子树拆创建好后,可以很快合成完整的子树

3. 并行创建索引期间各种线索的操作

  • 扫描线索读取数据
    • 从共享内存中读取数据,抽取键值,如果不在共享内存中,则扫描线索发送一个请求到AIO VP去读磁盘上的页面
  • 排序线索拿到扫描线索读出的值进行排序,排序键值
  • 扫描线索从共享内存中读取数据,抽取键值,决定放到哪个桶内
    • 决定后,将数据传递给排序线索,排序线索负责对桶中的数据进行排序
  • appender线索创建子树
  • sqlexec线索负责把所有子树合成一个树
  • b-tree appender线索开始生成索引子树之前,扫描和排序线索必须完成他们的工作

4. 并行创建索引申请线索数量的影响因素

  • 表所在的每个dbspace的每个chunk都会申请一个扫描线索
  • 如果PSORT_NPROCS设置为x,排序的线索为(appender thread * x),如果不设置则为2
  • 依赖于索引页面的数目,b-tree appender的配置值事1~6

线索数目

索引页数目

1

<400

2

400~!4000

3

4000~40000

4

40000~200000

5

200000~1000000

6

>1000000

  • 假设在4字节的一个字段上创建一个索引,索引的页面为4KB,由于每个页面最多存储255个数据,255*400=10.2万,由此推断出,低于10.2万键值时,会使用一个appender线索,其他依次类推
    • 4字节*255=1020字节,加上其他信息可以算一个页面
    • 只有filefactor的值为100时,才会存放到255条数据,上述计算都是假设filefactor为100的时候进行计算的
  • 影响因素是服务器上的CPU数量,服务器不允许b-tree appender线索的数目超过CPU Vps的数目

(三) 并行的监控

1. onstat -g mgm

[gbasedbt@iZ2ze4p3q6wy4hzagubdmbZ ~]$ onstat -g mgm
Your evaluation license will expire on 2025-06-24 00:00:00
On-Line -- Up 1 days 09:21:15 -- 4275148 KbytesMemory Grant Manager (MGM)
--------------------------
--当前各个参数设置的值
--限制PDQ查询可以获得的资源数量
MAX_PDQPRIORITY:  100
--同时运行的并行查询数量
DS_MAX_QUERIES:    4
--服务器可以运行的扫描线索
DS_MAX_SCANS:      1048576
--非PDQ查询时可以使用的内存大小
DS_NONPDQ_QUERY_MEM: 20480 KB
--并行查询使用的内存上限
DS_TOTAL_MEMORY:   4096000 KB
-----------正在运行的PDQ数  准备运行但是由于负载或者其他原因推迟的PDQ数量 允许活动的最大数量
Queries:   Active     Ready   Maximum0         0         4
---------PDQ全部可用内存  未使用的内存   正在使用的内存
Memory:     Total      Free   Quantum
(KB)       4096000   4096000   1024000
----指定的扫描线程总数  空闲或者可用的线程数量  扫描中的扫描线程数,最后一个是MGM监控使用的
Scans:      Total      Free   Quantum1048576   1048576         1
----------------------------
--              等待内存的查询数 等待扫描的查询数  具有高优先级的PDQ查询数 正在等待查询的数量 
Load Control:    (Memory)      (Scans)  (Priority)  (Max Queries)   (Reinit)Gate 1       Gate 2      Gate 3         Gate 4     Gate 5
(Queue Length)          0            0           0              0          0Active Queries:  NoneReady Queries:  None
-------------------平均内存量和扫描线程数       最小的使用内存量和扫描线程数
Free Resource        Average #        Minimum #
--------------    ---------------     ---------
Memory               0.0 +- 0.0          512000
Scans                0.0 +- 0.0          1048576
-------------------平均活动和就绪队列长度   最大活动和就绪队列长度  活动和就绪的总长度
Queries              Average #        Maximum #    Total #
--------------    ---------------     ---------    -------
Active               0.0 +- 0.0             0          0
Ready                0.0 +- 0.0             0          0Resource/Lock Cycle Prevention count:  0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/860646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAP ABAP 之OOALV

文章目录 前言一、案例介绍/笔者需求二、SE24 查看类 a.基本属性 Properties b.接口 Interfaces c.友元 Friends d.属性 Attributes e.方法 Methods f.事件 Events g.局部类型 Types …

Vulnhub--AI: WEB: 2

渗透复现 平台框架存在目录穿越漏洞&#xff0c;利用该漏洞读取敏感信息 Ping功能点绕过&#xff0c;进行命令执行操作&#xff0c;反弹shell无果后&#xff0c;利用目录穿越漏洞遍历敏感API&#xff0c;读取到用户SSH登录凭证 SSH登录进行Linux lxd容器提权 知识扩展 目录…

企业运维六边形战士 质量稳定 效率为王

随着信息化的不断深入和扩展&#xff0c;企业IT系统的复杂性和设备多样性日益增加。为了保障业务的高可用性和连续性&#xff0c;企业需要一个全面、高效、智能的一体化运维管理平台。在用户市场的推动下&#xff0c;LinkSLA智能运维管家展现出【六边形战士】的优质属性&#x…

最年轻的国家最高科技奖得主,量子领域科学家:薛其坤

6月24日&#xff0c;2023年度国家最高科学技术奖在京揭晓&#xff0c;李德仁院士、薛其坤院士获得中国科技界崇高荣誉。 薛其坤是凝聚态物理领域著名科学家&#xff0c;取得多项引领性的重要科学突破&#xff0c;包括&#xff1a;他率领团队首次实验观测到量子反常霍尔效应&am…

【c语言】二级指针

1&#xff0c;定义 本质还是从指针的角度去理解&#xff0c;只不过存的指针的值 2&#xff0c;使用方法

博客已迁移

迁移至 烧烤er (makkapakka996.github.io)

vue中v-bind和v-model有什么区别

在Vue.js中&#xff0c;v-bind和v-model都是指令&#xff0c;用于实现数据和DOM元素之间的双向绑定&#xff0c;但它们的使用场景和功能有所区别。 v-bind: v-bind是一个通用指令&#xff0c;用于动态地绑定一个或多个属性&#xff0c;或者一个组件prop到表达式。它可以绑定任何…

怎么在线一次压缩多张图片?分享3款简单的在线图片压缩工具

在日常工作和生活中&#xff0c;经常会需要使用图片处理大小功能&#xff0c;网上有很多的图片压缩工具都能够快速处理图片大小&#xff0c;那么当遇到大量的图片需要压缩大小时&#xff0c;该如何操作才能快速在线压缩图片大小呢&#xff1f;多张图片怎么一次批量压缩&#xf…

面试准备记录

6月25日 今日复习 JVM的内存管理部分&#xff08;1-31题&#xff09; 6月24日 今日学习 类的生命周期&#xff1f;类加载过程&#xff1f;类加载器有哪些&#xff1f;什么是双亲委派模型&#xff1f;为什么要使用双亲委派模型&#xff1f;历史上有哪几次双亲委派模型的破坏…

laser坐标系下的点,转到map坐标系下

laser坐标系下的点&#xff0c;转到map坐标系下 法一&#xff1a; #include <ros/ros.h> #include <tf/transform_listener.h> #include <geometry_msgs/PointStamped.h> #include <sensor_msgs/LaserScan.h> #include <vector> #include <…

Python 全栈体系【四阶】(六十一)

第五章 深度学习 十三、自然语言处理&#xff08;NLP&#xff09; 5. NLP应用 5.2 文本情感分析 目标&#xff1a;利用训练数据集&#xff0c;对模型训练&#xff0c;从而实现对中文评论语句情感分析。情绪分为正面、负面两种 数据集&#xff1a;中文关于酒店的评论&#…

01 _ 重塑“类型思维”

TypeScript 缘起 在过去的十年里&#xff0c;我一直从事前端开发工作&#xff0c;亲自见证了 Atwood 定律&#xff0c;那就是&#xff1a;“任何能用 JavaScript 实现的应用&#xff0c;最终都会用 JavaScript 实现。”如今&#xff0c;从移动终端到后端服务&#xff0c;从 Io…

使用Servlet开发javaweb,请求常见错误详解及其解决办法【404、405、500】

Servlet报错的情况多种多样&#xff0c;涵盖了配置错误、代码逻辑错误、资源未找到、权限问题等多个方面。以下是一些常见的Servlet报错情况及其可能的原因和解决方法&#xff1a; 404 Not Found: 错误原因图示&#xff1a; URL映射 发送请求&#xff0c;出现404错误 原因: 请…

基于jeecgboot-vue3的Flowable流程-自定义业务表单处理(一)支持同一个业务多个关联流程的选择支持

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 这部分先讲讲支持自定义业务表单一个业务服务表单多个流程的支持处理 1、后端mapper部分 如下&#xff0c;修改selectSysCustomFormByServiceName为list对象&#xff0c;以便支持多个 &…

通信系统网络架构_1.局域网网络架构

当今&#xff0c;通信网络从大的方面主要包括局域网、广域网、移动通信网等网络形式。不同的网络会采用不同的技术进行网络构建。以下针对不同的网络给出各自的网络架构以及所采用的技术。 1.概述 局域网&#xff0c;即计算机局部区域网络&#xff0c;是一种为单一机构所拥有的…

Codeforces Round 954 (Div. 3) G2. Permutation Problem (Hard Version)(数论)

题目 给定n(n<5e5)的排列p&#xff0c;求满足pi*pj是i*j倍数的(i,j)对数 实际t(t<1e4)组数据&#xff0c;保证sumn不超过5e5 思路来源 propane(cup_pyy)代码 题解 pi*pjk*i*j (pi/i)*(pj/j)k&#xff0c;比如&#xff0c;(4/3)*(9/2)6&#xff0c; 一定存在pi的约…

Simufact Additive增材制造支撑创建功能

增材制造工艺作为近年来制造行业的顶流&#xff0c;一直备受各行业关注。除了率先大范围展开增材制造应用的航空行业&#xff0c;在汽车、电子乃至医疗行业也都有了不俗的进展。深谙增材制造工艺的学者都直言&#xff1a;使用3D打印简单&#xff0c;但应用好比较难。那是因为这…

常用设计模式实例代码汇总

目录 单例模式 原型模式 外观模式 简单工厂模式 工厂方法模式 抽象工厂方法 策略模式 装饰模式 观察者模式 适配器模式 状态模式(状态类切换) 状态模式(环境类切换) 单例模式 void Main() {Singleton instance1 Singleton.GetInstance();Singleton instance2 Sin…

【高校科研前沿】四川大学刘超研究员为一作在《Geophys. Res. Lett.》发表团队成果:植被形态影响河床泥沙输运

文章简介 论文名称&#xff1a;Plant morphology impacts bedload sediment transport 第一作者及单位&#xff1a;刘超&#xff08;研究员|四川大学水利水电学院&#xff09; 通讯作者及单位&#xff1a;Yuqi Shan&#xff08;四川大学灾后重建与管理研究所&#xff09; 文…

【HashMap和HashSetyi以及散列表的拉链法,线性探测法详解】

&#x1f308;个人主页&#xff1a;SKY-30 ⛅个人推荐&#xff1a;基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 &…