【技术实现步骤摘要】
本专利技术涉及数据库管理系统(DBMS),尤其涉及事务隔离级别,特别是 多事务并发执行时数据可重复读的实现方法、装置及应用其的数据库管理系 统。
技术介绍
数据库管理系统中事务必须确保四种属性原子性,即事务中所有动作或 者全部执行或者全不执行; 一致性,即每个事务必须保持数据库的一致性;隔 离性,即每个事务的执行不受正在执行的其它事务的影响;持久性,即事务一 旦提交成功,所有对数据库的改变应能持久保存在存储介质上。设有事务T1、 T2,并发执行时可能存在三种冲突WR冲突,即T2可能 会读Tl刚修改过且未提交的数据,这样T2读入的数据是脏数据,称作脏 读;RW冲突,即T2可能会修改刚被T1读入的数据且T1尚未结束,这样 如果T1再次读入同一对象,会有不同的值,也称不可重复读;WW冲突, 即T2可能会覆写刚被T1修改过的值且T1尚未结束,这样会导致数据的不一 致性。串行调度可以保证数据的一致性,但不利于系统性能,因此SQL (Structured Query Language,结构化查询语言)标准中定义了四种隔离级别 可串行化读,这种隔离级别保证事务T只读其它已提交事务的修改,在T提 交之前,其它事务不得修改已被T读或修改的对象,并且,如果T基于某些 搜索条件读一组对象,在T完成之前,其它事务不得修改该组对象;可重复读, 这种隔离级别保证事务T只读其它已提交事务的修改,在T提交之前,其它 事务不得修改已被T读或修改的对象;提交读,这种隔离级别保证事务T只 读其它已提交事务的修改,在T提交之前,其它事务不得修改已被T修改的 对象;未提交读,这种隔离级别保证事务 ...
【技术保护点】
一种数据库可重复读实现方法,用于一种多用户、多事务并发的数据库管理系统,所述系统维护一事务列表、一回滚段及一索引树,特征在于,该方法包括:步骤一,在遍历所述系统维护的事务列表时利用索引快速定位到满足条件的页,其中,所述事务列表,用于保存当前正在并发执行且未提交的事务;步骤二,遍历页记录时检查当前事务是否看得见当前记录,如果看得见,则将当前记录加入到结果集中,如果看不见则利用所述系统维护的回滚段中的撤销日志,构造出该记录的原始版本并添加到结果集中,其中所述回滚段用于记录事务所做的修改。
【技术特征摘要】
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,遍历所述读视图 中的事务列表,査看所述读视图是否看得见当前记录,如看得见,则将当前记 录加入到结果集中,如看不见,则从记录中取出回滚指针,从所述回滚指针中 解码出所述撤销日志在所...
【专利技术属性】
技术研发人员:印和平,常二鹏,李世亮,卢勤元,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。