金仓数据库KingbaseES数据库概念(五)--数据库实例体系结构

目录

1. 实例结构

2. 进程结构

3. 内存结构

1. 实例结构

KingbaseES 数据库管理系统,由数据库文件和KingbaseES实例组成。

数据库文件

数据库文件为存储用户数据以及元数据的一组磁盘文件。 元数据为描述数据库结构、配置和控制有关的信息。

KingbaseES实例

包含若干对存储的数据进行操作的数据库服务进程,还包括分配和管理内存,统计各种信息,以及实现各种协调工作的后台进程。一台设备上,可以同时运行多个实例。 实例注册成实例服务后,会有唯一的名字标志一个实例。 一个 KingbaseES 实例在操作系统上表现为一个 KingbaseES 进程,它可以由控制器启动,也可以单独用命令行启动。 一个 KingbaseES 实例管理多个逻辑上的数据库。启动一个 KingbaseES 实例后,使用客户端可以访问到这个实例管理的任意一个数据库。

KingbaseES 实例的结构以及和数据库文件的关系可以表示为:

图 1KingbaseES实例和数据库文件

2. 进程结构

数据库服务进程是多进程结构

KingbaseES 数据库服务进程,称该进程为一个“KingbaseES 数据库实例”。 在一个数据目录只能同时启动一个实例,不同的数据目录可以同时以不同的端口,手动启动为不同的实例。

KingbaseES实例采用多进程架构,因此一个实例中会包含多个进程。这些进程按照功能的不同可以分为后台进程和服务进程两类:

后台进程

KingbaseES 主进程

主进程负责统一管理各服务进程和其他后台进程。 该进程负责启动服务进程和其他后台进程,并且在子进程退出的时候做清理工作。 该进程负责分发来自操作系统的信号到各子进程。系统退出时,主进程负责发送信号通知各子进程退出,然后再停止自己。

后台写进程

在这个进程中,共享缓冲池上的脏页会逐渐定期地写入持久存储(例如HDD、SSD)。

检查点进程

用来执行检查点过程。

自动vacuum进程

会定期地在服务器上执行清理和回收工作。

WAL日志写进程

这个进程周期性地将WAL缓冲区上的WAL数据写入和刷新到持久存储。

统计进程

在此进程中,会收集sys_stat_activity和sys_stat_database等统计信息。

归档进程

归档进程负责将日志文件归档到指定的位置。

日志收集进程

日志收集进程负责将数据库运行中的输出信息写入日志文件。

除以上后台进程外,在特定时机或使用一些特性时会有额外的后台进程,例如:

恢复进程

实例处于从恢复状态或开启热备份时恢复进程负责重做WAL日志。

WAL日志发送、接收进程

使用KingbaseES RWC集群时,主节点通过WAL日志发送进程发送WAL给备节点上的WAL日志接收进程实现数据复制。

kwr、ksh进程

开启kwr和ksh功能时,对应的kwr、ksh后台进程负责收集和维护负载、会话历史数据。

自动作业进程

开启自动作业功能时,自动作业后台进程实现作业的自动调度。

服务进程

KingbaseES使用客户端/服务器的模型。 对于每个客户端的连接,KingbaseES主进程接收到客户端连接后,会为其创建一个新的服务进程。 KingbaseES 用服务进程来处理连接到数据库服务的客户端请求。 该进程负责实际处理客户端的数据库请求,连接断开时退出。

3. 内存结构

KingbaseES 统一管理实例所用的内存资源。配置参数 shared_buffers 决定了数据库实例使用多少内存。当系统启动时,数据库实例向操作系统申请一块大内存(大小由 shared_buffers 决定)作为共享内存。在这之后各个进程对内存资源的使用都在这块内存里操作。

KingbaseES 对于共享内存的使用主要可以分为以下几部分:

数据页面缓存

在内存里缓存数据页面,shared_buffers 越大,在内存里保存的数据页面就越多。相同条件下操作数据时进行的 IO 操作更少。

日志页面缓存

日志缓冲区,操作数据时产生的日志都放在这个缓冲区上,由写日志线程和服务线程刷到磁盘。 参数 wal_buffers 设置日志页面缓存大小。

排序和连接运算使用的缓存

服务器对元组进行排序或者连接运算时,需要用到内存缓存数据。如果所需的运算还需更大的空间,KingbaseES 会借助于临时文件完成。 参数 work_mem 设置每个服务进程排序和连接运算使用的缓存大小。

锁缓存

多线程并发操作会用到锁,KingbaseES 从共享内存开辟独立的内存空间用于存放锁信息。 锁缓存的大小由总的共享内存大小决定。

临时分配的内存

服务器在处理数据流程中,用于临时存放数据所使用的内存,也从共享内存里分配。 KingbaseES 对于共享内存的使用通常是可配置的,详细信息请参考 内存

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值