一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种分布式图数据的数据局部性度量方法和系统与流程

2023-01-15 05:20:32 来源:中国专利 TAG:


1.本技术涉及图数据库查询领域,特别是涉及一种分布式图数据的数据局部性度量方法和系统。


背景技术:

2.在图数据库查询领域,如何最大限度地优化相关的查询计划具有重要意义,尤其是在分布式技术成熟的当下,当图数据库中一个链路上的数据被分布式存储后,在进行路径查询时需要通过多次网络io来获取数据。可见,图数据分布存储的局部性,直接影响到图数据库的bfs和dfs查询性能。因此,如何度量图数据库中数据存储局部性成为当下亟需解决的问题之一。
3.目前针对相关技术中如何度量图数据库中图数据的数据局部性的问题,尚未提出有效的解决方案。


技术实现要素:

4.本技术实施例提供了一种分布式图数据的数据局部性度量方法和系统,以至少解决相关技术中如何度量图数据库中图数据的数据局部性的问题。
5.第一方面,本技术实施例提供了一种分布式图数据的数据局部性度量方法,所述方法包括:对图数据库中各个图分区的图数据进行数据局部性计算,得到连通分量信息,其中,所述连通分量信息包括连通分量id;在所述图数据库中存储的图数据发生变动的情况下,根据所述变动的图数据实时计算更新对应图分区的连通分量信息。
6.在其中一些实施例中,在所述图数据库中存储的图数据发生变动的情况下,根据所述变动的图数据实时计算更新对应图分区的连通分量信息包括:在对所述图数据库中存储的边数据进行删除的情况下,根据所述边数据两端的节点信息进行实时判断,是否需要计算更新对应图分区的连通分量信息。
7.在其中一些实施例中,根据所述边数据的两端节点的信息进行实时判断,是否需要计算更新对应图分区的连通分量信息包括:根据所述边数据两端的节点信息进行实时判断;若所述两端节点仅通过所述边数据进行连通,则计算更新对应图分区的连通分量信息;若所述两端节点还通过其他边数据进行连通,则无需计算更新对应图分区的连通分量信息。
8.在其中一些实施例中,在所述图数据库中存储的图数据发生变动的情况下,根据所述变动的图数据实时计算更新对应图分区的连通分量信息还包括:在对所述图数据库进行边数据写入的情况下,实时判断所述边数据的两端节点是
否在同一图分区中;若是,则获取所述边数据的两端节点所属的连通分量id,根据所述连通分量id判断是否需要计算更新对应图分区的连通分量信息;若否,则无需计算更新对应图分区的连通分量信息。
9.在其中一些实施例中,根据所述连通分量id判断是否需要计算更新对应图分区的连通分量信息包括:若所述两端节点的连通分量id相同,则无需计算更新对应图分区的连通分量信息;若所述两端节点的连通分量id不相同,则计算更新对应图分区的连通分量信息。
10.在其中一些实施例中,所述连通分量信息还包括图分区中连通分量的个数和连通分量中的节点数,所述方法还包括:根据图分区中连通分量的个数、连通分量中的节点数,衡量对应图分区的数据局部性,若所述图分区的数据局部性存在不均衡,则将所述图分区内的图数据进行切分和迁移,或将不同图分区中的连通分量进行合并。
11.在其中一些实施例中,对图数据库中各个图分区的图数据进行数据局部性计算包括:图数据库中各个图分区互相之间无需通信、并发地进行各自数据局部性的计算。
12.在其中一些实施例中,对图数据库中各个图分区的图数据进行数据局部性计算包括:通过预设社区发现算法,对图数据库中各个图分区的图数据进行数据局部性计算,其中,所述预设社区发现算法包括连通分量算法、标签传播算法和模块度算法。
13.在其中一些实施例中,在对图数据库中各个图分区的图数据进行数据局部性计算之前,所述方法包括:手动触发数据局部性计算的任务;或者,通过定时任务以周期性地启动数据局部性计算的任务。
14.第二方面,本技术实施例提供了一种分布式图数据的数据局部性度量系统,所述系统包括全局更新模块和实时更新模块;所述全局更新模块,用于对图数据库中各个图分区的图数据进行数据局部性计算,得到连通分量信息,其中,所述连通分量信息包括连通分量id;所述实时更新模块,用于在所述图数据库中存储的图数据发生变动的情况下,根据所述变动的图数据实时计算更新对应图分区的连通分量信息。
15.相比于相关技术,本技术实施例提供的一种分布式图数据的数据局部性度量方法和系统,其中,该方法通过对图数据库中各个图分区的图数据进行数据局部性计算,得到连通分量信息,其中,连通分量信息包括连通分量id;在图数据库中存储的图数据发生变动的情况下,根据变动的图数据实时计算更新对应图分区的连通分量信息,解决了如何度量图数据库中图数据的数据局部性的问题,实现了分布式图数据库中对图分区数据局部性的实时精准度量,进而可以基于该数据局部性,实现图分区之间数据的负载均衡和局部性均衡。
附图说明
16.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1是根据本技术实施例的分布式图数据的数据局部性度量方法的步骤流程图;图2是根据本技术实施例的图数据库中边被删除的示意图一;图3是根据本技术实施例的图数据库中边被删除的示意图二;图4是根据本技术实施例的分布式图数据的数据局部性度量系统的结构框图;图5是根据本技术实施例的电子设备的内部结构示意图。
17.附图说明:41、全局更新模块;42、实时更新模块。
具体实施方式
18.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。基于本技术提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
19.显而易见地,下面描述中的附图仅仅是本技术的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本技术应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本技术公开的内容相关的本领域的普通技术人员而言,在本技术揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本技术公开的内容不充分。
20.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本技术所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
21.除非另作定义,本技术所涉及的技术术语或者科学术语应当为本技术所属技术领域内具有一般技能的人士所理解的通常意义。本技术所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本技术所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本技术所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本技术所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本技术所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
22.当前在衡量数据局部性方面主要存在以下问题:
1. 在计算数据的局部性时,图数据库与图计算系统最大的不同点在于图数据库中的数据是实时更新的,图计算中的数据是提前做好分区的静态数据,所以图计算领域所采用的预分区方式无法很好的应用到图数据库领域。
23.2. 业内一般使用图分区中维护的数据量、数据库运行时各分区的memory、cpu等系统指标来检测图数据分区的均衡性,但上述指标只是数据分布结果的表象,并不是数据均衡的根本指标。
24.因此,在本发明提出一种针对分布式图数据的数据局部性度量方法。针对数据批量入库和实时入库,设计两种对应的数据局部性度量方式,采用连通分量作为衡量数据局部性的指标,用连通分量中节点数量和各分区中管理的连通分量数来衡量图分区中的数据局部性(除了连通分量,也可以采用标签传播、模块度计算等社区发现算法的结果作为衡量局部性特性的辅助指标)。以连通分量作为数据局部性指标的合理性在于图的查询与遍历过程与图的连通性有高相关性。根据度量结果对数据进行再平衡,使各图分区中数据局部性保持近似,在满足数据负载均衡的前提下,保证了分区内部数据具有良好的数据局部性;在执行数据遍历查询等任务时,可以大大减少跨网络通信的成本。
25.本技术实施例提供了一种分布式图数据的数据局部性度量方法,图1是根据本技术实施例的分布式图数据的数据局部性度量方法的步骤流程图,如图1所示,该方法包括以下步骤:步骤s102,对图数据库中各个图分区的图数据进行数据局部性计算,得到连通分量信息,其中,连通分量信息包括连通分量id;具体地,根据图数据入库方式的不同,采取对应的数据局部性度量方式,步骤s102为图数据批量入库对应的度量方式,步骤s102的度量方式进一步包括如下步骤:s21,在大量图数据批量导入分布式图数据库后,手动触发数据局部性计算的任务;或者,通过定时任务以周期性地启动数据局部性计算的任务。
26.s22,图数据库中各个图分区互相之间无需通信、并发地通过预设社区发现算法,对图分区内部的边数据进行数据局部性的计算,其中,预设社区发现算法包括但不限于连通分量算法、标签传播算法和模块度算法。
27.s23,计算得出的连通分量信息包括连通分量id、图分区中连通分量的个数和连通分量中的节点数。该连通分量id用于数据实时更新时进行连通分量个数的实时更新;该图分区中连通分量的个数、连通分量中的节点数,用于衡量对应图分区的数据局部性(locality均衡性),若图分区的数据局部性存在不均衡,可以对图分区内的图数据进行切分和迁移,或者可以对不同图分区中的连通分量进行合并。
28.此外,需要说明的是:图数据库:专门设计用于存储图的一种数据库。不同于传统的关系型数据库(rdms),图中的关系(边)允许直接将存储区中的数据链接在一起,对于节点之间关联关系的检索操作更方便快速。
29.图分区:在分布式环境中数据需要被切分成多个分区,分别存储在分布式机器节点上。图分区一般涉及到数据的负载。
30.数据局部性 (locality均衡性):在数据计算的机器节点上,机器所需要的数据总是在当前计算机器上。数据局部性包括两方面,一是指刚刚被访问的元素会在极短时间内
再次被访问;二是指在分布式环境中将被访问的元素极有可能就与之前被访问过的元素位于同一机器。
31.连通分量:在图论中,分量又称为连通分量、元件、或分支,在分量中的任何两个顶点都可以经由该图上的边连接到另一个顶点,且没有任何一边可以连到其他子图的顶点。没有与任何其他顶点相连的单一顶点也可以算是一个分量。
32.步骤s104,在图数据库中存储的图数据发生变动的情况下,根据变动的图数据实时计算更新对应图分区的连通分量信息。
33.具体地,在图数据库中,影响图分区中数据局部性的数据是边数据,所以当图数据库中有边数据的删除和增加时会影响到数据局部性的变动,步骤s104为图数据实时入库对应的度量方式,步骤s104的度量方式进一步包括如下步骤:s41,在对图数据库中存储的边数据进行删除的情况下,根据边数据两端的节点信息进行实时判断;若两端节点仅通过边数据进行连通,则计算更新对应图分区的连通分量信息;若两端节点还通过其他边数据进行连通,则无需计算更新对应图分区的连通分量信息。
34.s41优选地,当图数据库中的边被删除时,根据边两端的节点信息进行判断,当前边所分割开的两个节点是否会导致图分区中连通分量数增加。
35.图2是根据本技术实施例的图数据库中边被删除的示意图一,如图2所示,若边a-b被删除,由于节点a与节点b之间只通过a-b这一条边进行连通,该边被删除后,节点a和节点b所在的连通分量被拆分成了两个分量,则该分区中所存储的数据的连通分量数 1,且节点a和节点b的属性需要更新成拆分为两个分量后的分量id。
36.图3是根据本技术实施例的图数据库中边被删除的示意图二,如图3所示,若节点a与节点b之间除了通过边a-b进行连通外,还可以通过边a-c-b进行连通,那么当边a-b被删除后,节点a和节点b所在的连通分量不会被拆分,此时分区中所存储的数据的连通分量数不变,即数据局部性特性不变。
37.s42,在对图数据库进行边数据写入的情况下,实时判断;若边数据的两端节点在同一图分区中,则获取边数据的两端节点所属的连通分量id,若两端节点的连通分量id相同,则无需计算更新对应图分区的连通分量信息,若两端节点的连通分量id不相同,则计算更新对应图分区的连通分量信息;若边数据的两端节点不在同一图分区中,则无需计算更新对应图分区的连通分量信息。
38.s42优选地,当图数据库中有边新增时,根据边的两端节点之间是否已有边存在来判断该分区中的连通分量个数。
39.新添加的边的两端节点在同一个分区中时,分别查询两端节点a、b的属性获取其所属的连通分量id(预先针对点数据增加一个额外的属性,用于标识当前节点所在的连通分量的id),若节点a和节点b属于同一个连通分量,即两个节点之间已经存在边,则该分区中连通分量个数不变,即数据局部性特性不变;若节点a和节点b属于两个不同的连通分量,即两个节点之间不存在边,则该图分区中连通分量个数减1,且连通分量的节点数更新为节点a所在连通分量节点数与节点b所在连通分量节点数之和。
40.新添加的边的两端节点不在同一个分区中时,边存储到源点所在的图分区中(也可以根据需求调整边存储到目标点所在分区,或者采用预设策略计算边应该存储到哪个分
区),此时分区中连通分量数不变,即数据的局部性特性不变。
41.通过本技术实施例中的步骤s102至步骤s104,以连通分量作为数据局部性的指标,针对数据批量入库和实时入库,设计两种对应的数据局部性度量方式,解决了如何度量图数据库中图数据的数据局部性的问题,实现了分布式图数据库中对图分区数据局部性的实时精准度量,进而可以基于该数据局部性,实现图分区之间数据的负载均衡和局部性均衡。
42.需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
43.本技术实施例提供了一种分布式图数据的数据局部性度量系统,图4是根据本技术实施例的分布式图数据的数据局部性度量系统的结构框图,如图4所示,该系统包括全局更新模块41和实时更新模块42;全局更新模块41,用于对图数据库中各个图分区的图数据进行数据局部性计算,得到连通分量信息,其中,连通分量信息包括连通分量id;实时更新模块42,用于在图数据库中存储的图数据发生变动的情况下,根据变动的图数据实时计算更新对应图分区的连通分量信息。
44.通过本技术实施例中的全局更新模块41和实时更新模块42,以连通分量作为数据局部性的指标,针对数据批量入库和实时入库,设计两种对应的数据局部性度量方式,解决了如何度量图数据库中图数据的数据局部性的问题,实现了分布式图数据库中对图分区数据局部性的实时精准度量,进而可以基于该数据局部性,实现图分区之间数据的负载均衡和局部性均衡。
45.需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
46.本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
47.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
48.需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
49.另外,结合上述实施例中的分布式图数据的数据局部性度量方法,本技术实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种分布式图数据的数据局部性度量方法。
50.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部
的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种分布式图数据的数据局部性度量方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
51.在一个实施例中,图5是根据本技术实施例的电子设备的内部结构示意图,如图5所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图5所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种分布式图数据的数据局部性度量方法,数据库用于存储数据。
52.本领域技术人员可以理解,图5中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
53.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
54.本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
55.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献