当前位置: 首页 > news >正文

DM线程的管理知识学习

学习者:张源凯

目录

2、监听线程

3、工作线程

4、IO线程

5、调度线程

6、日志FLUSH线程

7、日志归档线程

8、日志APPLY线程

9、MAL系统相关线程

10、线程信息的查看

1、DM线程概括

DM服务器使用”对称服务器构架”的单进程,多线程结构。这里所指的线程即为操作系统的线程。线程分为多种类型,不同类型的线程完成不同的任务。DM数据库服务器是共享的服务器,允许多个用户连接到同一个服务器上,服务器进程称为共享服务器进程。

DM进程中主要包括监听线程、IO线程、工作线程、调度线程、日志线程等,以下分别对它们进行介绍。

2、监听线程

监听线程主要任务是在服务器端口上进行循环监听,一旦有来自客户的连接请求,监听线程被唤醒并生成一个会话申请任务,加入工作线程的任务队列,等待工作线程进行处理。它在系统启动完成后才启动,并且在系统关闭时首先被关闭。

DM服务器所有配置端口的范围为1024-65534。当客户端发起连接时,由操作系统为客户端工具自动分配一个端口用于与DM服务器进行通信。对于数据守护、DMDSC、DM MPP、和DMDPC等分布式数据库中各实例节点之间的通信,发起连接的节点也由操作系统自动分配端口,所以配置时,除了各实例指定的端口外,发起连接的实例也会有操作系统自动分配的用于与其它实例进行通信的端口。

3、工作线程

工作线程是DM服务器的核心线程,负责服务器各种类型任务的处理及所有实际的数据相关操作。工作线程包括任务工作线程和会话工作线程等。

任务工作线程复杂处理服务器内部生成并加入对应任务队列的各项任务。任务工作线程空闲时从任务队列依次摘取任务并进行处理,当任务队列中的任务堆积时,系统会增加任务工作线程数量以减少任务堆积。

会话工作线程负责处理会话的请求任务,分为非线程池模式和线程池模式。

非线程池模式是”一对一服务”:每个会话都有自己专属的工作线程,从头到尾处理这个会话的所有任务,不用换”人”,效率更高。

线程池模式是”共享团队服务”:一开始有固定数量的工作线程,所有会话的请求先汇总到一个任务队列里,这些流程再轮流从队列里拿任务处理。

4、IO线程

当事务需要的数据页不在缓冲区中时,如果在工作线程中直接对那些数据页进行读写,将会使系统性能变得非常糟糕,而把IO操作从工作线程中分离出来则是明智的做法。IO线程的职责就是处理这些IO操作。

DM Server需要进行IO操作的时机主要有以下三种:

  • 需要处理的数据页不在缓冲区中,此时需要将相关数据页读入缓冲区;
  • 缓冲区满或系统关闭时,此时需要将部分脏数据页写入磁盘;
  • 检查点到来时,需要将所有脏数据页写入磁盘。

5、调度线程

  1. 调度线程用于接管系统中所有需要定时调度的任务。调度线程每秒钟轮询一次,主要有:
  2. 检查系统级的时间触发器,如果满足触发条件则生成任务加到任务工作线程的任务队列由任务工作线程执行;
  3. 清理SQL缓存,计划缓存中失效的项,或者超出缓存限制后淘汰不常用的缓存项;
  4. 执行动态缓冲区检查;
  5. 自动执行检查点;
  6. 会话超时检测;
  7. 必要时执行数据更新页刷盘;
  8. 唤醒等待的工作线程。7、

6、日志FLUSH线程

任何数据库的修改,都会产生重做REDO日志,为了保证数据故障恢复一致性,REDO日志的刷盘必须在数据页刷盘之前进行。事务运行时,会把生成的REDO日志保留在日志缓冲区中,当事务提交或者执行检查点时,会通知FLUSH线程进行日志刷盘。

7、日志归档线程

日志归档线程包含异步归档线程,负责远程异步归档任务。如果配置了非实时归档,由日志FLUSH线程产生的任务会分别加入日志归档线程,日志归档线程负责从任务队列中取出任务,按照归档类型做相应归档处理。

将日志FLUSH线程和日志归档线程分开的目的是为了减少不必要的效率损失,除了远程实时归档外,本地归档、远程异步归档都可以脱离FLUSH线程来做,如果放在FLUSH线程中一起做会严重影响系统性能。

8、日志APPLY线程

在配置了数据守护的系统中,创建了一个日志APPLY线程。当服务器作为备库时,每次接收到主库的物理REDO日志生成一个APPLY任务加入到任务队列,APPLY线程从任务队列中取出一个任务在备库上将日志重做,并生成自己的日志,保持和主库数据的同步或一致,作为主库的一个镜像。备库数据对用户只读,可承担报表、查询等任务,均衡主库的负载。

在数据库的各种活动中,用户常常需要数据库完成在某个时间段内反复进行某种操作等。定时器线程就是为这种需求而设计的。

DM server需要进行定时操作的事件主要有以下几种:

  1. 逻辑日志异步归档;
  2. 异步归档日志发送;
  3. 作业调度。

9、MAL系统相关线程

MAL系统是DM内部高速通信系统,基于TCP/IP协议实现。服务器的很多功能都是通过MAL系统实现通信的,例如数据守护、MPP、远程日志归档等。MAL系统内部包含一系列线程,有MAL监听线程,MAL发送工作线程、MAL接收工作线程等。

10、线程信息的查看

V$THREADS:记录当前系统中活动线程的信息

V$PROCESS:记录服务器进程信息

社区地址:https://eco.dameng.com

http://www.dtcms.com/a/483030.html

相关文章:

  • System V IPC:Linux进程通信的标准方案
  • 免费的舆情网站app下载ui设计手机界面
  • Spring 三级缓存
  • 怎么样看网站用什么程序做的开发公司经营范围
  • 小广告网站音乐网站系统怎么做
  • 单片机中的TVS管
  • c++最常用的几种设计模式
  • 河南平台网站建设公司临沂企业自助建站系统
  • 下载 asp 网站源码响应式网站 翻译代码
  • 大气医院网站源码河北省住房和城乡建设厅信用网站
  • 【agent】AI 数字人构建10:FunASR 1:语音识别C++服务/客户端构建
  • 教育机构网站建设方案书企业邮箱注册需要多少钱
  • 河南省建设工程监理协会网站cms 导航网站
  • Centos Stream 8 Tomcat学习
  • 网站系统cmsphp教育网站开发工作
  • 在Ubuntu22.04和24.04中安装Docker并安装和配置Java、Mysql、Tomcat
  • 【Linux】线程同步与互斥(1)
  • 网站开发英语英语义乌网八方资源家1688网商网
  • 基于单片机的PID调节脉动真空灭菌器上位机远程监控设计
  • 汕头网站关键词优化教程资源分享网站怎么做
  • STM32H7xx 运行 LWIP 时的 MPU 配置介绍 LAT1510
  • 能动框架战场:如何摆脱供应商锁定并在下次AI战争中生存
  • 免费试用网站空间人人开发接单官网
  • 视联网技术产业观察与分析:视频隐私与安全防护
  • 南通网站建设祥云深圳罗湖网站设计公司
  • 基于蚁群算法优化BP神经网络的实现方法
  • 《Effective Java》第10条:覆盖 equals 时请遵守通用规定
  • 广东广州快速网站制作平台鄂州网站建设哪家好
  • 安卓android自动化测试-uiautomator/uiautomator2
  • 天津 网站设计公司门户网站制作定做