发明名称 图形数据库联机事务中事务过期机制的实现方法
摘要 本发明涉及图形数据库联机事务中事务过期机制的实现方法,包括步骤:检查事务是否过期,过期则将该条记录存入待处理队列;计算待处理事务队列;如果没有待处理的事务则等待;否则,处理的过程为:依次取出事务队列中的每一条记录,如果该事务未过期、未提交、未回滚、未锁定,则标记事务过期状态、恢复事务锁定的数据记录、删除脏数据、删除事务记录,完成本条事务的过期恢复操作。否则放弃本条记录,处理下一条记录。本发明提供了简单、可靠的数据事务过期自检机制,自检中触发的数据恢复操作具有任意断点持续性,恢复操作开始后,在数据恢复开始至完成的任意时间点的意外执行中断,均可在再次启动系统后继续执行,直至恢复完成。
申请公布号 CN102193981A 申请公布日期 2011.09.21
申请号 CN201110072953.5 申请日期 2011.03.25
申请人 北京世纪互联工程技术服务有限公司;北京云快线软件服务有限公司 发明人 陈升;于洪方;井卫军;蒋建平;陈晞;刘健
分类号 G06F17/30(2006.01)I;G06F9/46(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京北新智诚知识产权代理有限公司 11100 代理人 张卫华
主权项 一种图形数据库联机事务中事务过期机制的实现方法,其特征在于:联机事务处理自上而下分为三层:最上层为暴露给外部调用程序的API;中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用Java语言的线程同步锁定特性实现,非同步区的操作则不受限制,在任何时间均可以进行;最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息;将图形数据库中联机事务的状态数据存储在名称为graphic_db_tx_def的数据集DataSet中,该DataSet的数据结构如下:将图形数据库中的每一个节点Node的定义信息保存在名称为graphic_db_node_def的数据集DataSet中,该DataSet的数据结构如下: 列名称  数据类型  说明 node_id  Number  全局唯一的ID name  String  用于保存Node的名称在图形数据库中每个Node均有一个数据集DataSet,该DataSet中缺省内置如下两个列:用Relation描述Node与Node之间的关系,每一个Relation均有一个全局唯一的名称、一个源Node、一个目标Node,由源Node到目标Node的方向,称之为正向,由目标Node到起始Node的方向称之为反向,将每一个Relation的定义信息保存在名称为graphic_db_relation_def的DataSet中,该DataSet的数据结构如下:  列名称  数据类型  说明  relation_id  Number  全局唯一的ID  name  String  用于保存Relation的名称  source_node  Number  源Node的ID  target_node  Number  目标Node的ID两个通过Relation连接的Node中的数据可以建立连接,将所有数据的连接信息保存在名称为graphic_db_relation_record_def的DataSet中,该DataSet的数据结构如下:执行以下步骤:1)检查事务是否已过期,若过期则将该条记录存入待处理队列;2)计算待处理事务队列,通过遍历队列,计算队列的长度;3)检查队列的长度,如果长度大于0,则意味着有待处理的事务,继续下面的步骤;否则转步骤13),进入等待状态;4)将事务队列中的第一条记录从队列中取出,作为当前事务记录进行处理;5)检查事务是否已标记过期,如已过期则放弃本条记录,返回步骤2),否则继续下面的步骤;6)检查事务是否已标记提交,如已提交则放弃本条记录,返回步骤2),否则继续下面的步骤;7)检查事务是否已标记回滚,如已回滚则放弃本条记录,返回步骤2),否则继续下面的步骤;8)检查事务是否已被锁定,如已锁定则放弃本条记录,返回步骤2),否则继续下面的步骤;9)标记事务过期状态,将当前事务记录is_timeout列的值置为1,标记该条记录已过期;10)恢复事务锁定的数据记录;11)删除脏数据;12)删除事务记录,将当前事务记录从名为graphic_db_tx_def的DataSet中删除,完成本条事务的过期恢复操作,返回步骤2);13)轮循程序的线程休眠一段时间;14)检查轮循程序在内存中的退出标识变量,如果该变量的值为true,则意味着图形数据库将要关闭,退出检查的循环,否则返回步骤1),重复执行事务过期检查操作。
地址 100015 北京市朝阳区酒仙桥东路1号院5号楼3层