数据库可重复读实现方法、装置及数据库管理系统

(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(10)申请公布号 CN 101127045 A
(43)申请公布日 2008.02.20
(21)申请号 CN200710122416.0
(22)申请日 2007.09.25
(71)申请人 中兴通讯股份有限公司
    地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦
(72)发明人 印和平 常二鹏 李世亮 卢勤元
(74)专利代理机构 北京律诚同业知识产权代理有限公司
    代理人 梁挥
(51)Int.CI
      G06F17/30
                                                                  权利要求说明书 说明书 幅图
(54)发明名称
      数据库可重复读实现方法、装置及数据库管理系统
(57)摘要
      本发明公开了一种数据库可重复读实现方法,用于一种多用户、多事务并发的数据库管理系统,所述系统维护一事务列表、一回滚段及一索引树,该方法包括:步骤一,在遍历所述系统维护的事务列表时利用索引快速定位到满足条件的页,其中,所述事务列表,用于保存当前正在并发执行且未提交的事务;步骤二,遍历页记录时检查当前事务是否看得见当前记录,如果看得见,则将当前记录加入到结果集中,如果看不见则利用所述系统维护的回滚段中的撤销日志,构造出该记录的原始版本并添加到结果集中,其中所述回滚段用于记录事务所做的修改。本发明还公开了一种应用上述方法的实现装置,及一种应用所述方法和装置的数据库管理系统。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.一种数据库可重复读实现方法,用于一种多用户、多事务并发的数据库管理系统,所述系统维护一事务列表、一回滚段及一索引树,特征在于,该方法包括:
步骤一,在遍历所述系统维护的事务列表时利用索引快速定位到满足条件的页,其中,所述事务列表,用于保存当前正在并发执行且未提交的事务;
步骤二,遍历页记录时检查当前事务是否看得见当前记录,如果看得见,则将当前记录加入到结果集中,如果看不见则利用所述系统维护的回滚段中的撤销日志,构造出该记录的原始版本并添加到结果集中,其中所述回滚段用于记录事务所做的修改。
2.根据权利要求1所述的数据库可重复读实现方法,其特征在于,所述系统维护一个回滚段的步骤,进一步包括:
步骤11,所述系统在磁盘上生成回滚段日志文件,同时在高速缓存中保存相应页,并使每次插入一撤销日志仅针对所述高速缓存中的页;
步骤12,定期清理所述高速缓存中旧的撤销日志;
步骤13,定期将所述高速缓存中的页存在到磁盘文件中。
3.根据权利要求1所述的数据库可重复读实现方法,其特征在于,所述回滚段的内存结构信息包括:回滚段ID、表空间ID、页号。
4.根据权利要求1所述的数据库可重复读实现方法,其特征在于,所述系统每次启动一个事务,将该事务信息插入到所述事务列表中;每次事务提交或回滚,将该事务从所述事务列表中删除,以实现所述事务列表中只保存未提交事务。
5.根据权利要求4所述的数据库可重复读实现方法,其特征在于,所述事务信息包括:事务ID
、事务类型、指向事务列表中前后节点的指针、撤销号、分配给事务的回滚段、插入撤销指针、更新撤销指针、读视图指针。
6.根据权利要求1所述的数据库可重复读实现方法,其特征在于,所述检查当前事务是否看得见当前记录时,需要在查询节点中保存读视图结构,该读视图结构保存当前事务执行时系统中并发执行的其它事务ID、最大事务ID和最小事务ID,同时保存所述撤销日志清理相关信息,如果修改记录的事务ID小于所述事务列表看中的最小事务ID,则当前事务看得见当前记录;如果修改记录的事务ID大于事务列表中的最大事务ID,则当前事务看不见当前记录;如果修改记录的事务ID等于事务列表中任一事务ID,则当前事务看不见当前记录。
7.根据权利要求1所述的数据库可重复读实现方法,其特征在于,所述系统维护一索引树的步骤,进一步包括:
步骤21,接收到查询请求后,从索引树的根节点开始沿着索引树定位到页节点;
步骤22,定位到页节点后开始构造结果集;
步骤23,遍历页中所有记录,检查当前事务中的事务ID,遍历所述读视图中的事务列表,查
看所述读视图是否看得见当前记录,如看得见,则将当前记录加入到结果集中,如看不见,则从记录中取出回滚指针,从所述回滚指针中解码出所述撤销日志在所述回滚段中的位置,然后从该回滚段中取出相关数据构造出前一次版本,并添加到结果集中;
步骤24,获取到所述前一个版本,检查所述读视图是否看的见该版本记录,如果看不见,再构造更前一次的版本,如此重复,直至所述读视图看得见某版本记录为止,将该版本记录加入到所述结果集中;
步骤25,检查是否有下一条记录,如果有,重复执行步骤23~24,直至遍历完数据页链表,如果没有,本次查询结束。
8.根据权利要求7所述的数据库可重复读实现方法,其特征在于,所述步骤21进一步包括:
步骤211,检查所述根节点是否在高速缓存中,如在,执行步骤212;如不在,将所述根节点换入所述高速缓存中,执行步骤212;
步骤212,检查当前节点是否是叶子节点,如不是,采用二分查定位到满足查询条件的索引项;
步骤213,沿着所述索引项中指针定位到子节点,循环执行步骤212直至定位到所述页节点。
9.根据权利要求7所述的数据库可重复读实现方法,其特征在于,所述记录中包含回滚指针,该回滚指针中编码了回滚ID、回滚段表空间ID、页号、页内偏移、回滚类型。
10.根据权利要求2所述的数据库可重复读实现方法,其特征在于,在所述步骤11中,所述日志文件分为若干大小相等的页,所述页中存储所述撤销日志,所述撤销日志中包含:撤销类型、撤销号、表ID、各字段值,任何插入、修改、删除操作均生成一条撤销日志。
11.一种应用上述权利要求1~10中任一项所述的数据库可重复读实现方法的实现装置,用于一种多用户、多事务并发的数据库管理系统,其特征在于,所述装置包括:

本文发布于:2024-09-20 12:11:45,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/805548.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:事务   记录   回滚   撤销   列表   步骤   日志   方法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议