下载此文档

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


文档分类:论文 | 页数:约2页 举报非法文档有奖
1/2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/2 下载此文档
文档列表 文档介绍
浅析达梦动态缓冲区机制
数据库管理系统常常会把最近访问过的数据页复制到内存块中,下次再需要访问该数据页时,就去访 问对应的内存块,而不需要真正读写实际文件。这种方式在大多数情况下可以大大减少文件 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) 约束机制

浅析达梦动态缓冲区机制 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数2
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xiaobaizhua
  • 文件大小10 KB
  • 时间2022-05-17