论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
云原生
›
openGauss体系结构_openGauss体系架构
openGauss体系结构_openGauss体系架构
罪恶克星
金牌会员
|
前天 11:29
|
显示全部楼层
|
阅读模式
楼主
主题
749
|
帖子
749
|
积分
2247
一、内存结构介绍
1.shared_buffers:
数据库服务器的共享内存缓冲区。在数据库系统中的读写操作,都是针对内存中的数据,磁盘中的数据必须在处理前加载到内存,也就是数据库缓存中。
利用内存充当慢速磁盘与快速CPU之间的桥梁,从而加速IO的访问速度。
2.cstore_buffers:
列存所使用的共享缓冲区。在列存表为主的场景中,险些不用shared_buffers。在此场景中,应淘汰shared_buffers,增加csstore_buffers。
3.MOT:
MOT 是内存引擎默认使用的缓冲区,openGauss的MOT内存引擎的索引结构以及整体的数据构造都是基于Masstree模子实现的,
其乐观并发控制和高效的缓存块利用率使得openGauss可以充分发挥内存的性能,
同时,在确保高性能的前提下,内存引擎有着与openGauss原有机制相兼容的并行长期化和查抄点能力(CALC逻辑一致性异步查抄点),确保数据的永世存储,
得当于高吞吐低时延的业务处理场景。
4.wal_buffers:
用于还未写入磁盘的WAL日志的共享内存。
SQL实行器在共享缓冲区中对数据页的操作会被记录到 WAL buffer 中,当客户端发起事件的commit请求时,
WAL buffer的内容将被WalWriter线程革新到磁盘并生存在WAL日志文件中,确保那些已提交的事件都被永世记录,不会丢失。
但需要注意的是,当walwriter的写操作跟不上时数据库实际的需求时,常规后端线程仍旧有权举行WAL日志的刷盘动作。
5.maintain_work_mem:
maintenance_work_mem 一般是在openGauss实行维护性操作时使用,如:VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY等操作,
maintenance_work_mem内存地区的大小决定了维护操作的实行效率。
6.work_mem:
用于查询操作,比方排序或哈希表等。work_mem 是事件实行内部排序或Hash表写入暂时文件之前使用的内存缓冲区。
7.temp_buffer:
数据库会话使用的暂时缓存,用于访问暂时表。
temp_buffer 是每个数据库会话使用的LOCAL暂时缓冲区,主要缓存会话所访问的暂时表数据。
需要注意的是,openGauss支持全局暂时表和会话级暂时表,全局暂时表的表定义是全局的,而暂时表的数据是各个会话私有的。
二、主要线程介绍
8.GaussMaster线程:
openGauss的管理线程,也称为postmaster线程。用于数据库启停、消息转发等管理工作。
9.pagewriter线程:
负责将脏页数据拷贝至双写(double-writer)地区并落盘,然后将脏页转发给bgwriter。
10.bgwriter:
bgwriter举行数据下盘操作。
11.walwriter线程:
负责将内存中的预写日志(WAL)页数据革新到预写日志文件中,确保已提交的事件都被永世记录,不会丢失。
12.checkpoint:
周期性触发,每次触发会将全部脏页面刷到磁盘中。
Checkpointer周期性的发起数据库查抄点,在这个查抄点时刻,所有的数据文件都被更新,脏数据页也被革新到磁盘,现在数据库是一致的。
openGauss支持全量查抄点和增量查抄点,增量查抄点打开后会小批量的分阶段的滚筒式的去举行脏页刷盘。
三、后台辅助线程
1.jemalloc_bg_thd:
管理并实现内存的动态分配
2.StatCollector:
负责统计openGauss数据库的信息,包罗:物理硬件资源使用信息、对象属性及使用信息、SQL运行信息、会话信息、锁信息、线程信息等,而且将这些网络到的统计信息生存在pgstat.stat文件中
3.Auditor:
使用重定向的方式从管理线程、后台线程以及其他子线程获取审计数据,并生存在审计文件中
4.LWLockMonitor:
负责检测轻量级锁(LWLock)产生的死锁,轻量级锁主要提供对共享内存的互斥访问控制,比如Clog buffer(事件提交状态缓存)、Shared buffers(数据页缓存)、Substran buffer(子事件缓存)等
5.sysLogger:
使用重定向的方式捕捉管理线程、后台线程以及其他子线程的stderr输出,并写入日志文件中
6.Jobworker:分为调度线程和工作线程。
调度线程(JobScheduler)会根据pg_job表里面定义的JOB周期,对已经过期的JOB举行调用,由工作线程(Jobworker)实行实际的JOB使命。
7.percentworker:
根据percentile参数设置的值计算sql响应时间的百分比信息,现在percentile参数仅支持80和95
8.snapshotworker:
网络snapshot信息
9.WalSender:
运行在openGauss主备情况中主节点,发送预写日志给备节点
10.WalReceiver:
运行在openGauss主备情况中备节点,吸收预写日志记录
11..AutoVacLauncher:
AutoVacLauncher线程由Postmaster线程启动,它不停地将数据库需要做vacuum的对象信息生存在共享内存中,
当表上被删除或更新的记录数超过设定的阈值时,会调用AutoVacWorker线程对表的存储空间实行采取清理工作。
四、设置文件
1.postgresql.conf:
openGauss的设置文件,在gaussmaster线程启动时会读取该文件,
获取监听地点、服务端口、内存分配、功能设置等设置信息,
而且根据该文件,在openGauss启动时创建共享内存和信号量池等。
2.pg_hba.conf:
基于主机的接入认证设置文件,主要生存鉴权信息(如:允许访问的数据库、用户、IP段、加密方式等)。
3.pg_ident.conf:
客户端认证的设置文件,主要保护用户映射信息,将主机操作系统的用户与openGauss数据库用户做映射。
4.gaussdb.state:
主要生存数据库当前的状态信息(如:主备HA的角色、rebuild进度及原因、sync状态、LSN信息等)。
五、数据库文件
1.base:
openGauss数据库对象默认存储在目次,如默认的数据库postgres、用户创建的数据库及关联的表等对象。
2.global:
存储openGauss共享的系统表或者说是共享的数据字典表。
3.pg_tblspc:
openGauss的表空间目次,里面存储openGauss定义的表空间的目次软连接,
这些软链接指向openGauss数据库表空间文件的实际存储目次。
4.pg_xlog:
存储openGauss数据库的WAL日志文件。
5.pg_clog:
存储openGauss数据库事件提交状态信息。
6.pg_csnlog:
存储openGauss数据库的快照信息,openGauss事件启动时会创建一个CSN快照,
在MVCC机制下,CSN作为openGauss的逻辑时间戳,模拟数据库内部对时序,用来判断其他事件对于当前事件是否可见。
7.pg_twophase:
存储两阶段事件提交信息,用来确保数据一致性。
8.pg_serial:
存储已提交的可序列化事件信息。
9.pg_multixact:
存储多事件状态信息,一般用于共享行级锁(shared row locks)。
六、openGauss其他重要文件
目次名称形貌
1.Archived WAL
openGauss数据库WAL日志的归档目次,生存openGauss的汗青WAL日志。
2.pg_audit
存储openGauss数据库的审计日志文件。
3.pg_replslot
存储openGauss数据库的复制事件槽数据。
4.pg_llog
生存逻辑复制时的状态数据。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
罪恶克星
金牌会员
这个人很懒什么都没写!
楼主热帖
2. 函数
京东张政:内容理解在广告场景下的实践 ...
HCIA学习笔记十一:ARP地址解析协议 ...
dotnet 6 为什么网络请求不跟随系统网 ...
从Android开发的角度比较MVC,MVP,MVVM ...
React技术栈 --》plugin与JSX语法使用 ...
KAFKA EAGLE 监控MRS kafka之操作实践 ...
花了两天从几十万行代码里总结出的22个 ...
学习ASP.NET Core Blazor编程系列十五 ...
【C#/.NET】RESTful风格的Post请求与Cr ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表