【技术实现步骤摘要】
一种分布式原生图数据库的边存储实现方法、系统、设备及存储介质
[0001]本专利技术属于图数据库
,具体涉及一种分布式原生图数据库的边存储实现方法、系统、计算机设备及存储介质。
技术介绍
[0002]原生图数据库使用图模型进行数据存储,为存储和处理图而设计优化,可支持各类图算法的快速遍历,从而具有更好的性能。其中,免索引邻接是原生图处理的关键,在数据写入时,免索引邻接中通过直接存储每个顶点与其相邻的顶点和关系来加快处理速度。在数据查询处理期间,通过免索引邻接可实现快速检索。
[0003]对于分布式原生图数据库而言,图的分区存储方式有两种:边分割存储(Edge Cut)和点分割存储(Vertex Cut)。使用Edge Cut方式存储图时,任何一个顶点只会出现在一台机器上,而边可能分布在不同机器上,这种存储方式有可能导致边多次存储。使用Vertex Cut方式存储图时,任何一条边只会出现在一台机器上,而每相同的一个点可能分布到不同机器上,这种存储方式可能会导致顶点多次存储。
[0004]若分布式原生图数据 ...
【技术保护点】
【技术特征摘要】
1.一种分布式原生图数据库的边存储实现方法,分布式原生图数据库内有多个数据节点,在每个数据节点上均定义有顶点数组和边数组;其特征在于:包括以下步骤:步骤1:在每个数据节点上建立与边数组对应的邻接数组和顶点数组;所述邻接数组按照边的类型,分为出边邻接数组和入边邻接数组;所述顶点数组的结构表示为:[N]Address|last_out_edge_id|last_in_edge_id其中,中括号括起来的数字表示数组下标,也表示顶点在顶点数组中的ID,Address表示顶点的物理记录在数据文件中的地址,last_out_edge_id表示该顶点作为起始顶点时的上一条出边在出边邻接数组中的ID,last_in_edge_id表示该顶点作为终止顶点时的上一条入边在入边邻接数组中的ID;所述出边邻接数组的结构表示为:[N]Address|v1|v1_last_out_edge_id|v2|v2_last_in_edge_id|r_node_id|remote_eid其中,中括号括起来的数字表示数组下标,Address表示边的物理记录在数据文件中的地址,v1表示起始顶点在顶点数组中的ID,v1_last_out_edge_id表示起始顶点的上一条出边在出边邻接数组中的ID,v2表示终止顶点在顶点数组中的ID,v2_last_in_edge_id表示终止顶点的上一条入边在入边邻接数组中的ID,r_node_id表示远端边所在的数据节点ID,remote_id表示远端边在其数据节点上的出边邻接数组中的ID;所述入边邻接数组的结构表示为:[N]v1|v1_last_out_edge_id|v2|v2_last_in_edge_id|r_node_id|remote_eid步骤2:获取来自上层客户端的操作请求,根据操作请求执行相应操作,所述操作包括:插入边;所述操作请求包括起始顶点的信息、终止顶点的信息以及边属性信息;所述起始顶点的信息包括起始顶点在顶点数组中的ID、起始顶点的上一条出边在出边数组中的ID、所在数据节点ID和所属图ID;所述终止顶点的信息包括终止顶点在顶点数组中的ID、终止顶点的上一条入边在入边邻接数组中的ID、所在数据节点ID和所属图ID;步骤3:向上层客户端返回操作结果;其中,步骤2中,插入边操作包括以下步骤:S210:通过解析操作请求,判断待插入边的起始顶点和终止顶点是否在同一数据节点上,若在同一数据节点上,则执行S220;若不在同一数据节点上,则执行230;S220:先将待插入边的边属性信息插入数据文件中,再将待插入边的邻接信息插入到邻接数组中;S230:假定待插入边的起始顶点在数据节点Node1上,待插入边的终止顶点在数据节点Node2上;在数据节点Node1上存储待插入边的边属性信息,以及将待插入边的邻接信息插入到邻接数组中;在数据节点Node2上,将待插入边的邻接信息插入到邻接数组中。2.根据权利要求1所述的一种分布式原生图数据库的边存储实现方法,其特征在于:所述S220,具体包括:向数据文件中写入待插入边的边属性信息;为待插入边分配入边邻接数组中的ID;向出边邻接数组中写入待插入边的邻接信息,所述邻接信息包括:边的属性信息存放
的地址Address、所属图ID、本地边的ID、起始顶点在顶点数组中的ID、终止顶点在顶点数组中的ID、终止顶点所在数据节点ID和远端边在其数据节点上的出边邻接数组中的ID,此时远端边在其数据节点上的出边邻接数组中的ID设置为非法值。3.根据权利要求1所述的一种分布式原生图数据库的边存储实现方法,其特征在于:所述S230,具体包括:在数据节点Node1上,向数据文件中写入待插入边的边属性信息,为待插入边分配出边邻接数组中的ID,并将该出边邻接数组中的ID发往数据节点Node2,作为来自数据节点Node1的远端边在其数据节点上的出边邻接数组中的ID,同时接收来自数据节点Node2的远端边在其数据节点上的出边邻...
【专利技术属性】
技术研发人员:沈忱,王学海,徐奇,于骞,李科峰,
申请(专利权)人:达梦数据技术江苏有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。