- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RAID 选择RAID级别应该考虑以下的因素: 所需的额外磁盘存储带来的开销 在I/O操作数量方面的性能需求 磁盘故障时的性能 数据重建过程中的性能 缓冲区管理 缓冲区:主存储器中用于存储磁盘块的拷贝的部分,由固定数目的缓冲块构成。 目的:减少磁盘和主存储器之间传输的块的数目。 缓冲区管理器:负责缓冲区空间分配的子系统。 缓冲区管理器 负责将磁盘上的数据读入内存并写回磁盘的软件层 管理器管理的内存空间称为Buffer Pool Buffer Pool中的每个页称为Frame(每个Frame包含若干slot) 如Buffer Pool有10个页,表中有100个页,如何进行扫描工作 决定内存中那些页应该被替换的策略称为Replacement Policy 工作流程 DB 高层代码的页请求 Buffer Pool Free Frame Dirty Frame 如果所需的页不再Buffer Pool中且Buffer Pool已满 则用Replace Policy 进行调度 DB 高层代码的页请求 Buffer Pool Free Frame Dirty Frame 如果所需的页不再Buffer Pool中且Buffer Pool已满 则用Replace Policy 进行调度 正在访问的frame 已访问完且未被 修改的数据 数据结构和流程 每个frame包括:pin_count,dirty pin_count:正在访问该frame的事务的个数 Dirty:已经被修改过的Frame 请求处理的流程 查看Buffer pool是否包含此页,如没有,则 找一个pin_count为0的frame,pin_count++ 如dirty为true,则将其写入磁盘 将相应的页读入此frame 将frame的地址返回 几点补充 Dirty代表此frame的数据已被修改,在Dirty frame被替换之前需要同步到磁盘上 申请新的frame时如没有可替换的frame,则等待 如何处理多个事务同时访问一个frame中的数据? 缓冲区的替换策略 最早使用策略(Least recently used,LRU) 当pin_count=0时该frame成为可选择,但并不是马上被替换,因为在此之前有可能再次被访问 最早变成可选择的页被首先替换 Clock策略 将所有的frame排成一个圈,下一个被替换的页是圈上的下一个可选择的页 使用referenced标志避免刚被访问过的frame被再次访问,其想法是referenced在第一遍访问时变成true,第二遍才替换 FIFO, MRU (Most-recently-used) 等 缓冲区的替换策略 实际系统中的Buffer Pool DB2:clock,允许有多个Buffer Pool Sybase :LRU,允许有多个Buffer Pool Informax,Oracle: LRU,单个Buffer Pool Sql Server: clock,单个Buffer Pool Buffer Pool的预取 Buffer Pool与virtual memory 区别在于Buffer Pool能够发现页访问模式 页访问模式产生的原因在于,页的访问方式由上层的查询代数和操作决定 页的预取 dirty frame的强制写盘 DB2中的Prefetching 为何不使用OS缓冲区管理 DBMS经常能预测访问模式(Access Pattern) 可以使用更专门的缓冲区替换策略 有利于pre-fetch策略的有效使用 DBMS需要强制写回磁盘能力,OS的缓冲写回一般通过记录写请求来实现(来自不同应用),实际的磁盘修改推迟,因此不能保证写顺序 磁盘故障 间断性故障 校验和 稳定存储 稳定存储的错误处理能力 从磁盘崩溃中恢复 作为冗余技术的镜像 奇偶块 RAID 5 多个磁盘崩溃时的处理 被钉住的块和块的强制写出 被钉住的块 为了使数据库系统能够从崩溃中恢复,必须限制一个块写回磁盘的时间。不允许写回磁盘的块称为被钉住的块。 块的强制写出 某些情况下,尽管不需要一个块所占用的缓冲区空间,仍必须把这个块写回磁盘。这样的写操作称为块的强制写出。 数据的存储组织 数据库中的数据存储在操作系统管理的文件中: 一个关系对应到一个文件 一个关系对应到多个文件 一个文件对应到多个关系 操作系统分配给数据库系统一个大的操作系统文件。所有关系都存储在这个文件中,这个文件的管理由数据库系统进行。 数据的存储组织 样例数据库: Branch-schema = (branch-name,branch-city,assets) Customer-schema = (customer-name,customer-st
文档评论(0)