您的位置: turnitin查重官网> 工程 >> 电气工程 >> 电气工程及自动化 >试谈实时基于数据库空间实时内存恢复机制查抄袭率

试谈实时基于数据库空间实时内存恢复机制查抄袭率

收藏本文 2024-04-22 点赞:20239 浏览:86112 作者:网友投稿原创标记本站原创

摘要:为了能够满足于内存空间的实际应用对于数据操作管理的实时性与可靠性程度,对于Swallow空间的实时内存数据库进行数据库恢复机制的分析与设计,通过使用日志驱动修改操作、影子页面处理与模糊点检测等各方面的思想能够很好地达到内存数据库数据信息与日志迅速备份和在实际内存空间数据库产生任务故障与系统故障情况下实行恢复策略的目的。
关键词:内存数据库 实时数据库 数据库恢复
1007-9416(2013)04-0079-02
1 引言
内存空间的实际应用对于数据操作管理的实时性与可靠性程度带来较好的作用。传统模式的数据库主要在于执行长久稳定数据信息的操作处理,不能很好地满足于当前阶段实时应用操作的实际需求,然而内存数据库因为其相应的工作版本一般都存放与内存空间中,全部数据的存取与管理操作在内存空间中实行,相应的访问速度相对于传统模式数据库高出1-2个数量级,所以对于实时性的具体要求较高的内存空间数据操作管理系统是一个很好的抉择。因为内存空间具有易失性的相关特点,内存空间数据库应当在磁盘或者其它具有非易失性的存储器中实行保存备份,从而能够防止操作程序发生错误与系统掉电等各种系统问题故障引起数据损坏与丢失的后果。然而备份操作所需使用的许多磁盘I/O处理操作都会影响到系统效率,所以具有高效特性的恢复策略是作为内存空间数据库的关键技术部分。当前阶段下应用较为广泛的是应用基于日志与检查点的方式来实现内存空间数据库恢复处理。为了能够减少日志的相关数量,一般使用本地更新的形式来实信对数据处理操作,记录日志的过程时不但需要对被修改数据后像进行相应的记录工作,即为Redo日志,同时应当减少系统恢复所需要使用的日志数量,使用检查点将会MMDB备份到磁盘。

2 恢复模型的介绍

Swallow的主要组成模块分为任务管理器、内存池空间页面管理器、数据存储管理模块与数据恢复模块等。在内存空间中的数据是以分页的形式而存在的,经过内存池空间页面管理器的作用能够实现管理与维护操作的统一,在这基础之上提供了数据库多种类型的常用接口,同时实际的页面管理器会对于一个页表进行维护,记录着由上次检查点到被实现更新后的操作页面。系统是经过多线程的作用来对多个任务的并发操作实现支持,并且由事务管理器处于系统中实现一个事务信息表的维护工作,每当系统成功接收到一个新的任务线程,都会在相关的任务信息表里进行相关数据信息的记录。数据存储管理模块应当负责MMDB与磁盘数据库文件的数据信息交换处理工作。数据恢复模块应当包含全局日志的写入操作,检查点的实行与故障之后的系统恢复操作,Swallow的数据恢复模型如图1所示。任务对于MMDB的修改操作是根据相应的日志进行驱动的,对于某一个具体任务要对在MMDB中的相关页面实行更新操作处理时,并不能够直接对于MMDB实行修改,只能够将其Redo日志记录于其相对应的私有日志区域内,当任务进入到提交阶段时,把其相对应的私有日志送入到全局日志缓冲区域,写日志线程以定期形式把全局日志缓冲区域刷新写入到磁盘相应的日志文件中,任务提交完成后由相关的页面管理器根据日志对于MMDB实行相应的修改处理。

3 重要的数据结构与算法

3.1 数据结构

(1)页表,在MMDB中对于每一个具体页面都有相应的一个外页头,其存储着此页的有关数据信息,内存空间池页面管理器能够经过外页头的作用来实现对页面的组织处理。位于页表中的全部页面都会在下一次检测点的时候刷入磁盘相应的数据库文件。
(2)任务数据信息表,任务管理器对于每一个新接收到的具体任务都会加入到任务数据信息表中,从表中能够记录了任务相应的标识号TransID、事务状态标识TransState与日志头指针,日志头指针是指向于任务的私有日志。
(3)任务私有日志,任务的日志分为3种类型,任务开始、Redo节点与任务提交。在TransBe-ginLog中记录相关任务的ID号与日志的长度(LogLength);在TransCommitLog中记录了相关任务完成时的时间戳。
(4)全局日志缓冲,全局日志作为一个临界区的资源,提交相关的任务线程对于其实行同步访问具有重要意义。任务把私有日志挂载入全局日志链的过程时应当需要先获得其相应的写锁,不同类型的任务根据提交时的先后次序把私有日志链挂载进入到全局日志链的环节上,这能够充分保证数据库状态操作的一致性。如果日志缓冲达到一定数量程度或者检查点线程通知即将要执行下一个检查点时,写日志线程把全局日志缓冲写入到磁盘中。

3.2 任务执行算法

本系统使用了日志驱动修改操作的方法来实现内存空间数据库页面的相关更新处理操作。对于需要进行更新的数据库页面,任务在提交处理前不能够进行直接的修改,应当把全部的更新操作处理都记录于私有日志中。如果任务能够成功地提交,内存空间页面管理器依据任务的私有日志对内存空间中的数据库页面实现修改操作;如果任务发生失败,则应当丢弃任务的私有日志,内存空间数据库则不会受到其它方面的影响作用。因为缺乏对内存空间数据库的页面实现直接的修改处理,因此不需要记录相关任务的Undo日志。

3.3 日志写入算法

全局缓冲日志写入磁盘的情况分为两种,其一为系统在开始阶段实行一个新的检测点前,应当通知写日志线程把全部的日志写入到磁盘中,其二为当全局日志缓冲区域里的日志达到一定数量程度之后能够批写入磁盘中。因为每一个具体任务开始时的相关日志中都会记录了任务日志的相应长度,当日志写入磁盘线程在取日志的过程会以任务为单位实行取出操作,即为同一个任务的日志必须是在同一批被取出并写入硬盘。

3.4 检测点算法

因为检测点过程关系到许多磁盘I/O的处理操作,监测点模式与执行频率对于系统总体性能的作用较大。处于系统中相应的监测点是具有非连续特点的,启动频率由系统相应的页比例所决定,如果页链中的节点数目和总页面数目之比接近一个阈值时,页面管理器将会唤醒相应的检测点线程实行检测点的操作处理。Swallow的检测点方法借鉴了任务一致检测点的思路与影子页面的处理技术,在检测点实行过程中需要对MMDB实现加读锁,保证任务的一致性,同时使用影子页面操作来实现检测点的过程中任务对MMDB的读写操作不会受到影响,达到模糊点检测的较好效果。因为任务对于MMDB的更改操作是运用了日志驱动的方法,所以当检测点线程执行成功时将会得到页的读锁,此时MMDB应当处于任务一致性的状态。在检测点实现过程时,如果有任务提交的页面被相应的检测点锁住,内存空间页面管理器就会复制一个被锁住页的相应影子页,任务提交的修改处理在影子页面上实现,成功修改完成之后把页链表中此页的影子指针相应地指向影子页面,如果还有其它的任务对此页面实行操作时,都应当从相应的影子页面执行读取操作。
4 结语
本文分析研究并设计出一个数据库空间实时内存恢复机制,全面系统地综合日志驱动修改操作、影子页面处理、预提交与模糊点检测等各种设计思想,达到日志与检查点的过程不实质影响任务并发式执行的目的,减弱磁盘I/O设备对于系统效率的限制作用。日志驱动修改处理使得系统不需要进行Undo日志的记录工作,任务发生故障时不需要实行回滚则可以实现直接恢复目的,系统产生故障之后也可以快速确定恢复起点,在确保数据库可靠性的同时也能够减弱对系统实时性的实质影响作用。
参考文献
王珊,肖艳芹,刘大为,等.内存数据库关键技术研究[J].计算机应用,2007,27(10).
甘杉,郭丽丽.航天实时内存数据库存取机制MCacheTree的研究[J].计算机工程与设计,2010,31(17).
[3]黄琳,路京,林中.基于影子页面的MMDB的数据恢复方法[J].计算机工程与设计,2008(5).
[4]冯宇傲.嵌入式实时内存数据库ARTs_EDB的故障恢复策略研究[D].武汉:华中科技大学,2008.
[5]陈安龙.内存数据库中数据恢复技术的研究与实现[D].宁波:浙江大学,2006.
[6]罗家贵.强化计算机数据库管理技术的有益探索[J].计算机光盘软件与应用,2012(20).
[7]蒋科.软件开发中数据库设计理论实践研究[J].计算机光盘软件与应用,2011,(16):193-193.

源于:毕业论文指导记录www.udooo.com


    copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号