达梦数据库的体系结构

主要介绍关于dm7数据库的存储、内存、线程结构

体系结构概览

—— 数据库

DM 数据库指的是磁盘上存放在DM 数据库中的数据的集合

—— 实例

实例一般是由一组正在运行的DM 后台进程/线程以及一个大型的共享内存组成
在这里插入图片描述

DM存储结构

  1. DM物理结构
    在这里插入图片描述
  2. DM物理结构
    在这里插入图片描述
  3. 表空间和数据文件
    一个表空间中包括一个或多个数据文件
    一个数据文件仅归属于一个表空间
    在这里插入图片描述
  4. 段、簇和块
    段存在于表空间
    段由区的集合构成
    簇是数据块的集合
    数据块会映射到磁盘块
    在这里插入图片描述

DM内存结构

DM内存结构
在这里插入图片描述
公用内存池
• 不依赖于操作系统的内存管理
• 用于:

  1. 维护系统内部内存空间的分配与释放
  2. 减少对操作系统内存的系统调用
  3. 其大小由MEMORY_POOL参数确定

系统缓冲区
在这里插入图片描述
字典缓冲区

字典缓冲区:
• 快速访问表,视图等对象的描述
• 系统表到内存对象的映射
• 仅保留活动的数据库对象
• 采用LRU算法淘汰
• 大小由DICT_BUF_SIZE参数决定

日志缓冲区

• 用于

  • 存放重做日志的内存缓冲区

• 大小由LOG_BUF_SIZE参数决定

  • 单位为页数量,默认为256页
  • 大小必须为2 的N 次方

排序/散列缓冲区

排序缓冲区:
• 用于

  • 数据排序的内存缓冲区
  • 大小由SORT_BUF_SIZE参数决定

散列缓冲区:
• 用于

  • 哈希连接的内存缓冲区
  • 大小由HJ_BUF_SIZE参数决定

SQL缓冲区

SQL缓冲区:
• 用于

  • 缓存执行计划、SQL语句、SQL结果集

• USE_PLN_POOL参数为1或2时启用
• 大小由CACHE_POOL_SIZE参数决定

DM线程

DM线程结构
在这里插入图片描述
监听线程

  • 用于在服务器端口上进行循环监听,有来自客户的连接 请求,监听线程被唤醒并生成一个会话申请任务,加入工作 线程的任务队列,等待工作线程进行处理
    在这里插入图片描述
    IO线程

IO线程: 主要用于做以下几个方面的工作:

  • 需要处理的数据块不在缓冲区中,此时需要将相关数据块读入缓冲区

  • 缓冲区满或系统关闭时,此时需要将部分脏数据块写入磁盘

  • 检查点到来时,需要将所有脏数据块写入磁盘
    在这里插入图片描述
    日志FLUSH线程

  • 主要用于事务提交或检查点时将日志缓冲区中的REDO日志写入到日 志文件中

  • 如果系统配置了实时归档,在 FLUSH线程日志刷盘前,会直接将日 志通过网络发送到实时备机

  • 如果配置了本地归档或者远程同步归档,则生成归档任务,通过日 志归档线程完成
    在这里插入图片描述
    日志归档线程

  • 包含同步归档线程和异步归档线程,前者负责本地归档和远程同步 归档任务,后者负责远程异步归档任务。如果配置了非实时归档,由日 志 FLUSH线程产生的任务会分别加入日志归档线程,日志归档线程负责 从任务队列中取出任务,按照归档类型做相应归档处理
    在这里插入图片描述
    工作线程

  • DM7内核的工作线程机制包括普通内核线程和用户态线程两种,普通 内核线程的切换完全由操作系统决定,但操作系统无法了解进程内部的运 行机制,只能采取通用的调度策略来管理各个内核线程;用户态线程在内 核线程内部自主调度,有效减少上下文切换;同时,由于内核线程数的 减少,进一步降低了冲突产生的概率,提升了系统性能,非常适合高并 发的应用场景
    在这里插入图片描述
    调度线程

  • 检查系统级的时间触发器

  • 清理 SQL 缓存、计划缓存中失效的项,或者超出缓存限制后淘汰不常用的 缓存项

  • 动态缓冲区检查。根据需要动态扩展或动态收缩系统缓冲池

  • 自动执行检查点

  • 会话超时检测

  • 必要时执行数据更新页刷盘

  • 唤醒等待的工作线程

日志重做线程

  • 主要用于系统故障恢复,日志重做线程根据REDO日志进行并行的故 障恢复
    在这里插入图片描述
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值