一种新的内存数据库的快速日志恢复技术.docVIP

一种新的内存数据库的快速日志恢复技术.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种新的内存数据库的快速日志恢复技术

一种新的内存数据库快速日志恢复技术 摘 要 恢复技术是保证内存数据库运行可靠的关键,传统的基于日志的恢复技术会对系统性能产生很大影响。本文提出内存数据库系统快速日志恢复技术,它控制日志的产生数量,使得在系统崩溃并重新启动时,能以最快的速度恢复到系统崩溃前的最近一致点上。 关键字 内存数据库;日志恢复;检查点0 引言 内存数据库(MMDB)把数据全部或者当前工作部分驻留在内存中,消除了传统磁盘数据库系统中I/O瓶颈,极大的提高了系统的性能和吞吐量,但是由于所有操作都作用于内存数据库的主拷贝上,数据库及易遭到操作系统和应用软件造成的破坏,因此MMDB的恢复技术十分关键。日志(Logging)恢复是传统的MMDB恢复技术之一,它能满足当前MMDB系统对事务响应和快速系统恢复的要求,但是在大量事务吞吐量情况下造成的日志暴增所带来很大问题,会对MMDB性能产生很大影响。 本文提出MMDB系统快速日志恢复技术,它是在不阻碍系统正常运行的情况下,控制日志的产生数量,使得在系统崩溃并重新启动时,能以最快的速度恢复到系统崩溃前的最近一致点上。1 系统构架设计 快速恢复模型的整体架构如图1所示。事务处理模块负责根据用户请求产生事务,并由事务管理器调度。事务管理器将负责各个事务的日志记录,交给日志产生规则处理。检查点模块根据日志产生规则才产生的日志数量动态调整检查点启动时间。当日志记录数达到一定值时,检查点程序启动。它读取所有日志记录,交给日志筛选器。日志筛选器根据筛选算法,从当前所有日志项中筛选出实际有效的日志记录,并将这些有效日志记录交给日志分发结点。日志分发结点主要做两项工作:第一是它将日志传送给日志磁盘管理器,由其负责将日志回写到日志磁盘上,第二是日志分发结点将日志传送给备份更新发生器。备份更新发生器利用快速恢复算法,触发各类更新操作,根据日志更新磁盘上的数据。图1 快速恢复模型的整体架构 该快速恢复模型具有如下的特点: 快速恢复模型以日志驱动方式做检查点,异步更新磁盘上的备份数据镜象。 系统只维护全局Redo日志,以Redo日志来驱动备份更新发生器,各个事务维护私有Redo日志和Undo日志在事务提交时将私有Redo日志写入全局Redo日志中。 使用日志筛选算法,近一步减少Redo日志的数量,提升检查点程序的性能。 备份数据镜象只反应己提交事务的更新状态,因此在系统重载时不需要回退未提交的事务。 快速恢复算法为并发重载算法。在系统恢复过程中,能继续接受新事务的请求。2 快速日志驱动检查点 快速日志驱动检查点的基本思想是,检查点程序仍然由日志来驱动,根据读取到的日志项来更新数据镜象上的内容,维持数据镜象与内存中数据库的基本同步。但是,与以往日志驱动检查点算法不同的是,它通过日志产生规则和日志筛选算法两个策略克服了以往日志驱动检查点算法中日志数量可能过快增长的问题。2.1 日志产生规则 快速日志驱动检查点算法中设立的日志产生规则是:系统中日志被分为全局日志和私有日志两类。系统只维护全局Redo日志,而不维护Undo日志,由事务自身维护私有的Redo日志和Undo日志。在事务提交时,依照事务提交的先后顺序,将事务的私有Redo日志添加到全局Redo日志中。因此,在事务运行过程中,会产生Redo日志和Undo日志。Redo日志用于在系统恢复过程中,重做已提交事务。而Undo日志用于在事务Abort时回退事务,或者在系统恢复过程中回退未提交的事务。如果恢复模型的设计能够保证系统恢复过程中,没有需要回退的未提交事务,那么系统只需要读取Redo日志而不需要读取Undo日志。因而系统只需要维护全局的Redo日志,而不需要维护Undo日志,将Undo日志交给事务自身维护,Undo日志只用于事务自身Abort时回退。这样就可以减少全局日志的总量。 图2具体描述了全局日志和私有日志的使用。在事务T1,T2, T3的内存空间内,各自维护自己的私有Redo日志和Undo日志。在非易失性内存(SRAM)上,MMDB系统开辟全局Redo日志缓冲区,让事务在提交时事务的私有Redo日志写入该缓冲区。检查点程序将定期读取日志缓冲区中的数据,将日志写入磁盘,并驱动检查点程序更新磁盘镜象数据。图2 全局日志和私有日志各事务将按如下阶段操作日志: 事务启动时,需要在事务的各自空间内建立私有Redo日志和私有Undo日志,并将在私有Redo日志中写入事务启动记录。 事务运行过程中,事务的每次更新操作,需要在私有Redo日志中添加Redo记录,并在私有Undo日志中添加Undo记录。 事务提交时,需要按如下步骤完成: ㈠向事务的私有Redo日志内添加事体Commit记录。 ㈡将事务的私有Redo日志写入全局Redo日志中。 ㈢释放事务的私有Redo日志和私有Undo日志,释放事务

文档评论(0)

ayangjiayu3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档