ITPub博客

首页 > 数据库 > 国内数据库 > YashanDB 内存体系

YashanDB 内存体系

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-02-18 11:51:03 0 删除 编辑

本文内容来自 YashanDB 官网,原文内容请见  https://doc.yashandb.com/yashandb/23.3/zh/ 概念手册 / 实例架构 / 内存体系.html

YashanDB 数据库包含多个内存区域,每个内存区域包含多个子组件。

  • 共享内存区域(SGA,Shared Global Area)

    共享内存区域是一组所有后台线程以及会话能够共享访问的内存结构,例如数据缓存、SQL 缓存、数据字典缓存等。

  • 私有内存区域(SPA,Session Private Area)

    私有内存区域是会话独占和管理的内存区域,例如会话栈内存、会话堆内存。

共享内存区域一般共享给多个会话或线程使用,主要包括内存共享池(SHARE POOL)、数据缓存(DATA BUFFER)、有界加速缓存(AC BUFFER)以及虚拟内存(VIRTUAL MEMORY)。

  • 内存共享池(SHARE POOL):内存共享池缓存多种类型的信息,例如 SQL 解析树、执行计划和数据字典缓存等。

  • 数据缓存(DATA BUFFER):数据缓存用于对数据的访问加速,如果访问的数据块未在缓存中命中则需要先从磁盘读取到该缓存。当缓存占用过高时,一些不经常使用的数据块会被淘汰。

  • 有界加速缓存(AC BUFFER):有界加速缓存类似于数据缓存,但缓存的对象不同,有界加速缓存只用于缓存 AC 对象。

  • 虚拟内存(VIRTUAL MEMORY):即 Materialize zone,虚拟内存主要为需要物化数据的 SQL 算子所用。

内存共享池包含多个内存区域,各区域描述如下:

  • SQL 缓存:保存 SQL 解析树和执行计划,SQL 引擎在执行语句时,首先会匹配 SQL 缓存,如果存在相同语句则无需编译直接使用已编译的执行计划,从而避免硬解析,节省开销。

  • 日志缓存:redo 日志的缓存区,日志并发写入缓存区,批量刷盘,从而减少磁盘 IO 和降低响应时延。

  • PL 池:存储过程、包、触发器等对象创建后会加载到 PL 池,以提高后续再次执行的效率。

  • 数据字典缓存:数据字典包括数据库文件、表、索引、列、用户、权限和其它数据库对象的有关信息。在 SQL 解析和执行时,SQL 引擎查看数据字典,核对和验证对象信息。数据字典是极为频繁使用的信息,通过缓存可极大地提升访问效率。

  • 大对象池:分配大对象的区域,例如超大 SQL 文本。

  • 全局缓存资源池:存放共享集群的数据块的全局资源元数据信息。

  • 全局锁资源池:存放共享集群的全局锁相关的元数据信息。

  • 全局队列资源池:存放共享集群的全局缓存和锁的排队管理信息。

# 数据缓存(DATA BUFFER)

数据缓存用于缓存当前或最近使用的从磁盘读取的数据块的拷贝,可优化数据库的 I/O 减少物理读 / 写。采用 LRU 算法管理,当缓存区域内存不足、需要回收内存以重用时,选择一些最长时间未使用的缓存块进行淘汰回收。

数据缓存分为行数据缓存和列数据缓存,行数据缓存用于存放行表相关的数据块拷贝,列数据缓存用于存放列表相关的数据块拷贝。

# 有界加速缓存(AC BUFFER)

有界加速缓存类似于数据缓存,但缓存的对象不同,有界加速缓存只存放基于有界理论的 AC 对象。

# 虚拟内存(VM,VIRTUAL MEMORY)

虚拟内存主要是由需要物化数据的 SQL 算子使用,且在物化对象过大时将磁盘作为虚拟内存使用。虚拟内存又分为虚拟内存和列虚拟内存,相关 SQL 算子计算行存表数据时使用行虚拟内存,计算列存表数据时使用列虚拟内存。

私有内存区域(SPA,Session Private Area)


私有内存区域是每个会话创建时分配的独占内存区域,与共享内存区域不同,此区域的内存由会话独占和管理,会话退出时释放,该内存区域主要是满足 SQL 执行时的各种内存空间需求。该区域主要包括两部分:

  • 会话栈内存:该区域一般用于存放会话执行过程中临时使用的局部变量等。

  • 会话堆内存:该区域一般用于存放生命周期较长的运行期数据。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3072803/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    643575