CN102193978B - 图形数据库非联机事务中删除数据的控制方法 - Google Patents

图形数据库非联机事务中删除数据的控制方法 Download PDF

Info

Publication number
CN102193978B
CN102193978B CN 201110072939 CN201110072939A CN102193978B CN 102193978 B CN102193978 B CN 102193978B CN 201110072939 CN201110072939 CN 201110072939 CN 201110072939 A CN201110072939 A CN 201110072939A CN 102193978 B CN102193978 B CN 102193978B
Authority
CN
China
Prior art keywords
data
node
relation
dataset
deleted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 201110072939
Other languages
English (en)
Other versions
CN102193978A (zh
Inventor
陈升
于洪方
井卫军
蒋建平
陈晞
刘健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Century Broadband Internet Data Center Co., Ltd.
Original Assignee
BEIJING CENTURY BROADBAND INTERNET DATA CENTER Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING CENTURY BROADBAND INTERNET DATA CENTER Co Ltd filed Critical BEIJING CENTURY BROADBAND INTERNET DATA CENTER Co Ltd
Priority to CN 201110072939 priority Critical patent/CN102193978B/zh
Publication of CN102193978A publication Critical patent/CN102193978A/zh
Application granted granted Critical
Publication of CN102193978B publication Critical patent/CN102193978B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及图形数据库非联机事务中删除数据的控制方法,包括步骤:1)客户程序调用API,将参数数据传给图形数据库;2)进入同步区;3)确定待删除数据;4)检查待删除数据是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;5)检查与待删除数据相关的Relation是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;6)从DataSet中物理删除在步骤3)中确定的待删除数据;7)退出同步区,程序结束;8)等待一段时间;9)判断操作是否超时,若超时则退出执行逻辑,否则转步骤2)再次进入同步区。本发明的优点是作为联机事务中删除数据的有效补充,在删除数据的应用场景中,如无需开启联机事务,则可调用非联机事务的API直接删除数据。

Description

图形数据库非联机事务中删除数据的控制方法
技术领域
本发明涉及一种图形数据库非联机事务中删除数据的控制方法。
背景技术
通常在数据库系统中,事务是工作的离散单位。例如,一个数据库事务可以是修改一个用户的帐户平衡或库存项的写操作。联机事务处理系统实时地采集处理与事务相连的数据以及共享数据库和其它文件的地位的变化。在联机事务处理中,事务是被立即执行的。在单一用户、单一数据库环境下执行事务是简单的,这是因为没有冲突问题或对数据库间同步的需求。在一个分布式环境下,写操作经常并行地在多个数据库服务器上发生。这样的并发事务处理需要一个“卷回”机制,以保证在一次写操作中系统失效的情况下,仍保证数据库的完整性。事务要么一起确认,要么放弃。如果一个或多个与事务有关的系统响应不一致,这意味着系统或通信可能出现了故障,因而就会放弃一个事务。可以看出,当多个用户试图同时改变数据的同一块时,就出现了冲突问题。
发明内容
为了解决上述问题,本发明提出了一种图形数据库非联机事务中删除数据的控制方法,它可在图形数据库未开启事务时删除数据。
本发明采用的技术方案如下:
一种图形数据库非联机事务中删除数据的控制方法,其特征在于:
非联机事务处理自上而下分为三层:
最上层为暴露给外部调用程序的API;
中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用Java语言的线程同步锁定特性实现,非同步区的操作则不受限制,在任何时间均可以进行;
最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息;
用Relation描述图形数据库中的节点与节点之间的关系,每一个Relation均有一个全局唯一的名称、一个源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的数据结构如下:
Figure BDA0000052008350000021
执行以下步骤:
1)客户程序调用API,将参数数据传给图形数据库;
2)进入同步区;
3)确定待删除数据;
4)检查待删除数据是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;
5)检查与待删除数据相关的Relation是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;
6)从DataSet中物理删除在步骤3)中确定的待删除数据;
7)退出同步区,程序结束;
8)等待一段时间;
9)判断操作是否超时,若超时则退出执行逻辑,否则转步骤2)再次进入同步区。
进一步地:
在所述步骤1)中,API传入如下参数:node_name,指定将要删除哪个Node中的数据;filter,过滤条件。
在所述步骤3)中,确定待删除数据的详细步骤如下:通过客户程序调用API时传入的filter参数作为过滤条件,对与API参数node_name同名的DataSet中的数据进行过滤,所有与过滤条件相匹配的数据均为待删除的数据记录。
在所述步骤4)中,检查待删除数据是否被事务锁定的详细步骤如下:检查每一条待删除数据,如果有任何一条记录列_dirty的值为-1,且列_tx_no的值既不为空也不等于当前事务编号,则意味着在待删除数据中存在被其他事务锁定的情况。
在所述步骤5)中,检查与待删除数据相关的Relation是否被事务锁定的详细步骤如下:查询名称为graphic_db_relation_record_def的DataSet,过滤获取所有source_record或target_record列的值与待删除数据的RID相等的记录,依次检查这些记录的_tx_no字段,如果有任何一条记录_tx_no列的值不为空,则意味着相关数据的Relation存在被其他事务锁定的情况。
本发明具有以下优点:
作为联机事务中删除数据的有效补充,在删除数据的应用场景中,如无需开启联机事务,则可调用非联机事务的API直接删除数据。
附图说明
图1为图形数据库的架构;
图2为节点之间的关系图;
图3为数据在DataSet中的存储方式;
图4为节点之间的引用图;
图5为联机事务处理流程;
图6为非联机事务处理流程;
图7为非联机事务处理的结构;
图8为删除数据的处理流程。
具体实施方式
本发明提出了一种图形数据库非联机事务中删除数据的控制方法,下面结合附图详细说明。
图形数据库概述
本发明图形数据库的架构自上而下可以分为三层。如图1所示,最上层为图形数据中各种概念对象的组织与实现。中间层为抽象的数据物理存储接口层,将物理存储的数据抽象为若干个数据集DataSet。底层为物理存储实现层,由程序借助现有的存储引擎实现,比如:传统的关系数据库,XML文件等等。
DataSet(数据集)
DataSet是图形数据库中数据的逻辑存储单元,图形数据库中的数据以及数据库自身的逻辑定义均存储在DataSet中,DataSet是一个抽象的接口,真实的数据可以通过遵循DataSet接口的实现程序存储在关系数据库、XML或自定义格式的文件中。每一个DataSet由一个全局唯一的名称和若干个列(Column)组成。DataSet中的列表支持如下两种数据类型:
  类型  说明
  String  用于保存文本性的描述信息
  Number  用于保存整数、浮点数等数字信息,或用来保存布尔值信息,用1表示true,用-1表示false.
表1
Node(节点)
Node为图形数据库中存储数据的逻辑单元,在图形数据库中,每一种记录实体均可抽象为Node,比如在表述一个计算机网络应用系统时,交换机中的端口、PC服务器的网卡、CPU、生产配件的厂商、我们为之提供服务的客户、系统中的用户、权限等等,每个Node拥有一个全局唯一的名称,和一些其特有的属性,用于记录配置信息,例如:相对于我们服务的客户,我们将其命名为Customer,其拥有如下属性:contractedAmount(合同总额)、industry(所属行业)、name(客户名称)、description(描述)等。在本发明中,Node的属性可以是如下类型的数据。
Figure BDA0000052008350000031
Figure BDA0000052008350000041
表2
每一个Node的定义信息均保存在名称为graphic_db_node_def的DataSet中,该DataSet的数据结构如下:
 列名称   数据类型   说明
 node_id   Number   全局唯一的ID
 name   String   用于保存Node的名称
表3
每一个Node中所定义的属性信息保存在名称为graphic_db_node_attr_def的DataSet中,该DataSet的数据结构如下:
Figure BDA0000052008350000042
表4
针对于Node的定义,物理存储的DataSet类似如下两个表:
Figure BDA0000052008350000043
表5
Figure BDA0000052008350000044
表6
每一个Node的数据信息保存在与其同名的DataSet中,假设我们有一个名称为Customer的Node,该Node有如下属性:
  属性名称   数据类型   说明
  RID   String   数据库内置
  name   String   客户名称
  contractedAmount   Number   合同金额
  industry   Reference   所属行业
  description   String   客户描述信息
表7
则该Node对应的DataSet结构为:
Figure BDA0000052008350000051
表8
物理存储的DataSet类似下表:
Figure BDA0000052008350000052
表9
RID(记录ID,Record ID)
在图形数据库中,每一个Node都会有一个名称为RID的属性,存储在Node中的每一条数据的RID值均是全局唯一的,作为该条记录在图形数据库中的标识。RID的数据类型为String型。每一个Node均含有该属性。RID格式为:Node名称+下划线+递增数字,一个典型的RID数值类似于如下形式:Industry_109。
Relation(关系)
每一类信息的实体均可以抽象为Node,在现实应用中,常常需要将这些Node按某种逻辑组织起来,Relation就是用来描述Node与Node之间的组织关系的。假设现在已有代表客户的Node:Customer,代表系统用户的Node:SysUser,在现实世界中,我们的一个销售人员会成为系统中的一个用户,并负责一些客户的销售、及沟通工作。因此,我们可以在SysUser与Customer之间建立一个名为SysUserServeCustomer的Relation来表述两者之间的关系。我们用图2来表述这种关系,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
表10
针对于Relation的定义,物理存储的DataSet类似下表:
Figure BDA0000052008350000061
表11
按照Relation的定义,两个通过Relation连接的Node中的数据可以建立连接。所有数据的连接信息保存在名称为graphic_db_relation_record_def的DataSet中,该DataSet的数据结构如下:
Figure BDA0000052008350000062
表12
在应用场景中,其物理存储的DataSet类似下表:
表13
Reference(引用)
在图形数据库抽象中,一些常用的Node会与其他大部分Node有关系,这些常用的Node数据量很有限、且基本不会发生变化,比如:国家、省、市等。如果采用Relation的方式来表述的话,则需要与其他Node之间建立的大量关系,这对后期的维护将会造成一定的困难。在此种情形下,可以考虑采用Reference的形式来表述关系。一个Node通过其所拥有的属性引用另外一个Node,在其实现形式上,很大程度与RDBMS(关系数据库)的Foreign Key(外键)相类似。某一条记录的Dictionary属性中保存的是另外一个Node中数据记录的RID。考虑之前我们讨论过的Node——Customer,拥有(industry)行业这一属性,假设在我们的应用场景中,行业的数量很有限,且不会经常发生变化。则可以用Reference属性的方式引用Industry这一Node中的某条记录。数据在DataSet中的存储方式如图3所示。
在本发明中我们用虚线表示Node之间的Reference,以区别于Relation,见图4。
联机事务与非联机事务
图形数据库中数据的操作可分为:“联机事务数据操作”与“非联机事务数据操作”。联机事务数据操作步骤依次为:创建联机事务、进行联机事务数据操作(在一个联机事务中该操作可以重复多次)、提交联机事务使操作生效或者回滚联机事务放弃操作。见图5所示。而非联机事务数据操作不受事务控制,直接调用图形数据库API即可,见图6所示。
如图7所示,本发明的非联机事务处理自上而下分为三层:
最上层为暴露给外部调用程序的API。
中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用Java语言的线程同步锁定特性实现。非同步区的操作则不受限制,在任何时间均可以进行。
最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息。非联机事务自身无状态信息,故不需要保存。仅保存数据信息。
在图形数据库中,联机事务的状态数据存储在名称为graphic_db_tx_def的DataSet中,该DataSet的数据结构如下:
Figure BDA0000052008350000071
Figure BDA0000052008350000081
表14
在图形数据库中每一个Node均有一个相对应的同名的DataSet,数据之间的Relation信息保存在名称为graphic_db_relation_record_def的DataSet中。这些DataSet中均缺省内置如下两个列:
Figure BDA0000052008350000082
表15
非联机事务中删除数据的控制
如图8所示,在非联机事务中,删除数据的处理逻辑如下:
(1)客户程序调用API,将参数传给图形数据库。API传入如下参数:
a.node_name,指定将要删除哪个Node中的数据。
b.filter,过滤条件
(2)进入同步区,同步区利用Java语言的synchronized线程同步锁定实现,在同一时刻,仅有一个操作能进入同步区。
(3)确定待删除数据。通过客户程序调用API时传入的filter参数作为过滤条件,对与API参数node_name同名的DataSet中的数据进行过滤,所有与过滤条件相匹配的数据均为待删除的数据记录。
(4)检查数据锁定。检查每一条待删除数据。如果有任何一条记录列_dirty的值为-1,且列_tx_no的值既不为空也不等于当前事务编号。则意味着在待删除数据中存在被其他事务锁定的情况。
(5)检查数据相关的Relation是否被锁定。查询名称为graphic_db_relation_record_def的DataSet,过滤获取所有source_record或target_record列的值与待删除数据的RID相等的记录,依次检查这些记录的_tx_no字段,如果有任何一条记录_tx_no列的值不为空。则意味着相关数据的Relation存在被其他事务锁定的情况。
(6)从DataSet中物理删除在步骤(3)中确定的待删除数据。
(7)退出同步区。跳出线程锁定的synchronized方法。
(8)等待10毫秒。执行当前逻辑的线程休眠10毫秒。
(9)判断操作是否超时,如果本次调用进入同步区的时间已超过30000毫秒(30秒)。则表明本次调用已超时,退出执行逻辑。否则转步骤(2)再次进入同步区。

Claims (1)

1.一种图形数据库非联机事务中删除数据的控制方法,其特征在于:
非联机事务处理自上而下分为三层:
最上层为暴露给外部调用程序的API;
中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之前均处于等待状态,该同步区的机制利用Java语言的线程同步锁定特性实现,非同步区的操作则不受限制,在任何时间均可以进行;
最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息;
用Relation描述图形数据库中的节点与节点之间的关系,每一个Relation均有一个全局唯一的名称、一个源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的数据结构如下:
Figure FDA00001667497000011
执行以下步骤:
1)客户程序调用API,将参数数据传给图形数据库;
2)进入同步区;
3)确定待删除数据;
4)检查待删除数据是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;
5)检查与待删除数据相关的Relation是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;
6)从DataSet中物理删除在步骤3)中确定的待删除数据;
7)退出同步区,程序结束;
8)等待一段时间;
9)判断操作是否超时,若超时则程序结束,否则转步骤2)再次进入同步区;
在所述步骤1)中,API传入如下参数:
node_name,指定将要删除哪个Node中的数据;
filter,过滤条件;
在所述步骤3)中,确定待删除数据的详细步骤如下:
通过客户程序调用API时传入的filter参数作为过滤条件,对与API参数node_name同名的DataSet中的数据进行过滤,所有与过滤条件相匹配的数据均为待删除的数据记录;
在所述步骤4)中,检查待删除数据是否被事务锁定的详细步骤如下:
检查每一条待删除数据,如果有任何一条记录列_dirty的值为-1,且列_tx_no的值既不为空也不等于当前事务编号,则意味着在待删除数据中存在被其他事务锁定的情况;
在所述步骤5)中,检查与待删除数据相关的Relation是否被事务锁定的详细步骤如下:
查询名称为graphic_db_relation_record_def的DataSet,过滤获取所有source_record或target_record列的值与待删除数据的RID相等的记录,依次检查这些记录的_tx_no字段,如果有任何一条记录_tx_no列的值不为空,则意味着相关数据的Relation存在被其他事务锁定的情况。
CN 201110072939 2011-03-25 2011-03-25 图形数据库非联机事务中删除数据的控制方法 Active CN102193978B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110072939 CN102193978B (zh) 2011-03-25 2011-03-25 图形数据库非联机事务中删除数据的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110072939 CN102193978B (zh) 2011-03-25 2011-03-25 图形数据库非联机事务中删除数据的控制方法

Publications (2)

Publication Number Publication Date
CN102193978A CN102193978A (zh) 2011-09-21
CN102193978B true CN102193978B (zh) 2012-12-05

Family

ID=44602048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110072939 Active CN102193978B (zh) 2011-03-25 2011-03-25 图形数据库非联机事务中删除数据的控制方法

Country Status (1)

Country Link
CN (1) CN102193978B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178425B1 (en) * 1997-02-26 2001-01-23 Siebel Systems, Inc. Method of determining the visibility to a remote database client of a plurality of database transactions using simplified visibility rules
CN101566986A (zh) * 2008-04-21 2009-10-28 阿里巴巴集团控股有限公司 联机事务处理中的数据处理方法和装置
CN101699439A (zh) * 2009-11-16 2010-04-28 中兴通讯股份有限公司 一种数据库的事务提交方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178425B1 (en) * 1997-02-26 2001-01-23 Siebel Systems, Inc. Method of determining the visibility to a remote database client of a plurality of database transactions using simplified visibility rules
CN101566986A (zh) * 2008-04-21 2009-10-28 阿里巴巴集团控股有限公司 联机事务处理中的数据处理方法和装置
CN101699439A (zh) * 2009-11-16 2010-04-28 中兴通讯股份有限公司 一种数据库的事务提交方法和装置

Also Published As

Publication number Publication date
CN102193978A (zh) 2011-09-21

Similar Documents

Publication Publication Date Title
CN100568244C (zh) 一种数据库动态查询的方法和系统
Van Der Lans Data Virtualization for business intelligence systems: revolutionizing data integration for data warehouses
CN103299267B (zh) 用于执行多租户存储中的交叉存储连接的方法和系统
CN101263492B (zh) 用于透明地存档的方法和设备
US8195698B2 (en) Hierarchy manager for master data management
US20090037395A1 (en) Persistent query system for automatic on-demand data subscriptions from mobile devices
US9508048B2 (en) System and method for integrated real time reporting and analytics across networked applications
US10210235B2 (en) Declarative data warehouse definition for object-relational mapped objects
US20070294215A1 (en) Method, system, and program product for generating a virtual database
CN103761140B (zh) 一种在异构关系型数据库中实现事务处理的方法
US11553023B2 (en) Abstraction layer for streaming data sources
CN107590399A (zh) 基于平台的数据隔离
US7325003B2 (en) Method and system for mapping datasources in a metadata model
CN102193979B (zh) 图形数据库非联机事务中查询数据的控制方法
CN102193986B (zh) 图形数据库中联机事务的实现方法
KR20220100971A (ko) 데이터베이스 애플리케이션들을 블록체인 애플리케이션들로 변환하는 방법 및 시스템
CN102193978B (zh) 图形数据库非联机事务中删除数据的控制方法
CN102193977B (zh) 图形数据库非联机事务中增加节点数据关系的方法
CN102193975B (zh) 图形数据库联机事务中事务提交机制的实现方法
CN102193984B (zh) 图形数据库非联机事务中修改数据的控制方法
CN102193989B (zh) 基于图形数据库的联机事务处理系统及数据插入方法
CN102193981B (zh) 图形数据库联机事务中事务过期机制的实现方法
CN102193982B (zh) 图形数据库联机事务中查询数据的控制方法
CN102193985B (zh) 图形数据库非联机事务中取消节点数据关系的方法
CN102193976B (zh) 图形数据库联机事务中事务回滚机制的实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Free format text: FORMER OWNER: BEIJING CLOUDEX SOFTWARE SERVICES CO., LTD.

Effective date: 20121022

Owner name: BEIJING CENTURY BROADBAND INTERNET DATA CENTER CO.

Free format text: FORMER OWNER: BEIJING BANYANO DATA CENTER SOLUTIONS LTD.

Effective date: 20121022

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20121022

Address after: 100015 No. 3, building 5, building 1, Jiuxianqiao East Road, Chaoyang District, Beijing

Applicant after: Beijing Century Broadband Internet Data Center Co., Ltd.

Address before: 100015 No. 3, building 5, building 1, Jiuxianqiao East Road, Chaoyang District, Beijing

Applicant before: Beijing BANYANO Data Center Solutions Ltd.

Applicant before: Beijing CloudEx Software Service Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant