图形数据库非联机事务中取消节点数据关系的方法

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

发明内容
为了解决上述问题,本发明提出了一种图形数据库非联机事务中取消节点数据关系的方法,它可在图形数据库未开启事务时取消节点数据关系。本发明采用的技术方案如下一种图形数据库非联机事务中取消节点数据关系的方法,其特征在于非联机事务处理自上而下分为三层最上层为暴露给外部调用程序的API ;中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用 Java语言的线程同步锁定特性实现,非同步区的操作则不受限制,在任何时间均可以进行;最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息;将图形数据库中的每一个节点Node的定义信息保存在名称为graphiC_db_n0de_ def的数据集DatMet中,该DatMet的数据结构如下
权利要求
1. 一种图形数据库非联机事务中取消节点数据关系的方法,其特征在于 非联机事务处理自上而下分为三层 最上层为暴露给外部调用程序的API ;中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用Java 语言的线程同步锁定特性实现,非同步区的操作则不受限制,在任何时间均可以进行;最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息;将图形数据库中的每一个节点Node的定义信息保存在名称为graphiC_db_n0de_def 的数据集DatMet中,该DatMet的数据结构如下
2.如权利要求1所述的图形数据库非联机事务中取消节点数据关系的方法,其特征在于在所述步骤1)中,API传入如下参数 source_node_name,源节点名禾尔; target_node_name,目标节点名禾尔; relatior^name,指定将要取消的关系的名称; source_record_RID,指定源节点数据的RID ; target_record_RID,指定目标节点数据的RID ; source_node_RID,源节点定义数据的RID ; target_node_RID,目标节点定义数据的RID。
3.如权利要求2所述的图形数据库非联机事务中取消节点数据关系的方法,其特征在于在所述步骤幻中,检查源节点数据是否被事务锁定的详细步骤如下 通过API参数source_node_name确定源节点,根据API中传入的source_record_RID 查询源节点中的数据,检查该数据中列_tX_no的值是否为空,如果不为空,则意味着该记录被事务锁定。
4.如权利要求2所述的图形数据库非联机事务中取消节点数据关系的方法,其特征在于在所述步骤4)中,检查目标节点数据是否被事务锁定的详细步骤如下 通过API参数target_node_name确定目标节点,根据API中传入的target_record_ RID查询目标节点中的数据,检查该数据中列_tX_no的值是否为空,如果不为空,则意味着该记录被事务锁定。
5.如权利要求2所述的图形数据库非联机事务中取消节点数据关系的方法,其特征在于在所述步骤幻中,检查与源节点数据相关的Relation是否被事务锁定的详细步骤如下查询名称为 graphic_db_relation_record_def 的 DataSet,过滤获取所有 source_ record 或 target_record 列的值与 API 传入的 source_record_RID 或 target_record_RID 相等的记录,依次检查这些记录的_tX_no字段,如果有任何一条记录_tX_no列的值不为空,则意味着相关数据的Relation存在被其他事务锁定的情况。
6.如权利要求2所述的图形数据库非联机事务中取消节点数据关系的方法,其特征在于在所述步骤6)中,取消关系详细分为如下步骤a.^ ^ graphic_db_re 1 ation_def 白勺 DataSet, SiJc^lJ name 白勺{tg API {t入白勺参数relation_name值相同的记录,获取该记录的Relation RID ;b.查询名称为graphic_db_relation_record_def的Datakt,通过如下过滤条件获取数据数据relation_id列的值为刚才查询获得的Relation RID ; 数据 source_node 列的值为 API 传入的 source_node_RID ; 数据 target_node 列的值为 API 传入的 target_node_RID ; 数据 source_record 列的值为 API 传入的 source_record_RID ; 数据 target_record 列的值为 API 传入的 target_record_RID ; 将匹配过滤条件的数据从DatMet中物理删除。
全文摘要
本发明涉及图形数据库非联机事务中取消节点数据关系的方法,包括步骤1)客户程序调用API,将参数数据传给图形数据库;2)进入同步区;3)检查源节点数据是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;4)检查目标节点数据是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;5)检查与源节点数据相关的Relation是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;6)取消关系;7)退出同步区,程序结束;8)等待一段时间;9)判断操作是否超时,若超时则退出执行逻辑,否则转步骤2)再次进入同步区。与联机事务中取消节点数据关系的操作相比较,非联机事务中取消节点数据关系的操作避免了大量的数据锁定检查,从而执行效率更高。
文档编号G06F9/46GK102193985SQ20111007297
公开日2011年9月21日 申请日期2011年3月25日 优先权日2011年3月25日
发明者于洪方, 井卫军, 刘健, 蒋建平, 陈升, 陈晞 申请人:北京世纪互联工程技术服务有限公司, 北京云快线软件服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1