用于存储编码三元组的数据库控制器、方法及系统技术方案

技术编号:9406321 阅读:114 留言:0更新日期:2013-12-05 06:09
本发明专利技术的实施例提供用于存储编码三元组的数据库控制器、方法及系统。每个三元组存储在数据项集合中的数据项内,数据项集合按照存储在数据项内的三元组来排序。每个数据项存储在多个存储节点中的存储节点上。数据库控制器包括:存储请求接收器,用于接收在数据库中存储三元组的请求;数据项生成模块,用于生成两个或更多个数据项,每个数据项具有三元组的不同版本。数据库控制器还包括指令分配器,用于针对两个或更多个数据项中的每一个,从多个数据节点中选择存储节点以指示存储数据项,该选择依赖于数据项在上述经排序的集合内的位置。指令分配器包括冗余模块,用于确保指示多个存储节点中的至少两个不同存储节点存储包括三元组的版本的数据项。

【技术实现步骤摘要】
用于存储编码三元组的数据库控制器、方法及系统
本专利技术涉及数据存储领域。具体地,本专利技术的实施例涉及用于描述图形数据的三元组在分布式存储环境内的存储。
技术介绍
关系数据库按照行与列来存储数据。行与列组成了需要在存储数据之前被限定的表。对这些表以及对包含在这些表上的数据之间的关系的限定被称为模式。关系数据库使用固定的模式。通过以节点和弧的形式存储数据,图形数据库表现出对关系数据库的显著扩展,其中节点表示实体或实例,弧表示任意两个节点之间的某种类型的关系。在无向图中,认为从节点A至节点B的弧与从节点B至节点A的弧相同。而在有向图中,这两个方向被处理为不同的弧。图形数据库用于各种不同的应用,这些应用一般可以分为两种主要类型。第一种类型由具有较大的类描述集的复杂的基于知识的系统组成(称为“基于知识的应用”),如智能决策支持及自学习。第二种类型包括涉及对交易数据进行图形搜索的应用(称为“交易数据应用”),如社交数据及商业智能。很多应用可以同时表现出这两个类型。但是,大多数应用可以主要地表征为基于知识的应用或交易数据应用。图形数据库可以用于维护能够将大量的结构化或非结构化数据存储在各种字段中的大型“语义网络”。语义网络以知识表示的形式被使用,并且是由表示概念的节点和表示这些概念之间的语义关系的弧组成的有向图。有多种类型的图形表示。图形数据可以作为多维数组或作为链接至其他符号的符号来存储在存储器中。另一种形式的图形表示是“元组”的使用,“元组”是由每个都具有特定类型的对象组成的有限序列或有序列表。已知包含n个对象的元组为“n元组”,其中n可以是大于0的任意非负整数。通常将长度为2的元组(2-元组)称为对(pair),将3-元组称为三元组,将4-元组称为四元组等等。资源描述框架(RDF)是作为语义网络标准的用于概念描述或信息建模的一般方法。当今可用的RDF数据量在不断地增长并且已经不可能将其存储在单个服务器中。为了能够存储和搜索大量的数据,必须在多个服务器中对数据进行维护。必须使用针对分布式系统专门定制的算法和数据结构以协同的方式来完成数据的添加、删除和查询。期望以使得能够进行计算效率高的数据查询、维护和操作的方式来存储图形数据。如同所有的计算硬件一样,也总是存在存储数据的存储节点(如服务器)会出现故障的某种风险。因此,已知在本领域中提供存储数据拷贝的“冗余”存储节点以防存储节点出现故障。但是,从基础设施的提供、维护及运行成本的方面来讲,提供这样的冗余存储节点会很昂贵。随着存储节点的可靠性的增加,从单次使用成本方面来讲,单纯为了在另一个节点出现故障时能够进行数据恢复而提供冗余存储节点的价值在不断减小。
技术实现思路
本专利技术的实施例提供了用于存储被编码为三元组的图形数据的数据库的数据库控制器,每个三元组包括主语、谓语和宾语,并且每个三元组存储在数据项集合中的数据项内,所述数据项集合是根据存储在数据项内的三元组来排序的。每个数据项存储在分布于网络中的多个存储节点中的存储节点中。该数据库控制器包括:存储请求接收器,其被配置成接收在该数据库中存储三元组的请求;以及数据项生成模块,其被配置成生成两个或更多个数据项,每个数据项具有三元组的以下不同版本:第一版本,其中在数据项中主语在谓语和宾语之前;第二版本,其中在数据项中谓语在主语和宾语之前;以及第三版本,其中在数据项中宾语在主语和谓语之前。数据库控制器还包括:指令分配器,其被配置成针对所述两个或更多个数据项中的每一个数据项,从所述多个存储节点中选择存储节点以指示存储该数据项,该选择是依靠该数据项在所述经排序的集合中的位置做出的。所述指令分配器包括冗余模块,所述冗余模块被配置成确保指示所述多个存储节点中的至少两个不同存储节点存储包括三元组的版本的数据项。有利地,本专利技术的实施例提供了容错分布式存储系统,其利用排序来存储和查询被存储为三元组的图形数据。实施例提供或实现了以下用于存储数据的技术:所述技术使得在对所存储的数据的范围查询的执行上以及当存储节点出现故障时对所存储的数据的恢复上都具有很高的效率。为了执行有效的范围查询(rangequery),按照至少两种(例如,三种)不同的顺序,例如,SPO、POS和OSP(其中贯穿本文献,可以用P表示谓语,用S表示主语,以及用O表示宾语)中的两种(或三种),来存储三元组。同一三元组的两个或更多个版本中的首项元素的变化是头等重要的。虽然不是必需的,但也期望剩余两个元素的位置的变化。所述冗余模块或等同的功能确保出于有效的范围查询目的而提供的三元组的至少两个不同版本还可以充当副本,以便当存储节点出现故障时提供容错性。总之,本专利技术的实施例提供了以下数据库,该数据库将图形数据存储为按两个或更多个版本复制的编码三元组,其中每个版本(以其被存储的形式)将该三元组的不同元素作为首项元素以提供有效的范围查询;并且该数据库还使用那些复制的版本来提供数据冗余以进行丢失数据的再生。在本专利技术的实施例中,每个三元组(如RDF三元组)被存储为数据项或数据项的一部分,例如存储为简单的字符串对象,并且在图形G中是唯一的。所以关于G的所有信息都保存在数据项中。三元组作为数据项(按照数据项来编码)被存储在有序数据集合中,该有序数据集合分布在分布式网络环境(如对等网络环境)中的网络存储节点中的处理中。运行在每个存储节点上的处理有利于存储数据项的有序子集。该处理和运行该处理的网络存储节点在本文献中或多或少可互换地被引用,从上下文中可以清楚地看出何时专门地意指前者或后者。本专利技术的实施例使得能够对数据运行有效的查询过程。例如,对dmin与dmax(当按次序放置时)之间的数据项范围进行检索的过程执行以下步骤:客户端应用程序向处理之一A发送请求;A执行映射功能,获取该处理的包含所请求的数据范围的一个子集的各个存储节点ID(或标记)(在示例性情况下,数据项均匀地分布并且每个处理负责存储大量的数据项)。例如,考虑客户端应用程序请求的数据项存储在处理A和处理B中;A向自身和向B广播对所请求的数据项的每个子集进行检索的请求;每个处理以所请求的数据项来回复A;A收集结果(保持它们的顺序)并且回复客户端应用程序。从上面的示例可以看出,本专利技术的实施例能够更有效地查询数据。此外,如在使用常规技术的情况下一样,不需要按请求中的每个数据项来重复步骤。本专利技术的实施例中的图形数据可以是有向图形数据,所以从第一图形节点至第二图形节点的弧不被认为是与从第二图形节点至第一图形节点的弧相同。语义网络形成为知识或信息的表示,其中图形节点表示概念如实体或实例,而弧表示概念之间的语义关系。在本专利技术的实施例中,将图形数据编码为三元组,所述三元组是三个对象的有限序列或有序列表,每个对象都具有特定类型。可选地,三元组可以是资源描述框架(RDF)三元组。贯穿本文献,应当理解,在引用“RDF三元组”的地方,它是三元组的示例性形式,遵守RDF标准。此外,对“三元组”的引用包括正在讨论的三元组是RDF三元组的可能性。类似地,在本文献其他地方所讨论的RDF处理器是用于API包装器与所存储的数据项之间的交互的处理器的示例。资源描述框架(RDF)是作为语义网络的标准的用于概念描述或信息建模的一般方法。对语义网络中的信息建模进行的标准化允许运本文档来自技高网
...
用于存储编码三元组的数据库控制器、方法及系统

【技术保护点】
一种用于存储被编码为三元组的图形数据的数据库的数据库控制器,每个三元组包括主语、谓语和宾语,并且每个三元组存储在数据项集合中的数据项内,所述数据项集合是按照存储在数据项内的三元组来排序的,每个数据项存储在分布于网络中的多个存储节点中的存储节点上;所述数据库控制器包括:存储请求接收器,其被配置成接收在所述数据库中存储三元组的请求;数据项生成模块,其被配置成生成两个或更多个数据项,每个数据项具有所述三元组的以下不同版本:第一版本,其中在所述数据项中主语在谓语和宾语之前;第二版本,其中在所述数据项中谓语在主语和宾语之前;以及第三版本,其中在所述数据项中宾语在主语和谓语之前;并且所述数据库控制器还包括:指令分配器,其被配置成针对所述两个或更多个数据项中的每一个数据项,从所述多个存储节点中选择存储节点以指示存储所述数据项,所述选择是依靠所述数据项在所述经排序的集合内的位置来做出的,所述指令分配器包括冗余模块,所述冗余模块被配置成确保指示所述多个存储节点中的至少两个不同存储节点存储包括所述三元组的版本的数据项。

【技术特征摘要】
2012.05.24 EP 12169354.31.一种用于存储被编码为三元组的图形数据的数据库的数据库控制器,每个三元组包括主语、谓语和宾语,并且每个三元组存储在数据项集合中的数据项内,所述数据项集合是按照存储在数据项内的三元组来排序的,每个数据项存储在分布于网络中的多个存储节点中的存储节点上;所述数据库控制器包括:存储请求接收器,其被配置成接收在所述数据库中存储三元组的请求;数据项生成模块,其被配置成生成两个或更多个数据项,每个数据项具有所述三元组的以下不同版本:第一版本,其中在所述数据项中主语在谓语和宾语之前;第二版本,其中在所述数据项中谓语在主语和宾语之前;以及第三版本,其中在所述数据项中宾语在主语和谓语之前;并且所述数据库控制器还包括:指令分配器,其被配置成针对所述两个或更多个数据项中的每一个数据项,从所述多个存储节点中选择存储节点以指示存储所述数据项,所述选择是依靠所述数据项在所述经排序的集合内的位置来做出的,所述指令分配器包括冗余模块,所述冗余模块被配置成确保指示所述多个存储节点中的至少两个不同存储节点存储包括所述三元组的版本的数据项,其中所述指令分配器被配置成以确定性方式从所述多个存储节点中选择存储节点以指示存储所述数据项,并且所述冗余模块被配置成在选择所述两个或更多个数据项的存储节点之后,获取被选择用于存储所述两个或更多个数据项的所述存储节点中的不同存储节点的数量的计数,并且如果所述计数小于所述冗余模块被配置成确保其被指示存储包括所述三元组的版本的数据项的不同存储节点的数量,则所述冗余模块被配置成指示所述多个存储节点中的特定数量的附加存储节点存储包括所述三元组的版本的另外数据项,所述特定数量等于所述计数与所述冗余模块被配置成确保其被指示存储包括所述三元组的版本的数据项的不同存储节点的数量之间的差,以及其中由所述附加存储节点存储的所述另外数据项存储在所述经排序的数据项集合之外。2.根据权利要求1所述的数据库控制器,其中所述数据项生成模块被配置成生成三个数据项,每个数据项具有所述三元组的所述第一版本、所述第二版本和所述第三版本中的不同版本。3.根据上述权利要求中任一项所述的数据库控制器,其中所述冗余模块被配置成确保指示所述至少两个不同存储节点中的每一个存储节点存储包括所述三元组的不同版本的数据项。4.根据权利要求1或2所述的数据库控制器,其中所述多个存储节点中有三个或更多个存储节点,并且所述冗余模块被配置成确保指示所述多个存储节点中的三个不同存储节点中的每一个存储节点存储包括所述三元组的版本的数据项。5.根据权利要求1所述的数据库控制器,其中每个所述数据项包括字符串对象,所述字符串对象包括所述数据项中存储的三元组的主语、谓语和宾语;并且所述数据项是根据对所述字符串对象的按字母顺序的比较来排序的。6.根据权利要求1或2所述的数据库控制...

【专利技术属性】
技术研发人员:努诺·卡瓦略
申请(专利权)人:富士通株式会社
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1