[发明专利]记录事务日志的方法和数据库引擎有效
申请号: | 201310744292.5 | 申请日: | 2013-12-30 |
公开(公告)号: | CN103729442B | 公开(公告)日: | 2017-11-24 |
发明(设计)人: | 于巍;刘辉军;聂愿愿 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京三高永信知识产权代理有限责任公司11138 | 代理人: | 黄厚刚 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 记录 事务 日志 方法 数据库 引擎 | ||
1.一种记录事务日志的方法,其特征在于,所述方法包括:
接收结构化查询语言SQL请求;
根据所述SQL请求,修改所述SQL请求对应的数据页;
为所述修改生成对应的事务日志;
对所述事务日志进行分区得到多个日志片段;
将所述多个日志片段写入到多个缓存队列中,并行将所述多个缓存队列中的日志片段写入到日志文件中;
所述对所述事务日志进行分区得到多个日志片段;将所述多个日志片段写入到多个缓存队列中,并行将所述多个缓存队列中的日志片段写入到日志文件中,包括:
判断所述事务日志的类型;
如果所述事务日志的类型是并行执行日志,则对所述事务日志进行分区得到多个日志片段,将所述多个日志片段写入到多个并行执行的缓存队列中;
并行将所述多个缓存队列中的日志片段写入多个并行执行日志文件中;
其中,所述并行执行日志是指所述修改是不需要保证顺序的修改时生成的事务日志;
所述判断所述事务日志的类型之后,还包括:
如果所述事务日志的类型是优先执行日志,则将所述事务日志写入到优先执行的缓存队列中;
将所述优先执行的缓存队列中的所述事务日志写入优先执行日志文件中;
其中,所述优先执行日志是指所述修改是需要保证顺序的修改时生成的事务日志;
所述对所述事务日志进行分区得到多个日志片段,将所述多个日志片段写入到多个并行执行的缓存队列中,包括:
根据所述事务日志中的每条记录的文件号、页号和页内位置按照预设规则确定每条记录对应的并行执行的缓存队列;
并行将每条记录写入对应的缓存队列中;
其中,所述预设规则为与同一个数据页有关的记录对应到同一个并行执行的缓存队列中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述事务日志中的每条记录的文件号、页号和页内位置按照预设规则确定每条记录对应的并行执行的缓存队列,包括:
分别根据所述事务日志中的每条记录的文件号、页号和页内位置计算出所述事务日志中的每条记录的哈希值,在设置的哈希值与并行执行的缓存队列的对应关系中,分别查找得到所述事务日志中的每条记录的哈希值所对应的并行执行的缓存队列。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当进行故障恢复时,先根据所述优先执行日志文件执行恢复操作;
再根据所述多个并行执行日志文件并行执行恢复操作。
4.根据权利要求1所述的方法,其特征在于,所述判断所述事务日志的类型,包括:
根据所述事务日志判断所述修改是否为需要保证顺序的修改;
如果所述修改是需要保证顺序的修改,则确定所述事务日志的类型为优先执行日志;
如果所述修改是不需要保证顺序的修改,则确定所述事务日志的类型为并行执行日志。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310744292.5/1.html,转载请声明来源钻瓜专利网。