1 / 2
文档名称:

浅析达梦动态缓冲区机制.docx

格式:docx   大小:10KB   页数:2页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

浅析达梦动态缓冲区机制.docx

上传人:dlmus2 2022/8/4 文件大小:10 KB

下载得到文件列表

浅析达梦动态缓冲区机制.docx

文档介绍

文档介绍:浅析达梦动态缓冲区机制
数据库管理系统常常会把最近访问过的数据页复制到内存块中,下次再需要访问该数据页时,就去访 问对应的内存块,而不需要真正读写实际文件。这种方式在大多数情况下可以大大减少文件IO次数,从而 有效提高系统的数据访问效率。浅析达梦动态缓冲区机制
数据库管理系统常常会把最近访问过的数据页复制到内存块中,下次再需要访问该数据页时,就去访 问对应的内存块,而不需要真正读写实际文件。这种方式在大多数情况下可以大大减少文件IO次数,从而 有效提高系统的数据访问效率。映射物理数据页的内存块称为缓冲页,而系统存放所有缓冲页的地方就是 缓冲区。
达梦数据库(以下简称DM)使用的缓冲区机制经历了两个阶段:静态缓冲区机制和动态缓冲区机制, 两者各有特点。
静态缓冲区机制会在按照相关参数创建固定的缓冲区供系统使用,当缓冲区用完时,系统根据淘汰策 略对旧页进行淘汰。该机制的缺点是当系统内存有大量剩余空间时也无法有效利用,频繁的淘汰缓冲区操 作对系统性能存在一定影响。
动态缓冲区机制会根据当前缓冲区的一些参数,例如淘汰率、页的空闲度等参数来计算缓冲区压力, 达到系统设定的阀值,立即进行缓冲区扩展,将缓冲区压力控制在可接受范围内,满足应用需求。但是盲 目的扩展会造成系统中其他应用可使用的内存减少,造成资源紧张。
从以上分析看出,静态缓冲区机制存在资源无法有效利用和缓冲区压力过大的弊端,如果预先估计出 系统大致使用的缓存大小,设置合理的参数,可以缓解该机制的不足,但是系统应用是动态的,存在不可 预知性,因此该方法无法从根本上解决存在的缺陷。相比较而言,动态缓冲区机制的设计原理基本可以解 决静态缓冲区存在的问题,关键是要合理控制缓冲区扩展的度。
DM6实现的动态缓冲区机制,根据多因素的考虑和精确的计算,大部分情况下给系统带来了性能上的 提升。DM6的动态缓冲区机制主要包含以下四个方面:
(1)确定合适的扩展机制
何时进行缓冲区的扩展很关键,并不是当缓冲区完全用完或者缓冲区有较大可用空间时进行扩展。DM 对于缓冲区的压力设定一个警戒线,达到警戒线则进行扩展。缓冲区的压力值主要根据缓冲区的淘汰率、 页的空闲度和更新页的比例三个参数进行计算。经过综合的判断和精确的计算,DM会在合适的时间进行 缓冲区扩展。默认情况下每次扩展2000页。
(2)确定合适的收缩机制
缓冲区盲目的扩展是不可取的,如何在有限的资源上做无限的事? DM设计了缓冲区的收缩机制来达 到对内存的良性循环使用,根据缓冲区的空闲度判断当前是否可以进行收缩。默认情况下每次收缩2000 页。
(3) 人为干预机制
DM根据普通的应用情况,设定了缓冲区参数的默认值供系统使用。考虑到实际应用的易变性和特殊 性,DM允许人为设置相关参数,满足用户特殊需求。在配置文件和系统运行时手动控制缓冲区的行为。 例如:配置文件中设置BUFFER来指定初始缓冲区大小、EBUF_SIZE来设置每次扩展缓冲区大小、 DBUF_MODE来设置是否启动动态缓冲区机制(0:静态模式;1:动态模式;2:手动模式);系统运行 时,通过SP_SET_BUF_MODE来设置缓冲区机制类型、SP_EXPAND_BUFFER扩展指定大小的缓冲区、 SP_TRUNC_BUFFER 释放缓冲区。
(4) 约束机制
为了更好的使用