【GaussDB】多线程架构概述


风晓
风晓 2024-01-13 08:27:34 49777 赞同 0 反对 0
分类: 资源 标签: 国产数据库
【GaussDB】多线程架构概述

GaussDB内核源自PostgreSQL,但在架构上进行了大量改造,其中一个调整就是将多进程架构修改为多线程架构。GaussDB在启动后只有一个进程,后台任务都是以一个进程中的线程来运行。对于客户端的新连接,在非线程池模式下也是以启动一个业务线程来处理。在多线程架构下更容易实现多个线程资源的共享,如并行查询、线程池等。

GaussDB中主要线程的介绍

GaussDB的后台线程是不对等的,其中Postmaster是主线程,其他线程都是它创建出来的。下面简单介绍GaussDB的后台线程功能。

PostmaPostmaster

GaussDB数据库主线程。主要有两个功能:一是对连接进行监听,接收新的连接;二是监控所有子线程的状态,并且根据子线程退出状态进行处理,如果线程是FATAL退出,则重新拉起子线程。如果线程是PANIC退出,则进行整个数据库重新初始化。保证数据库的正常运行。

Startup

数据库启动线程。数据库启动时Postmaster主线程拉起的第一个子线程,主要完成数据库的日志REDO(重做)操作,进行数据库的恢复。日志REDO操作结束,数据库完成恢复后,如果不是备机,Startup线程就退出了。如果是备机,那么Startup线程一直在运行,REDO备机接收到新的日志。

Bgwriter

后台数据写线程。周期性的把数据库数据缓冲区的内容同步到磁盘上。

Checkpointer

检查点线程。进行检查点操作,完成数据库的周期性检查点和执行检查点命令。

Walwriter

后台WAL写线程。主要功能是周期性的把日志缓冲区的内容同步到磁盘上。

Stat

数据库运行信息统计收集线程。主要功能是收集各个线程操作数据库数据的统计信息,进行汇总后写入数据库的统计文件中,供查询优化分析和垃圾清理使用。

Sysloger

运行日志写线程。主要功能是把各个线程的运行日志信息写到运行日志文件中。

VacuumLaunch

垃圾清理启动线程。主要有两个功能:一是通知Postmaster 启动一个垃圾清理线程;二是平衡各个垃圾清理线程的负载。

Vacuum Worker

垃圾清理线程。主要功能是对GaussDB数据库的垃圾数据进行清理。

Arch

日志归档线程。主要功能是完成归档操作,把在线日志拷贝到归档目录。

Postgres

服务线程。在非线程池模式下,每个客户端连接对应一个服务线程,主要功能是接收客户端的操作请求,代表客户端在服务器完成数据库操作。

GaussDB中线程间通信方式

GaussDB后台线程之间紧密配合,共同完成了数据库的数据处理任务。这些后台线程之间需要交换信息来协调彼此的行为。GaussDB多线程通信使用了原来的PostgreSQL的多进程通信方式。

共享线程

在数据库初始化时,Postmaster线程通过OS(操作系统)申请一块大的共享内存,并且完成初始化工作。GaussDB使用到的所有共享内存都是这块内存的一部分。线程之间的一些信息交换就是通过共享内存完成的,共享内存的访问需要加锁保护

信号

对于一些紧急任务的处理,GaussDB使用信号通知作为线程间通信的手段。因为信号可以中断处理线程当前的任务,立即响应信号对应的任务。

TCP

客户端连接数据库服务器时,一般使用TCP进行通信。

UNIX域套接字协议

如果是本地客户端,即客户端和服务器在同一个机器上,并且是UNIX操作系统,可以使用UNIX域套结字协议建立客户端和服务器进程的通信。

UDP

UDP(user datagram protocol,用户数据报协议)是不可靠协议,主要用于后台线程向统计线程发送统计信息时使用。

管道

管道可以是双向的,也可以是单向的。在GaussDB中,主要使用了单向管道,用在后台线程向运行日志守护线程发送运行日志信息时使用。

文件

主要用于一些不太重要的场合,并且通信量比较大。在GaussDB中,主要用在统计线程汇总统计信息,写到统计文件,供垃圾清理线程和后台服务器线程成本优化使用。

全局变量

一种线程间共享信息的机制。GaussDB对原来的PostgreSQL中进程内的全局变量添加THR_LOCAL定义为线程的局部变量,避免线程之间误用。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  127
统信桌面专业版【全盘安装UOS系统】介绍  122
银河麒麟桌面操作系统安装佳能打印机驱动方法  114
银河麒麟桌面操作系统 V10-SP1用户密码修改  105
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益209.03元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!