- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
buffermanager 概要设计说明书 - 中国人民大学
BufferManager 概要设计说明书
负责人:罗道锋
编写人:罗道锋
系统版本号:OrientX Version 1.5
完成时间:2003/12/16
开发单位:中国人民大学 IDKE 实验室 XML 工作组
1.引言
本说明书详细说明了OrientX1.5 中BufferManager 的设计和实现。
2 .概述
BufferManager管理数据库的缓冲区。任何物理块都将被读到缓冲区进行读写,如果缓
冲区已满,则采用LCR算法淘汰旧的缓冲区。
任何缓冲区块被请求读写时,该物理块的用户数加1;而该缓冲区被释放时,用户数减1。
用户数为0 的缓冲区叫做空闲缓冲区,该缓冲区可以被其它物理块占用(如果该缓冲区被改
写过,需要先刷出到磁盘);反之,如果缓冲区的用户数大于0,则该缓冲区不能被其它物理
块占用。所以,在读写操作完成后,请释放缓冲区,以免造成缓冲区长期占用得不到释放。
3 .总体设计
BufferManager 对外提供的接口是 Buffer 类。提供的接口包括申请/释放缓冲区,读/写缓
冲区,刷出缓冲区等。Buffer 类含两个内部类:BufferCtrl 和 IOCtrl 。其中,BufferCtrl 类负
责用 LCR 算法管理缓冲区的申请和释放;IOCtrl 类负责物理块 IO 读写。两个内部类对外都
是隐藏的,用户只需要用到 Buffer 类提供的接口。
OrientX 中的物理块是定长的物理块,由参数NX_FREEPAGE_CAPACITY 决定。所以,
缓 冲 区 也 是 定 长 的 , 缓 冲 区 的 定 义 是 static unsigned char
bufPool[BufPoolSize][NX_FREEPAGE_CAPACITY] 。其中,BufPoolSize 定义了缓冲区的个
数。
4 .接口设计
Buffer类提供了六个接口,定义如下:
Buffer类接口设计
函数定义 说明
short GetPage2Buf(int setID, int lpno,UserModes 把物理块读进缓冲区,返回缓冲区号
userMode);
short FreeBuf(short bufNo); 释放缓冲区
short GetNewBuf (int setID, int lpNo,UserModes 为一个新的物理块分配一个缓冲区,由于
userMode); 该物理块没有内容,所以不用进行IO读写
short ReadBuf(short bufNo, short offset, short len, 读取缓冲区
void *local);
short WriteBuf(short bufNo, short offset, short len, 写缓冲区
void *local);
short FlushBuf(short bufNo); 把缓冲区强制刷出到磁盘
5 .数据结构设计
5 .1 逻辑结构设计
5.1.1 BufferCtrl 类
BufferCtrl 类负责缓冲区的管理,包括缓冲区的申请/释放等。为了管理缓冲区,系统定
义了一个缓冲区控制块 BufCtrlBlk 的结构体:
struct BufCtrlBlk {
int setID; //memory page belonging to dataSet ID
int lpNo; //logical page no
short useCount; // user count
BufferStates bufSt; // buffer page status: 0: IOFree/ 1: Inputting/ 2: Outputting
UserModes userMode; //user status : 0--read only, 1--read and write
UpdateLabels ifUpdate; // modify sign
您可能关注的文档
- 2015年校科技基金评审分组 - 西安建筑科技大学科技处.doc
- 智能结构重频系统反馈控制 - journal of northeastern university.pdf
- 枪用三脚架结构的小修改与重分析 - 武汉理工大学学报.pdf
- 5 石化工业炉通用重质不定形耐 材料unshaped heavyweight .pdf
- 不同分子量的透明质酸钠治疗膝骨关节炎的比较.pdf
- 基于ματlαβ 的二级倒立摆控制系统设计方法.pdf
- 14 基于fpga和sopc技术的dsp.doc
- 浙江自考 - 重庆自考网.doc
- 宁波继峰汽车零部件股份有限公司2016 年度独立董事述职报告.pdf
- 2012年规模以上工业产品产量目录.doc
- 2025年无人机低空医疗物资投放社会效益报告.docx
- 2025年再生塑料行业包装回收利用产业链重构研究.docx
- 《AI眼镜周边产品市场机遇:2025年终端销售与需求增长洞察》.docx
- 2025年坚果加工行业深加工技术突破与市场拓展策略报告.docx
- 2025年通信芯片行业技术竞争与未来趋势报告.docx
- 《2025年生鲜电商配送冷链事故分析与预防措施》.docx
- 《商业航天融资新趋势2025民营卫星企业资本涌入估值分析市场动态》.docx
- 2025年能源绿色健康行业创新技术与市场应用报告.docx
- 2025年无人机低空医疗救援通信方案分析报告.docx
- 2025年烹饪机器人行业市场集中度分析报告.docx
原创力文档


文档评论(0)