图形数据库非联机事务中修改数据的控制方法

文档序号:6655040阅读:269来源:国知局
专利名称:图形数据库非联机事务中修改数据的控制方法
技术领域
本发明涉及一种图形数据库非联机事务中修改数据的控制方法。
背景技术
通常在数据库系统中,事务是工作的离散单位。例如,一个数据库事务可以是修改一个用户的帐户平衡或库存项的写操作。联机事务处理系统实时地采集处理与事务相连的数据以及共享数据库和其它文件的地位的变化。在联机事务处理中,事务是被立即执行的。 在单一用户、单一数据库环境下执行事务是简单的,这是因为没有冲突问题或对数据库间同步的需求。在一个分布式环境下,写操作经常并行地在多个数据库服务器上发生。这样的并发事务处理需要一个“卷回”机制,以保证在一次写操作中系统失效的情况下,仍保证数据库的完整性。事务要么一起确认,要么放弃。如果一个或多个与事务有关的系统响应不一致,这意味着系统或通信可能出现了故障,因而就会放弃一个事务。可以看出,当多个用户试图同时改变数据的同一块时,就出现了冲突问题。

发明内容
为了解决上述问题,本发明提出了一种图形数据库非联机事务中修改数据的控制方法,它可在图形数据库未开启事务时修改数据。本发明采用的技术方案如下一种图形数据库非联机事务中修改数据的控制方法,其特征在于非联机事务处理自上而下分为三层最上层为暴露给外部调用程序的API ;中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用 Java语言的线程同步锁定特性实现,非同步区的操作则不受限制,在任何时间均可以进行;最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息;用Relation描述图形数据库中的节点与节点之间的关系,每一个Relation均有一个全局唯一的名称、一个源Node、一个目标Node,将每一个Relation的定义信息保存在名称为graphic_db_relation_def的DataSet中,该DataSet的数据结构如下
权利要求
1. 一种图形数据库非联机事务中修改数据的控制方法,其特征在于 非联机事务处理自上而下分为三层 最上层为暴露给外部调用程序的API ;中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用Java 语言的线程同步锁定特性实现,非同步区的操作则不受限制,在任何时间均可以进行;最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息;用Relation描述图形数据库中的节点与节点之间的关系,每一个Relation均有一个全局唯一的名称、一个源Node、一个目标Node,将每一个Relation的定义信息保存在名称为 graphic_db_relation_def 的 DataSet 中,该 DataSet 的数据结构如下
2.如权利要求1所述的图形数据库非联机事务中修改数据的控制方法,其特征在于 在所述步骤1)中,API传入如下参数nodejame,指定将要更新哪个Node中的数据; filter,过滤条件; data,将要更新的新数据。
3.如权利要求2所述的图形数据库非联机事务中修改数据的控制方法,其特征在于 在所述步骤幻中,确定待更新数据的详细步骤如下通过客户程序调用API时传入的filter参数作为过滤条件,对与API参数nodejame 同名的DatMet中的数据进行过滤,所有与过滤条件相匹配的数据均为待更新的数据记录。
4.如权利要求2所述的图形数据库非联机事务中修改数据的控制方法,其特征在于 在所述步骤幻中,检查待更新数据是否被事务锁定的详细步骤如下检查每一条待修改数据,如果有任何一条记录列_dirty的值为-1,且列_tX_no的值既不为空也不等于当前事务编号,则意味着在待修改数据中存在被其他事务锁定的情况。
5.如权利要求2所述的图形数据库非联机事务中修改数据的控制方法,其特征在于 在所述步骤6)中,检查与待更新数据相关的Relation是否被事务锁定的详细步骤如下查询名称为 graphic_db_relation_record_def 的 DataSet,过滤获取所有 source_ record或target_reCOrd列的值与待修改数据的RID相等的记录,依次检查这些记录的_ tx_no字段,如果有任何一条记录_tX_no列的值不为空,则意味着相关数据的Relation存在被其他事务锁定的情况。
全文摘要
本发明涉及图形数据库非联机事务中修改数据的控制方法,包括步骤1)客户程序调用API;2)进入同步区;3)确定待更新数据;4)检查待更新数据的条数,为0则程序结束;5)检查待更新数据是否被锁定,锁定则转步骤9);6)检查与待更新数据相关的Relation是否被锁定,锁定则转步骤9);7)从DataSet中依次更新在步骤3)中确定的待修改数据,将数据更新为调用API时传入的data参数的值;8)退出同步区,程序结束;9)等待;10)操作是否超时,超时则退出执行逻辑,否则转步骤2)再次进入同步区。本发明作为联机事务中修改数据的有效补充,在修改数据的应用场景中,如无需开启联机事务,则可调用非联机事务的API直接修改数据。避免开启事务、提交事务等额外操作,提高执行效率。
文档编号G06F9/46GK102193984SQ20111007297
公开日2011年9月21日 申请日期2011年3月25日 优先权日2011年3月25日
发明者于洪方, 井卫军, 刘健, 蒋建平, 陈升, 陈晞 申请人:北京世纪互联工程技术服务有限公司, 北京云快线软件服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1