主存储器事务处理系统中的高度并行日志和恢复操作的方法和系统技术方案

技术编号:2875342 阅读:251 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种事务处理系统中从故障中恢复的有效日志方法及系统。该方法及系统是根据允许进行具有交换性和结合性的恢复操作的差分日志方法。该方法包括以下步骤:在对数据库进行更新之前取得主存储器中的主要数据库的前映象;在更新后取得主要数据库的后映象;通过在该前映象和后映象之间进行按位异或(XOR)运算来生成差分日志;通过在所述一个或更多日志和前映象之间进行XOR运算来执行redo或undo操作;由于XOR运算具有交换性和结合性,无论日志记录生成的次序如何都可获得正确的恢复。本发明专利技术通过减小日志记录大小并允许恢复操作的并行执行,改善了日志系统的性能。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及主存储器事务处理系统。具体涉及用于事务处理系统中的主存储器数据库的恢复的日志方法和系统。
技术介绍
事务处理系统必须以这样的方式处理事务即使在发生诸如系统故障的情况下,也保持一致性和持续性。当最小单位和一致方式执行事务时保持数据的一致性,使得数据从最初的一种一致状态转换成另一种一致状态。当通过“提交”事务(成功完成的事务)改变数据时保持数据的持续性使系统免于故障。数据库通常指事务所处理的数据。为了实现数据库的一致性和持续性,多数事务处理系统执行一个所谓日志的处理(根据日志文件中日志记录来记录更新的处理)。在出现故障的情况下,这些日志记录用于撤消(Undo)由未完成事务造成的变化,从而把数据库恢复到故障前的一致状态。这些日志记录也用于重做(Redo)由提交事务造成的变化,从而维持持续的数据库。在系统出现崩溃后,仅利用日志记录来恢复一致的和持续的数据库将需要大量的日志数据,这是因为从数据库创建起所生成的所有日志记录必须被保存。因此,在把数据库定期复制到磁盘时,通常使用所谓“检查(checkpoingting)”的处理,从而仅需要存储最后检查处理以来所生成的日志记录。实际中,数据库中的每页具有一个表示由事务作的任何修改的“修改标志(dirty flag)”,从而仅把最后检查处理以来修改的页复制到磁盘。图1示出了主存储器数据库管理系统(DBMS)的常规恢复结构,其中维护两个备份(101和102)和一个日志(103)。一个单独的检查处理仅更新备份中的一个,连续的检查处理在两个备份之间交替。为了协调这种交替,每个存储器内的数据库页具有两个修改标志(dirty flag)。当检查处理修改一页时,设定两个标志表示由事务进行了修改。当检查处理用该页更新(flush)第一备份时,复位第一标志以表示针对第一备份不再需要进行检查处理。类似地,当连续检查处理用该页更新第二备份时,复位第二标志。图2示出了一个利用主存储器DBMS中的数据库备份和日志的常规重启处理。该重启处理包括以下四个步骤第一,把最新备份读入主存储器(用BR表示“backup read(备份读取)”)(201);第二,把数据库恢复为备份时的状态(用BR表示“backup play(备份再现)”)(202);第三,把日志记录读入主存储器(用LR表示“log read(日志读取)”)(203);第四,使用这些日志记录把数据库恢复为最新一致状态(用LP表示“log play(日志再现)”)(204)。图3a和3b是常规的两遍日志再现处理(two-pass log-play process)的流程图。为了把数据库恢复为最新一致状态,由提交事务生成的所有日志记录需要被再现,但由所谓的“loser transactions(失败事务)”生成的日志记录(当系统崩溃时是激活的)必须被跳过(当存在一个匹配事务开始日志记录但没有事务结束记录时,事务被称为一个失败事务(loser))。为此,从检查开始日志记录到日志结束对日志进行扫描所遇到的日志记录被再现(307)。然后,由失败事务作的日志记录造成的改变被回滚(roll back)(308)。为了识别失败事务,维护一个失败事务表(LTT),该表有两个域,TID和Last LSN。用记录在检查开始日志记录中的激活事务初始化该表(301)。当遇到一个事务开始记录时(302),在LTT中生成一个匹配登录项(305)。当遇到一个事务结束(提交或异常中断)记录时(303),从LTT中删除该匹配登录项(306)。否则(304),当前日志记录的LSN被记录在匹配LTT登录项的Last LSN域中(307)。当达到该日志结尾时,仍在LTT中的具有匹配登录项的事务被看作失败事务。利用匹配LTT登录项的Last LSN域可以定位失败事务的最新记录,通过向后(backward)追踪访问日志记录的Last LSN域定位该事务的其他记录。当使用现有技术的物理日志方法时,在LP处理期间,必须以日志记录生成顺序再现日志记录。即,必须先使用较早生成的日志来重做一些更新。由于撤消和重做的操作没有交换性和结合性,常规日志方法实行依次排序。这种依次排序要求对系统设计造成很多限制。例如,把整个数据库保存在主存储器的主存储器DBMS中,对日志的磁盘访问成为系统性能上的瓶颈。为了减少这样的瓶颈,可以构想采用多个日志磁盘来分配处理。但是,使用多个日志磁盘对常规日志方法是不容易实现的,这是因为在LP步骤中存在一个以生成顺序合并日志记录的系统开销。因此,需要一种有效的日志系统,该系统适合于分布处理中的大量并行操作。
技术实现思路
本专利技术的一个目的是提供一种有效的日志方法,在出现故障后可以使用该方法来恢复事务处理系统。本专利技术的另一个目的是提供一种可以进行并行操作的日志方法。利用差分日志方法可以实现本专利技术中的上述目的和其他目的,该方法允许进行具有交换性和结合性的恢复操作。该方法包括以下步骤在数据库更新前取得主存储器中的数据库的前映象;在更新后取得数据库的后映象;通过在前映象和后映象之间进行按位异或(XOR)运算来生成日志;以及在所述一个或更多日志和数据库之间进行XOR运算来执行撤消或重做操作。附图说明图1是整个数据库都保存到主存储器中的主存储器数据库管理系统的常规恢复结构的系统图;图2是发生系统崩溃时常规的恢复结构中使用的重启处理的流程图;图3a和3b是在系统重启期间,常规的恢复结构中使用的两遍日志再现处理的流程图;图4是本专利技术中用于捕捉数据库中的变化的更新日志记录的结构图;图5是在重启过程期间,对本专利技术的更新日志记录进行的重做和撤消运算的演示图;图6a至6e是本专利技术中差分记录方法和现有技术中物理记录方法的比较图;图7a和7b是本专利技术中用来从一致检查方法制作的备份来恢复数据库的一遍记录再现处理的流程图;图8a和8b是本专利技术中用来在不阻止其他事务的状态下进行备份的模糊检查处理的流程图;图9是本专利技术中与模糊检查一起使用的更新处理流程图;图10a和10b是本专利技术中用来从模糊检查方法制作的备份中恢复数据库的修改的两遍记录再现处理流程图;图11a和11b是本专利技术中用来从模糊检查方法制作的备份中恢复数据库的修改的一遍记录再现处理流程图;图12是本专利技术的日志结构的实施例图,其中使用多个日志磁盘以分布日志记录并使能进行并行日志;图13是本专利技术的重启结构的实施例图,其中使用多个日志磁盘和备份磁盘以使能进行并行重启;图14是本专利技术中用来利用多个日志磁盘及备份磁盘来尽可能迅速地恢复数据库的完全并行重启处理的流程图;图15是本专利技术的完全并行重启处理中使用的备份载入器(BL)模块的实施例图;图16是在磁盘传送日志记录比单个CPU处理速度快时,本专利技术的完全并行重启处理中使用的日志载入器(LL)模块的实施例图;图17是在磁盘传送日志记录比单个CPU处理速度快时,本专利技术的完全并行重启处理中使用的日志载入器(LL)模块的另一个实施例图;具体实施方式图4示出了本专利技术中使用的更新日志记录和数据库页的结构。假设一种存储结构数据库由多个固定大小(side)的页组成,每页具有许多槽(slot)。不同的存储结构可以有修改,但此修改应该对本领域的技术人员而言是显而易见的。本专利技术的优选实施例使用至少五类日志记录事本文档来自技高网
...

【技术保护点】
一种在主存储器事务处理系统中对更新作日志的方法,该主存储器事务处理系统具有:主存储器,用于存储数据库;一个或多个日志磁盘,用于存储日志记录,该日志记录用于主存储器数据库的并行恢复;和一个或多个备份磁盘,用于存储主存储器数据库的副本,该方法包括下列步骤: 在对数据库进行更新之前取得数据库的前映象; 在更新之后取得数据库的后映象; 通过在前映象和后映象之间进行按位异或(XOR)运算,生成差分日志作为每个日志记录的日志主体; 通过在差分日志和前映象之间进行XOR运算,从故障中恢复。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:车相均李柱昌金起弘
申请(专利权)人:处理存储器有限公司
类型:发明
国别省市:KR[韩国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1