[发明专利]数据回滚的处理方法和装置有效
申请号: | 201310754233.6 | 申请日: | 2013-12-31 |
公开(公告)号: | CN103699681B | 公开(公告)日: | 2017-01-04 |
发明(设计)人: | 徐文韬;聂愿愿;谢锐 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 处理 方法 装置 | ||
技术领域
本发明实施例涉及数据库技术领域,尤其涉及一种数据回滚的处理方法和装置。
背景技术
数据库中包含大量的数据,用户可以通过数据库事务(Database Transaction,下述简称为事务)访问该数据库,以获得所需的结果。通常事务对数据库的访问,会使数据库中的一些数据发生更新,出现新版本的数据。但现有的数据库中,多个事务会同时执行,则一个事务的访问造成了数据库中数据的更新,导致另一个事务所使用的数据前后不一致,影响数据库对用户的服务。举例来说,事务1在数据库内的一个数据文件中获取了数据A,随后事务2访问了该数据文件,并将该数据文件中的数据A更新为数据B,即此时数据A为旧版本数据,而数据B为新版本数据;若事务1需要再次访问该数据空间时,则为了保证事务1前后获取的数据一致,在事务2更新上述数据文件时,需要将数据A作为回滚数据另行存储,以供事务1再次访问。
常见的,Sql Server可使用临时数据库(Tempdb)的方式存储回滚数据。Tempdb是一个临时数据库,可被多个数据库共享,则回滚数据被存储至tempdb中。其中,Sql Server使用了内部对象(Append-Only Store)以管理tempdb中的数据;即tempdb中的回滚数据被存储至一个Append-Only Store中,每隔一段时间或Append-Only Store中积累一定数量的数据后,就会创建一个新的Append-Only Store,以继续存储回滚数据。
但采用上述方案时发现,多个事务会使用同一个Append-Only Store,使得多个事务的并发效率降低,影响各个事务访问回滚数据的效率,从而降低了数据库的工作性能。
发明内容
本发明实施例提供一种数据回滚的处理方法和装置,用于合理的对各个回滚段进行管理,保证了多个事务的并发特性,提高了数据库系统的工作性能。
第一方面,本发明实施例提供一种数据回滚的处理方法,包括:
当数据库系统接收到第一事务时,在所述数据库系统的各个列表所存储的各个回滚段中,确定分配于所述第一事务的第一回滚段;所述回滚段用于存储事务访问数据文件产生的回滚数据;
针对所述第一事务,记录第一回滚段的使用情况;
根据所述第一回滚段的使用情况,将使用后的第一回滚段存储至对应的列表中;
其中,所述各个列表包括重用列表、空闲列表和完成列表,所述重用列表中的每个回滚段中存储了回滚数据,且具有剩余存储空间,所述空闲列表中的每个回滚段中无回滚数据,所述完成列表中的每个回滚段中不具有剩余存储空间。
结合第一方面,在第一实施方式中,所述在所述数据库系统的各个列表中所存储的各个回滚段中,确定分配于所述第一事务的第一回滚段,包括:
若所述重用列表中包括至少一个回滚段,则确定重用列表中最先存储的回滚段为所述第一回滚段,并在所述重用列表中删除该最先存储的回滚段;
若所述重用列表中不包括所述回滚段,则在所述空闲列表中确定所述第一回滚段。
结合第一方面第一实施方式,在第二实施方式中,所述在所述空闲列表中确定所述第一回滚段,包括:
若所述空闲列表包括至少一个回滚段,则将所述空闲列表中的一个回滚段作为所述第一回滚段,并将所述空闲列表中的该回滚段删除;
若所述空闲列表不包括回滚段,则判断所述数据库系统中的全部回滚段的数量是否已达到上限;
若否,创建新增回滚段作为所述第一回滚段;
若是,则进行清理算法,并在进行了所述清理算法之后的空闲列表中,确定任意一个回滚段作为所述第一回滚段。
结合第一方面第二实施方式,在第三实施方式中,所述清理算法包括:
由所述完成列表中最先存储的回滚段开始,依照存储的先后顺序,依次判断出所述完成列表中可回收的回滚段;
将所述可回收的回滚段由所述完成列表中删除,并存储至所述空闲列表中,获得所述进行了所述清理算法之后的空闲列表。
结合第一方面第三实施方式,在第四实施方式中,所述判断出所述完成列表中可回收的回滚段,包括:
根据所述完成列表中的待判断回滚段对应的最新使用情况,确定所述最新使用情况对应的第二事务;
若所述第二事务的访问时间不滞后于所述数据库系统中的当前事务的访问时间,则确定所述待判断回滚段为所述可回收的回滚段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310754233.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置