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

article/2025/3/19 3:23:23

目录

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 对于共享内存的使用通常是可配置的,详细信息请参考 内存。

 


http://chatgpt.dhexx.cn/article/NSBFWXPX.shtml

相关文章

猿创征文 | 国产数据库之人大金仓数据库详解安装和使用

文章目录 1、KingbaseES是什么数据库2、KingbaseES数据库产品优势3、KingbaseES安装包下载地址4、KingbaseES数据库安装1、windows安装KingbaseES1、图形化界面安装2、命令行安装3、静默安装 2、Linux安装KingbaseES1、图形化安装2、命令行安装3、静默安装 1、KingbaseES是什么…

UCF101数据集标签错误解决方案

最近在用ECO视频理解方案,进行数据处理时,发现了一个标签和视频名对应不上的问题,然后导致程序运行错误,问题描述如下: 出现问题后,逐步排查代码,发现代码没有问题,让我百思不得其解…

关于如何将动作识别数据集UCF101中的每一小段视频按类别分割成一帧帧图片

关于如何将动作识别数据集UCF101中的每一小段视频按类别分割成一帧帧图片 本人搜索了好位博主的解决方案,效果始终不能满足我的要求,后来在他人的代码基础上加以改进,成功分割。代码如下: import cv2 import osvideo_path .../U…

PyTorch implementation for ECO,finetune on ucf101

方法出自论文 ECCV2018 " Efficient Convolutional Network for Online Video Understanding" 接口出自https://github.com/mzolfaghari/ECO-pytorch 环境要求 作者: Python 3.5.2 PyTorch 0.4.1 TorchVison: 0.2.1 我的: centos系统 Pytho…

seg2vid 迁移使用ucf101数据集

文章目录 在test_refine_w_mask_two_path.py上加载playingviolin数据集的结果输入参数的调整修改地址在test_refine上复现修改:使用list文件生成工具产生测试帧目录class UCF101 跑test_refine.py 在test_refine_w_mask_two_path.py上加载playingviolin数据集的结果…

Ubantu16.04+CUDA10.0安装mmaction以及提取UCF101的frame和optical flow

Ubantu16.04CUDA10.0安装mmaction以及提取UCF101的frame和optical flow 研一刚转到视频动作识别方向,因为很多模型都需要光流输入,因此不得不安装第三方库提取光流。尽管现在该领域何凯明大佬的最新成果,Non-Local模块以及SlowFast-Net只用视…

UCF101视频分类之CNN-LSTM-Code总结

harvitronix/five-video-classification-methods视频分类-Code总结 环境要求准备工作提取视频帧CNN提取视频帧特征LSTM验证模型扩展 Code: https://github.com/harvitronix/five-video-classification-methods. 环境要求 requirements: Keras>2.0.2 numpy>1.12.1 pand…

使用Pytorch实现UCF101视频分类

开源代码:https://github.com/jfzhang95/pytorch-video-recognition 系统:Ubuntu16.04 显卡1070 编译器:pycharm UCF数据集包括101类视频,分别是: 1 ApplyEyeMakeup 2 ApplyLipstick 3 Archery 4 BabyCrawling 5 B…

动作识别0-02:mmaction2(SlowFast)-官方数据训练测试-ucf101

以下链接是个人关于mmaction2(SlowFast-动作识别) 所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:17575010159 相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是对我最大的鼓励。…

01【C3D 行为识别】项目下载 环境配置 数据集转化视频帧 UCF101数据集处理

目录 一,创建实例二,环境的快速搭建三,UCF101数据集处理3.1 准备视频文件3.2 下载标注文件3.3 抽取视频帧3.4 生成文件列表最后结构 四,参考 【C3D 行为识别】总目录 实战 复现代码解析自定义数据集 B站视频: https:/…

我的AI之路(52)--如何制作自己的UCF101数据集

前面说过如何用自己的UCF101数据集训练3D识别模型video-caffe,那么怎么制作自己的UCF101数据集呢?这个稍微有点复杂。 UCF101数据集其实是按101个动作类别分类了的短视频的集合,每类动作对应一个目录,每个目录下有很多avi格式的视…

时空行为检测数据集 JHMDB UCF101_24 详解

文章目录 0. 前言1. JHMDB1.1. 基本情况1.2. 数据准备以及标签详解 2. UDF101_242.1. 基本情况2.2. 数据准备与标签详解 3. 数据集可视化代码 0. 前言 现在常用的时空行为检测数据集只有AVA/JHMDB/UCF101_24。 AVA数据集是每一秒标一帧,更多信息可以参考我的笔记。…

行为识别TSM训练ucf101数据集

序言 最近有个行为检测的需求,打算用行为识别做,纯小白入这个方向,啃了两周的TSM原理和源码,训练好自己的数据集后,发现好像没法应用到自己的需求场景??玛德!算了,还是要…

UCF101数据集处理

UCF101数据集处理 在复现动作识别类的算法时,常需要用到数据集。ucf101就是其中一个。 之前复现代码时所用的ucf101数据集是直接将原数据集中的视频处理成图片。数据集目录如下: UCF101/ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c01/img_00001.jpg (此时通过…

深度学习视频数据集(动作识别):UCF-101

UCF-101 官网:https://www.crcv.ucf.edu/research/data-sets/ucf101/ 网盘:链接:https://pan.baidu.com/s/1RsJuykWyUlQ4_c1TwqxR_Q 提取码:909g 官方解释 UCF101是一个现实动作视频的动作识别数据集,收集自YouTub…

UCF101数据集提取帧+TDN部署(Anaconda+Python3.7+Pytorch)

UCF101数据集提取帧TDN部署(AnacondaPython3.7Pytorch) 前言一、安装MMAction21.引入库2.环境搭建3.安装4.准备原始数据集5.制作视频提取帧数据集 二、部署TDN1.引入库2.读入数据3.训练模型4.查看结果 本人实测结果 前言 将TDN部署在个人电脑上&#xf…

UCF101动作识别数据集简介绍及数据预处理

文章目录 一、数据集简介:二、数据集获取及解压缩:1. 数据下载2. 数据集解压缩: 三、数据集划分四、数据集预处理1. 生成pkl文件2. 直接对视频文件处理 一、数据集简介: UCF101是一个现实动作视频的动作识别数据集,收…

【Java】内部类的定义

目录 一、前言 二、内部类 语法格式: static修饰内部类 内部类未被static修饰时: 内部类被static修饰后 演示操作: 一、前言 前面我们学习了一个小的项目,现在我们来学习新的知识点,关于内部类的描述&#xff0…

Java类的定义、声明及使用

1、 class 类名称{属性方法} 2、声明一个类需要通过一个关键字class 3、类与对象的关系 1)类是对某一类事物的描述,是抽象的、概念上的意义,对象是实际存在的该类事物的每一个个体,也被称为实例。 package classdemo; class …

C#类的定义

在C#语言中创建的任何项目都有类的存在,通过类能很好地体现面向对象语言中封装、继承、多态的特性。 类的访问修饰符:用于设定对类的访问限制,包括 public、internal 或者不写,用 internal 或者不写时代表只能在当前项目中访问类…