[发明专利]处理数据库重做数据的方法和装置有效

专利信息
申请号: 201310101317.X 申请日: 2013-03-26
公开(公告)号: CN103150149A 公开(公告)日: 2013-06-12
发明(设计)人: 王南 申请(专利权)人: 华为技术有限公司
主分类号: G06F9/38 分类号: G06F9/38;G06F11/14
代理公司: 暂无信息 代理人: 暂无信息
地址: 518129 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 处理 数据库 重做 数据 方法 装置
【说明书】:

技术领域

发明涉及通信网络技术领域,尤其涉及处理数据库重做数据的方法和装置。

背景技术

重做日志(redo log)是数据库操作中数据可靠性的重要保障,能够提供比文件系统更多的数据安全保护。它的基本原理是当数据库修改操作提交的时候,数据并不会即时写入到磁盘的数据文件中,而是保存在内存中,避免每次的数据库更新要求都写入数据文件,从而提高数据库更新的性能;并根据修改操作生成重做数据(redo data)并写入到磁盘成为重做日志,避免在故障的情况下,由于内存数据的丢失而导致数据丢失。当数据库操作过程出现故障时,可以通过持久化的重做日志对数据进行恢复。

现有大多数数据库应用中,为了提高系统并发吞吐性能,数据库提供多线程并发处理的访问方式。虽然多个线程可以并发访问数据库,为了提高写磁盘的效率,多个重做数据在写入磁盘前,需要先缓存到重做队列(redo queue)中再依次写入磁盘。因为重做数据存在时序性限制,多个线程往重做队列中拷贝重做数据时,需要在全局的重做队列锁保护范围内来保证时序,即每次写重做数据都需要抢占重做队列锁后做耗时较大的数据拷贝。

现有技术中多个线程只能以串行的方式生成和拷贝重做数据,因此存在重做数据处理效率低的缺陷,影响了大业务量并发应用下系统的吞吐量。

发明内容

本发明实施例提供了一种处理数据库重做数据的方法和装置,用于提高重做数据的处理性能。

第一方面,本发明实施例提供了一种处理数据库重做数据的方法,应用于服务器中,所述服务器中运行有数据读取线程以及多个应用线程,所述多个应用线程以并发的方式修改数据库,所述方法包括:所述多个应用线程中每一应用线程根据修改数据库的操作生成重做数据,并将所述重做数据相应保存到为所述每一应用线程分配的缓存中,获取时序队列锁后将所述应用线程的标识保存到时序队列,所述保存结束后释放所述时序队列锁;所述数据读取线程确定数据读取条件得到满足,从所述时序队列中读取所述应用线程的标识的顺序,依次从所述时序队列中应用线程的标识对应的应用线程的缓存中读取一个重做数据写入重做队列。

在第一方面的第一种可能的实现方式中,所述数据读取条件为到达预定的时间周期,或所述时序队列的长度达到预定值,或所述应用线程的缓存数据量达到预定值。

结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中:所述依次从所述时序队列中应用线程的标识对应的应用线程的缓存中读取一个重做数据写入重做队列之前,进一步包括获取所述重做队列的队列锁,以获得对所述重做队列的写入权限;所述依次从所述时序队列中应用线程的标识对应的应用线程的缓存中读取一个重做数据写入重做队列之后,进一步包括释放所述重做队列的队列锁。

结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,该方法还包括:所述依次从所述时序队列中应用线程的标识对应的应用线程的缓存中读取一个重做数据写入重做队列之前还包括获取所述时序队列的队列锁以锁定所述时序队列,以及所述依次从所述时序队列中应用线程的标识对应的应用线程的缓存中读取一个重做数据写入重做队列之后还包括释放所述时序队列的队列锁;或者所述依次从所述时序队列中应用线程的标识对应的应用线程的缓存中读取一个重做数据写入重做队列之前还包括给所述时序队列的队尾元素添加读取结束标识。

结合第一方面以及第一方面的第一至第三种可能的实现方式中的任意一个,在第四种可能的实现方式中,该方法还包括:所述从所述时序队列中应用线程的标识对应的应用线程的缓存中读取一个重做数据写入重做队列之后还包括将所述应用线程的标识从所述时序队列中删除。

第二方面,本发明实施例提供了一种处理数据库重做数据的服务器,所述服务器中运行有多个应用线程,所述多个应用线程以并发的方式修改数据库,所述服务器包括:

时序队列处理单元,用于在所述多个应用线程中每一应用线程根据修改数据库的操作生成重做数据,并将所述重做数据相应保存到为所述每一应用线程分配的缓存中,获取时序队列锁后将所述应用线程的标识保存到时序队列,所述保存结束后释放所述时序队列锁以及将所述时序队列发送到重做队列处理单元;

所述重做队列处理单元,用于从所述时序队列处理单元接收所述时序队列,以及确定数据读取条件得到满足后,从所述时序队列中读取所述应用线程的标识的顺序,依次从所述时序队列中应用线程的标识对应的应用线程的缓存中读取一个重做数据写入重做队列。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310101317.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top