CN113656426B - 分布式数据处理方法、装置及设备 - Google Patents
分布式数据处理方法、装置及设备 Download PDFInfo
- Publication number
- CN113656426B CN113656426B CN202111218593.5A CN202111218593A CN113656426B CN 113656426 B CN113656426 B CN 113656426B CN 202111218593 A CN202111218593 A CN 202111218593A CN 113656426 B CN113656426 B CN 113656426B
- Authority
- CN
- China
- Prior art keywords
- vertex
- target
- data
- active
- distributed node
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 318
- 238000000034 method Methods 0.000 claims abstract description 59
- 239000012634 fragment Substances 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 27
- 238000003860 storage Methods 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 26
- 238000012546 transfer Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000006872 improvement Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009131 signaling function Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供了一种分布式数据处理方法、装置及设备,其中方法包括:确定目标图数据中当前参与数据处理的活跃顶点集合,若第一分布式节点的外存中保存有活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与活跃顶点集合相匹配的目标数据处理模式;根据目标数据处理模式,确定与任意活跃顶点具有关联关系的待更新顶点;根据第一分布式节点的外存中的该任意活跃顶点的第一数据,向待更新顶点所在的目标分布式节点发送第一更新消息,以使目标分布式节点根据第一更新消息对其外存中的待更新顶点的第二数据进行更新处理。
Description
技术领域
本文件涉及数据处理技术领域,尤其涉及一种分布式数据处理方法、装置及设备。
背景技术
由于单机内的数据处理方式不涉及网络通信和数据交互,因此具有数据处理简单方便、性能高等优点。基于此优点,单机内的数据处理方式也成为了当前主流的数据处理方式。然而,随着互联网技术的飞速发展,各行各业的数据规模呈现剧增态势,数据处理需要较多资源,当前主流的单机内的数据处理方式由于资源有限,已无法满足当前大数据的处理需求。
发明内容
本说明书一个或多个实施例提供了一种分布式数据处理方法。该方法包括确定目标图数据中当前参与数据处理的活跃顶点集合。其中,所述目标图数据是预先基于多个关联的目标事件的事件信息生成。所述事件信息包括相应目标事件的多个事件要素。所述目标图数据的每个顶点对应一个所述事件要素。所述目标图数据的每条边连接具有关联关系的所述顶点。若第一分布式节点的外存中保存有所述活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式。根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点。根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息。以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
本说明书一个或多个实施例提供了一种分布式数据处理装置。该装置包括第一确定模块,确定目标图数据中当前参与数据处理的活跃顶点集合。其中,所述目标图数据是预先基于多个关联的目标事件的事件信息生成。所述事件信息包括相应目标事件的多个事件要素。所述目标图数据的每个顶点对应一个所述事件要素。所述目标图数据的每条边连接具有关联关系的所述顶点。该装置还包括第二确定模块,若第一分布式节点的外存中保存有所述活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式。该装置还包括第三确定模块,根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点。该装置还包括发送模块,根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息。以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
本说明书一个或多个实施例提供了一种分布式数据处理设备。该设备包括处理器。该设备还包括被安排成存储计算机可执行指令的存储器。所述计算机可执行指令在被执行时使所述处理器确定目标图数据中当前参与数据处理的活跃顶点集合。其中,所述目标图数据是预先基于多个关联的目标事件的事件信息生成。所述事件信息包括相应目标事件的多个事件要素。所述目标图数据的每个顶点对应一个所述事件要素。所述目标图数据的每条边连接具有关联关系的所述顶点。若第一分布式节点的外存中保存有所述活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式。根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点。根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息。以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
本说明书一个或多个实施例提供了一种存储介质。该存储介质用于存储计算机可执行指令。所述计算机可执行指令在被处理器执行时确定目标图数据中当前参与数据处理的活跃顶点集合。其中,所述目标图数据是预先基于多个关联的目标事件的事件信息生成。所述事件信息包括相应目标事件的多个事件要素。所述目标图数据的每个顶点对应一个所述事件要素。所述目标图数据的每条边连接具有关联关系的所述顶点。若第一分布式节点的外存中保存有所述活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式。根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点。根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息。以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图;
图1为本说明书一个或多个实施例提供的一种图数据的示意图;
图2为本说明书一个或多个实施例提供的一种分布式数据处理方法的场景示意图;
图3为本说明书一个或多个实施例提供的一种分布式数据处理方法的第一种流程示意图;
图4为本说明书一个或多个实施例提供的一种分片数据对应的图数据的示意图;
图5为本说明书一个或多个实施例提供的一种分布式数据处理方法的第二种流程示意图;
图6为本说明书一个或多个实施例提供的一种分布式数据处理方法的第三种流程示意图;
图7为本说明书一个或多个实施例提供的一种分布式数据处理方法的第四种流程示意图;
图8为本说明书一个或多个实施例提供的一种分布式数据处理方法的第五种流程示意图;
图9为本说明书一个或多个实施例提供的一种分布式数据处理方法的第六种流程示意图;
图10为本说明书一个或多个实施例提供的一种分布式数据处理方法的第七种流程示意图;
图11为本说明书一个或多个实施例提供的一种分布式数据处理方法的第八种流程示意图;
图12为本说明书一个或多个实施例提供的一种分布式数据处理装置的模块组成示意图;
图13为本说明书一个或多个实施例提供的一种分布式数据处理设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
为了提升大数据的处理效率,本说明书中将大数据转换为图的形式进行处理,以对具有关联关系的数据进行关联和集中处理。具体的,根据多个关联事件的事件信息生成对应的图数据。其中,图数据包括多个顶点(vertex)和多条边(edge);事件信息包括相应事件的多个事件要素;图数据的每个顶点对应一个事件要素,图数据的每条边连接具有关联关系的顶点,由边相连的两个顶点互为邻居顶点。
图数据可以表示为G = (V, E),其中,G表示图数据,即一张图,V表示图G中所有顶点的集合,E表示图G中所有边的集合。u和v表示V中的任意两个顶点,即u, v ∈ V。任意两个顶点之间的边可以用e表示,例如顶点u和顶点v之间的边e可以表示为e = (u, v)。
边可以是有方向的,也可以是没方向的。有方向的边可以被称为有向边,没有方向的边可以被称为无向边。包括有向边的图可以被称为有向图,包括无向边的图可以被称为无向图。
有向边由入点指向出点,其中,入点还可以为称为源顶点(source,或简称src),出点还可以称为目标顶点(destination,或简称dst),后文中采用入点和出点的方式进行描述。对于入点来说,有向边可被称为入点的出边;对于出点来说,有向边可被称为出点的入边。例如,边e = (u, v)可以表示边e为由顶点u(入点)指向顶点v(出点)的一条有向边。对于顶点u来说,边e为出边,对于顶点v来说,边e为入边。
无向边可以转化为两个不同方向的有向边。例如,边e可以为顶点u和顶点v之间的一条无向边。边e可以转化为两条有向边e1和e2。其中,边e1可以为由顶点u指向顶点v的一条边,表示为e1 = (u, v)。边e2可以为由顶点v指向顶点u的一条边,表示为e2 = (v, u)。
由于无向边可以转换为有向边,故本说明书实施例中以包括有向边的图数据进行说明,对于包括无向边的图数据的处理方式可以参考该包括有向边的图数据的处理方式。为了便于理解,本说明书实施例提供了一种包括有向边的图数据的示意图,如图1所示,由图1可以看出,该图数据包括10个顶点和16条边。为了便于描述各顶点,本说明书中采用序号予以区分。
考虑到现有单机内的数据处理方式由于资源有限,而无法满足大数据的处理需求,基于此,本说明书实施例中采用分布式数据处理系统(以下简称为分布式系统)对上述图数据进行分布式处理。图2为本说明书一个或多个实施例提供的分布式数据处理方法的应用场景示意图,如图2所示,该场景包括:分布式系统中的n个分布式节点;其中,n为大于1的整数;分布式节点可以为手机、平板电脑、台式计算机、便携笔记本式计算机等(图2 中仅示出台式计算机)等终端设备;分布式节点可以是服务器。
具体的,预先基于多个关联的目标事件的事件信息生成目标图数据。其中,目标图数据包括多个节点和多条边;事件信息包括相应目标事件的多个事件要素;目标图数据的每个顶点对应一个事件要素,目标图数据的每条边连接具有关联关系的顶点。为便于描述,将分布式系统中的分布式节点0称为第一分布式节点,该第一分布式节点迭代确定目标图数据中当前参与数据处理的活跃顶点集合,若确定第一分布式节点的外存中保存有活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与活跃顶点集合相匹配的目标数据处理模式;第一分布式节点根据目标数据处理模式,确定与该任意活跃顶点具有关联关系的待更新顶点;以及,根据第一分布式节点外存中的该任意活跃顶点的第一数据,向确定的待更新顶点所在的目标分布式节点发送第一更新消息,以使目标分布式节点根据第一更新消息对其外存中的待更新顶点的第二数据进行更新处理。
可以理解的是,第一分布式节点不限为分布式节点0,其可以是分布式系统中的任一分布式节点。分布式系统中的每个分布式节点均按照上述第一分布式节点的数据处理方式对目标图数据进行处理。由此,由此,基于多个关联的目标事件的事件信息生成目标图数据,并基于目标图数据进行数据处理,不仅实现了大数据中数据的有效关联和关联数据的集中处理,而且能够提升数据的处理效率。通过采用分布式数据处理系统,并在每个分布式节点的外存中保存目标图数据的相关数据,不仅实现了对内存的有效扩展,而且由于分布式节点可以并行的进行数据处理,因此能够满足大数据的处理需求且保障数据处理效率。此外,分布式数据处理系统支持多种数据处理模式,通过确定与当前的活跃顶点集合相匹配的目标数据处理模式,不仅提升了分布式数据处理系统的数据处理性能,而且进一步提升了数据处理效率。
基于上述应用场景架构,本说明书一个或多个实施例提供了一种分布式数据处理方法。图3为本说明书一个或多个实施例提供的一种分布式数据处理方法的流程示意图,图3中的方法能够由图2中的第一分布式节点执行。如图3所示,该方法包括以下步骤:
步骤S102,确定目标图数据中当前参与数据处理的活跃顶点集合;其中,目标图数据是预先基于多个关联的目标事件的事件信息生成,事件信息包括相应目标事件的多个事件要素;目标图数据的每个顶点对应一个事件要素,目标图数据的每条边连接具有关联关系的顶点;
由于多个关联的目标事件的各事件要素之间具有一定的依赖关系,即至少一个事件要素是基于另外的至少一个事件要素的改变而改变,本说明书中将该另外的至少一个事件要素所对应的顶点称为参与数据处理的活跃顶点,该活跃顶点组成活跃顶点集合。可以理解的是,活跃顶点集合中可以包括一个或多个活跃顶点。
通常的,由于目标图数据中包括多个顶点,因此对目标图数据的一次处理通常包括多轮迭代。对于第一轮迭代而言,用户可以操作某个分布式节点以输入活跃顶点集合,当该分布式节点获取到用户输入的活跃顶点集合后,向所在分布式系统中的每个分布式节点发送活跃顶点集合的相关消息,以使各分布式节点将该相关消息对应的活跃顶点集合,确定为目标图数据中当前参与数据处理的活跃顶点集合。在第一轮迭代处理完成后,即可自动根据处理结果更新活跃顶点集合,活跃顶点集合的更新过程可参见后文的相关描述。需要指出的是,对目标图数据的一次处理也可以仅包括一轮迭代,例如第一轮迭代后,确定不存在活跃顶点集合了,则确定对目标图数据的处理结束。
目标事件可以在实际应用中根据需要自行设定,对此本说明书不做具体限定。可以理解的是,事件信息和事件要素可以随目标事件的不同而不同。在一种可行的实施方式中,目标事件可以是资源转移事件,相应的,事件要素可以是资源转出账户、资源转入账户等,事件信息可以包括该资源转出账户的账户信息、该资源转入账户的账户信息等,边可以表示资源的转移路径。在另一种可行的实施方式中,目标事件可以是学术文件(例如论文、专利文献等)的引用事件,相应的,事件要素可以是引用学术文件、被引用学术文件等,事件信息可以包括该引用学术文件的文件信息、被引用学术文件的文件信息等;边可以表示不同学术文件之间的引用关系。在又一种可行的实施方式中,目标事件可以是产品的流转事件,相应的,事件要素可以包括产品流出地、产品流入地等,事件信息可以包括该产品流出地的信息、产品流入地的信息等;边可以表示产品的流转路径。对于目标事件的事件类型,本说明书中不再一一列举说明。可以理解的是,每个事件要素可以分为多个级别,以事件要素“产品流出地”为例进行说明,可以包括一级产品流出地(例如产品的生产厂家)、二级产品流出地(例如某省份的库房)、三级产品流出地(例如某城市的库房)、四级产品流出地(例如某城市某区域的库房)、五级产品流出地(例如某城市某区域的销售点)等。
步骤S104,若第一分布式节点的外存中保存有活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与活跃顶点集合相匹配的目标数据处理模式;
考虑到分布式节点的内存空间有限,为了实现对内存的扩展并提升数据处理效率,本说明书一个或多个实施例中,预先对目标图数据进行划分处理,以将目标图数据的各顶点和边分散的保存在各分布式节点的外存中,当第一分布式节点确定其外存中保存有活跃顶点集合中的任意活跃顶点时,进行后续处理。例如,活跃顶点集合包括顶点1、顶点3和顶点4;第一分布式节点的外存中保存有顶点3和顶点5,则第一分布式节点继续执行后续操作,以对顶点3的相关数据进行处理。
步骤S106,根据目标数据处理模式,确定与任意活跃顶点具有关联关系的待更新顶点;
本说明书提供的不同的数据处理模式中,对待更新顶点的确定方式不同,可参见后文中的相关描述。
步骤S108,根据外存中的任意活跃顶点的第一数据,向待更新顶点所在的目标分布式节点发送第一更新消息,以使目标分布式节点根据第一更新消息对其外存中的待更新顶点的第二数据进行更新处理。
本说明书一个或多个实施例中,确定目标图数据中当前参与数据处理的活跃顶点集合,若第一分布式节点的外存中保存有活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与活跃顶点集合相匹配的目标数据处理模式;根据目标数据处理模式,确定与该任意活跃顶点具有关联关系的待更新顶点;以及,根据外存中的该任意活跃顶点的第一数据,向待更新顶点所在的目标分布式节点发送第一更新消息,以使目标分布式节点根据第一更新消息对其外存中的待更新顶点的第二数据进行更新处理。由此,基于多个关联的目标事件的事件信息生成目标图数据,并基于目标图数据进行数据处理,不仅实现了大数据中数据的有效关联和关联数据的集中处理,避免数据遗漏,而且能够提升数据的处理效率。通过采用分布式数据处理系统,并在每个分布式节点的外存中保存目标图数据的相关数据,不仅实现了对内存的有效扩展,而且由于分布式节点可以并行的进行数据处理,因此能够满足大数据的处理需求且保障数据处理效率。此外,分布式数据处理系统支持多种数据处理模式,通过确定与当前的活跃顶点集合相匹配的目标数据处理模式,不仅提升了分布式数据处理系统的数据处理性能,而且进一步提升了数据处理效率。
为了实现分布式数据处理,本说明书一个或多个实施例中,可以由指定设备按照预设的数据划分方式对目标图数据进行划分处理,并将划分处理得到的分片数据发送给分布式数据处理系统中相应的分布式节点。相应的,步骤S102之前还可以包括以下步骤:
接收指定设备发送的分片数据和目标图数据的属性信息;其中,该分片数据由指定设备按照预设的数据划分方式对目标图数据进行划分处理所得;将接收到的分片数据和属性信息保存至第一分布式节点的外存中。
本说明书一个或多个实施例中,还可以预先为分布式数据处理系统中的分布式节点分配预处理权限,并由具有该预处理权限的分布式节点对目标图数据进行划分处理后发送给分布式数据处理系统中的每个分布式节点。相应的,步骤S102之前还可以包括以下步骤:
若确定第一分布式节点具有预处理权限,则根据预设的数据划分方式对目标图数据进行划分处理,得到待分配给所在分布式系统中的每个分布式节点的分片数据;将分片数据和目标图数据的属性信息发送给分布式系统中的每个分布式节点,以使各分布式节点将接收到的分片数据和属性信息保存至外存中。
当第一分布式节点接收到其发送给自身的分片数据和目标图数据的属性信息时,将接收到的分片数据和属性信息保存至第一分布式节点的外存中。
上述的分片数据可以包括划分的顶点子集、该顶点子集中各顶点的入边所对应的入边集合、该顶点子集中各顶点的出边所对应的出边集合、该顶点子集中每个顶点的主备份、与该顶点子集中每个顶点构成有向边的顶点的镜像备份等;主备份包括相应顶点所对应的事件要素的要素数据,镜像备份用于传递消息。第二数据可以包括主备份。其中,要素数据随事件要素的不同而不同,例如事件要素为资源转出账户,要素数据可以包括该资源转出账户中的资源总量、每次转出资源时的资源转出数据,以及当其作为资源转入账户时的资源转入数据等。又如,事件要素为产品流出地,要素数据可以包括该产品流出地的产品总量,产品的流出数量、产品的流入地等。
目标图数据的属性信息可以包括目标图数据的边的第一数量、目标图数据中每个顶点的出边的第二数量等。
为便于理解,以图1所示的图数据为目标图数据,分布式系统包括分布式节点0和分布式节点1为例进行说明。预设的数据划分方式可以是连续块状划分方式,并将顶点0至顶点4划分给分布式节点0,将顶点5至顶点9划分给分布式节点1。相应的,分布式节点0的外存中保存的分片数据可以包括划分的顶点子集V_0{0,1,2,3,4},出边集合Eout_0{(0,1),(0,2),(1,3),(1,4),(2,3),(2,4),(5,4)},入边集合Ein_0{(1,0),(2,0),(5,0),(6,0),(3,1),(4,1),(3,2),(4,2),(7,2),(9,4)}。分布式节点1的外存中保存的分片数据可以包括划分的顶点子集V_1{5,6,7,8,9},出边集合Eout_1{(0,5),(0,6),(2,7),(4,9),(5,7),(5,8),(6,7),(6,8),(7,9)},入边集合Ein_1{(4,5),(7,5),(8,5),(7,6),(8,6),(9,7)}。其中,出边集合中,每条边的表示方式可以为入点在前,出点在后;入边集合中,没条边的表示方式可以为出点在前,入点在后;可以理解的是,其均表示由入点指向出点的边。分布式节点0和分布式节点1的外存中保存的分片数据可以分别对应图4中的a和b所示的图数据,其中,白色的顶点为主备份对应的顶点,也即分布式节点外存中保存的顶点子集中的顶点;黑色的顶点表示镜像备份对应的顶点。
通过对目标图数据进行划分处理,并将划分得到的分片数据保存至分布式节点的外存中,不仅实现了对内存的有效扩展;而且各分布式节点能够并行的进行数据处理,相较于现有的单机内存的数据处理方式,既提升了数据处理效率,又降低了单机的数据处理压力,能够满足大数据的处理需求。需要指出的是,在实际应用中,也可以人为对目标图数据进行划分处理,并将划分得到的分片数据和目标图数据的属性信息预置在每个分布式节点的外存中。
为了提升当前参与数据处理的活跃顶点集合的处理效率,本说明书一个或多个实施例中,基于活跃顶点集合的稠密度确定相匹配的目标数据处理方式。具体的,如图5所示,步骤S104可以包括以下步骤S104-2和步骤S104-4:
步骤S104-2,若第一分布式节点的外存中保存有活跃顶点集合中的任意活跃顶点,则根据预设的计算方式计算活跃顶点集合的稠密度;
具体的,统计活跃顶点集合中活跃顶点的第三数量,根据第一分布式节点的外存中保存的第二数量统计活跃顶点集合中各活跃顶点的出边的总数量,将总数量确定为第四数量;根据预设的计算方式,基于第三数量和第四数量计算活跃顶点集合的稠密度。
其中,根据预设的计算方式,基于第三数量和第四数量计算活跃顶点集合的稠密度可以包括:计算第三数量与第四数量的加和,将计算结果确定为活跃顶点集合的稠密度。
本说明书实施例提供的各数据模式中,根据对目标图数据的搜索路径的不同,可以分为两种搜索方式:广度优先搜索和深度优先搜索,对于广度优先搜索和深度优先搜索的具体搜索过程可参考现有技术,这里不再赘述。本说明书中以广度优先搜索为例进行说明,例如,在第一轮迭代过程中,确定的活跃顶点集合为{0},即活跃顶点集合仅包括顶点0,统计活跃顶点集合中活跃顶点的第三数量为1,根据第一分布式节点的外存中保存的第二数量统计活跃顶点集合中各活跃顶点的出边的总数量为顶点0的出边的总数量4,计算得到的活跃顶点集合的稠密度为1+4=5。又如,在第一轮迭代结束后,基于如1所示的目标图数据确定的第二轮迭代对应的活跃顶点集合为{1,2,5,6},即活跃顶点集合仅包括顶点1、顶点2、顶点5和顶点6,统计的第三数量为4,第四数量为10,计算的稠密度为4+10=14。
步骤S104-4,根据计算的稠密度,确定预设的推动数据处理模式和拉动数据处理模式中与活跃顶点集合相匹配的目标数据处理模式。
具体的,根据第一分布式节点的外存中保存的第一数量确定比对稠密度,并确定活跃顶点集合的稠密度是否不小于该比对稠密度;若是,则将拉动数据处理模式确定为目标数据处理模式;若否,则将推动数据处理模式确定为目标数据处理模式。其中,推动数据处理模式还可以称为push模式,拉动数据处理模式还可以称为pull模式。
根据第一分布式节点的外存中保存的第一数量确定比对稠密度,可以包括:计算第一数量与预设值的比例,并将计算结果确定为比对稠密度。预设值可以在实际应用中根据目标图数据的规模自行设定,例如,基于图1所示的目标图数据,预设值为2,则第一轮迭代过程中,计算的比对稠密度为16/2=8,由于计算的活跃顶点集合的稠密度5小于8,因此确定目标数据处理模式为推动数据处理模式。又如,在第二轮迭代过程中,计算的活跃顶点集合的稠密度14大于8,因此确定目标数据处理模式为拉动数据处理模式。
通过计算活跃顶点集合的稠密度,并根据该稠密度确定目标数据处理模式,能够提升活跃顶点集合的处理效率。
进一步的,如图6所示,当目标数据处理模式为推动数据处理模式时,步骤S106可以包括以下步骤S106-2至步骤S106-4:
步骤S106-2,若确定目标数据处理模式为推动数据处理模式,则根据第一分布式节点的外存中保存的出边集合和镜像备份,确定保存的任意活跃顶点作为入点时所对应的目标出点;
仍以图1所示的图数据为目标图数据,分布式系统包括前述分布式节点0和分布式节点1为例进行说明,在第一轮迭代过程中,活跃顶点集合为{0},由于顶点0保存在分布式节点0中,因此在步骤S104中,分布式节点1确定其外存中未保存活跃顶点集合中的任意活跃顶点,不做任何处理。分布式节点0在步骤S104中确定其外存中保存有活跃顶点集合中的活跃顶点,且根据计算的稠密度确定目标数据处理模式为推动数据处理模式,因此,在步骤S106-2中,根据分布式节点0的外存中保存的出边集合和镜像备份,确定顶点0作为入点时,对应的目标出点为顶点1、顶点2、顶点5和顶点6。
步骤S106-4,将目标出点确定为待更新顶点;
例如,将步骤S106-2中确定的顶点1、顶点2、顶点5和顶点6确定为待更新顶点。
与上述步骤S106-2和步骤S106-4对应的,如图6所示,步骤S108可以包括以下步骤S108-2至步骤S108-6:
步骤S108-2,从第一分布式节点的外存中获取保存的任意活跃顶点的第一数据;
步骤S108-4,确定待更新顶点和待更新顶点的镜像备份所在的目标分布式节点;
具体的,可以预先建立每个顶点与顶点所在的分布式节点的关联关系,以及预先建立每个顶点的镜像备份与镜像备份所在分布式节点的关联关系;并将建立的关联关系保存至每个分布式节点中,第一分布式节点根据该关联关系,确定待更新顶点所在的目标分布式节点以及待更新顶点的镜像备份所在的目标分布式节点。
序接前述第一轮迭代的示例,分布式节点0根据保存的关联关系,确定待更新顶点顶点1和顶点2在分布式节点0中,待更新顶点顶点5和顶点6在分布式节点1中,顶点2的镜像备份在分布式节点1中,顶点5和顶点6的镜像备份在分布式节点0中,则将分布式节点0和分布式节点1确定为目标分布式节点。
步骤S108-6,根据保存的任意活跃顶点的顶点信息和外存中该活跃顶点的第一数据,向目标分布式节点发送第一更新消息,以使目标分布式节点根据第一更新消息对其外存中的待更新顶点的第二数据进行更新处理。
其中,顶点信息可以是顶点标识,还可以是顶点对应的事件要素。以目标事件为资源转移为例进行说明,活跃顶点可以对应资源转出账户,活跃顶点的顶点信息可以是资源转出账户的账户信息,待更新顶点可以对应资源转入账户,第一数据可以包括向每个资源转入账户转入的资源的数量等数据,需要指出的是,第一轮迭代时,用户操作的分布式节点可以将用户输入的第一数据保存至其外存中活跃顶点的主备份中。序接前述第一次迭代的示例,分布式节点0根据顶点0的顶点信息、向顶点1对应的资源转入账户转移的资源的数量、向顶点2对应的资源转入账户转移的资源的数量、向顶点5对应的资源转入账户转移的资源的数量、向顶点6对应的资源转入账户转移的资源的数量等,发送第一更新消息给分布式节点0;以及,分布式节点0根据顶点0的顶点信息、向顶点2对应的资源转入账户转移的资源的数量、向顶点5对应的资源转入账户转移的资源的数量、向顶点6对应的资源转入账户转移的资源的数量等,发送第一更新消息给分布式节点1。
由此,在确定目标数据处理模式为推动数据处理模式时,可以沿着活跃顶点的出边进行数据更新处理,实现了活跃顶点作为入点时所对应的目标出点的数据更新。
进一步的,由于第一分布式节点可能是目标分布式节点,因此,如图7所示,方法还可以包括以下步骤S110至步骤S114:
步骤S110,若接收到第一分布式节点和/或其他分布式节点发送的第一更新消息,则将第一更新消息中的顶点信息对应的活跃顶点确定为目标活跃顶点;
由于在不同的迭代过程中,活跃顶点可能分散的保存在多个分布式节点中,因此,第一分布式节点可能仅接收到第一分布式节点发送的第一更新消息,也可能仅接收到其他分布式节点发送的第一更新消息,也可能同时接收到第一分布式节点和其他分布式节点发送的第一更新消息。
步骤S112,根据第一分布式节点的外存中保存的出边集合,确定目标活跃顶点作为入点时所对应的至少一个目标出点;
步骤S114,根据第一更新消息中的第一数据,对第一分布式节点的外存中目标出点的第二数据进行更新处理。
其中,确定的目标出点即前述的待更新顶点。序接前述第一次迭代的示例,分布式节点0根据接收到的第一更新消息,将顶点0确定为目标活跃顶点,根据分布式节点0的外存中保存的出边集合,确定的目标出点为顶点1和顶点2,根据第一更新消息中相应的第一数据,对分布式节点0的外存中顶点1和顶点2的第二数据进行更新处理,例如分别在顶点1和顶点2的第二数据中新增资源转移数据,并更新顶点1和顶点2所对应的资源账户中的资源总量等。分布式节点1根据接收到的第一更新消息,将顶点0确定为目标活跃顶点,根据分布式节点1的外存中保存的出边集合,确定的目标出点为顶点5和顶点6,根据第一更新消息中相应的第一数据,对分布式节点1的外存中顶点5和顶点6的第二数据进行更新处理,例如分别在顶点5和顶点6的第二数据中新增资源转移数据。
由于在推动数据处理模式中,分布式节点在接收到第一更新消息时,仅对基于其出边集合所确定的目标出点(即待更新顶点)的第二数据进行更新处理,而无需对第一更新消息对应的镜像备份进行更新处理(例如,分布式节点0无需对其外存中节点5和节点6的镜像备份进行更新处理),因此,节省了内存使用与同步时间,并且第一更新消息中的镜像备份对应的待更新顶点的相关数据可实时使用而不需要落盘,节省了外存 IO的巨大开销。
进一步的,考虑到对于同一分布式节点而言,可能会同时对多个待更新顶点的第二数据进行更新处理,为了消除推送数据处理模式引入的同步开销,并提升更新效率,本说明书一个或多个实施例,预先为每个顶点分配对应的线程,并基于该线程对相应顶点的第二数据进行更新处理。即步骤S114可以包括以下步骤S114-2和步骤S114-4:
步骤S114-2,确定每个目标出点对应的目标线程;
具体的,预先建立各顶点的顶点信息与线程信息的对应关系,并将该对应关系保存至相应分布式节点的外存中;分布式节点根据该对应关系确定每个目标出点对应的目标线程。
步骤S114-4,将第一更新消息发送给对应的目标线程,以使目标线程根据第一更新消息中的第一数据,对第一分布式节点的外存中相应目标出点的第二数据进行更新处理。
考虑到可能会出现多个活跃顶点同时更新同一个目标出点的情况,为了避免数据竞争,本说明书一个或多个实施例中,步骤S114-4可以包括:
确定目标出点的第二数据是否处于加锁状态;
若是,则将第一更新消息保存至相应目标出点的消息队列中,以使目标出点对应的目标线程在对第二数据进行解锁处理后,从对应的消息队列中获取第一更新消息;并对第二数据进行加锁处理后,根据第一更新消息中的第一数据,对第二数据进行更新处理;
若否,则将第一更新消息发送给对应的目标线程,以使目标线程对目标出点的第二数据进行加锁处理后,根据第一更新消息中的第一数据对目标出点的第二数据进行更新处理,并在更新完成后对第二数据进行解锁处理。
也就是说,在推动数据处理模式中,对于每个线程而言,在对对应的第二数据进行更新处理时,首先对第二数据进行加锁处理,以使第二数据处于锁定状态;并在加锁处理后,对第二数据进行更新,以及在更新完成后,对第二数据进行解锁处理,以使第二数据处于解锁状态。只有在第二数据处于解锁状态时,才可进行下一次的更新处理。由此,通过对第二数据进行加锁和解锁,避免了多个活跃顶点同时对同一个目标出点的第二数据进行更新时的数据竞争。
当待更新顶点对应的第二数据更新完成后,与待更新顶点具有关联关系的其他顶点可能随之更新,为了实现各数据的有效更新,本说明书一个或多个实施例中,如图8所示,步骤S108之后,还可以包括以下步骤S116至步骤S120:
步骤S116,若接收到第一更新消息,则在根据该第一更新消息对相应待更新顶点的第二数据更新处理完成后,确定是否满足预设的迭代停止条件;
其中,当目标数据处理模式是推动数据处理模式时,根据第一更新消息进行更新处理的过程可参见前述步骤S110至步骤S114的实现过程;当目标数据处理模式是拉动数据处理模式时,根据第一更新消息进行更新处理的过程可参见后文的相关描述;重复之处这里不再赘述。
预设的迭代停止条件可以在实际应用中根据需要自行设定,例如当迭代次数到达预设的迭代次数阈值时,确定满足预设的迭代停止条件;又如,当确定活跃顶点集合为空时,确定满足预设的迭代停止条件。再如,预先设定迭代次数阈值和活跃顶点集合为空两个条件,当满足之一时,确定满足预设的迭代停止条件。
步骤S118,若否,则将待更新顶点确定为新的活跃顶点,根据新的活跃顶点的顶点信息,向所在分布式系统中的每个分布式节点发送第二更新消息;
步骤S120,接收目标分布式节点发送的第二更新消息,将接收到的第二更新消息所对应的新的活跃顶点,确定为目标图数据中当前参与数据处理的活跃顶点集合,返回步骤S104。
可以理解的是,当第一分布式节点确定的目标分布式节点仅包括第一分布式节点时,第一分布式节点接收第一分布式节点发送的第二更新消息;当第一分布式节点确定的目标分布式节点包括第一分布式节点和分布式系统中的其他分布式节点时,第一分布式节点接收第一分布式节点和该其他分布式节点发送的第二更新消息;当第一分布式节点确定的目标分布式节点仅包括分布式系统中的其他分布式节点时,第一分布式节点接收该其他分布式节点发送的第二更新消息。
序接前述第一轮迭代的示例,分布式节点0在对顶点1和顶点2的第二数据进行更新处理后,将顶点1和顶点2确定为新的活跃顶点,并根据顶点1和顶点2的顶点信息向所在分布式系统中的每个分布式节点发送第二更新消息;分布式节点1在对顶点5和顶点6的第二数据进行更新处理后,将顶点5和顶点6确定为新的活跃顶点,并根据顶点5和顶点6的顶点信息向所在分布式系统中的每个分布式节点发送第二更新消息;分布式节点0和分布式节点1均根据接收到的各第二个更新消息,将顶点1、顶点2、顶点5和顶点6组成的顶点集合确定为目标图数据中当前参与数据处理的活跃顶点集合;即在第二轮迭代过程中的活跃顶点集合为{1,2,5,6}。
由此,通过发送第二更新消息,能够使分布式系统中的每个分布式节点在下一轮迭代处理时,均能够确定目标图数据中当前参与数据处理的活跃顶点集合,从而进行后续处理。
进一步的,当目标数据处理模式为拉动数据处理模式,如图9所示,步骤S106可以包括以下步骤S106-6至步骤S106-10:
步骤S106-6,若确定目标数据处理模式为拉动数据处理模式,则将第一分布式节点的外存中保存的入边集合中,每条入边对应的出点确定为待处理顶点;
步骤S106-8,根据第一分布式节点的外存中保存的入边集合,确定每个待处理顶点作为出点时所对应的目标入点;
步骤S106-10,确定保存的任意活跃顶点中是否包括目标入点,若是,则将相应的待处理顶点确定为待更新顶点。
序接前述示例,在第一轮迭代处理结束后,分布式节点0确定第二轮迭代处理的活跃顶点集合为{1,2,5,6}。分布式节点0确定其外存中保存有活跃顶点1和活跃顶点2,则计算活跃顶点集合的稠密度,并根据稠密度确定目标数据处理模式为拉动数据处理模式;分布式节点0根据其外存中保存的入边集合,将顶点1至顶点7以及顶点9确定为待处理顶点;分布式节点0根据其外存中保存的入边集合,确定顶点1作为出点时所对应的目标入点为顶点0,由于分布式节点0当前保存的活跃顶点是顶点1和顶点2,并未包括顶点0,因此确定顶点1不是待更新顶点;同理,分布式节点0确定顶点2作为出点时所对应的目标入点为顶点0,由于分布式节点0当前保存的活跃顶点未包括顶点0,则确定顶点2不是待更新顶点;分布式节点0确定顶点3作为出点时所对应的目标入点为顶点1和顶点2,由于分布式节点0当前保存的活跃顶点是顶点1和顶点2,则确定顶点3是待更新顶点;分布式节点0确定顶点4作为出点时所对应的目标入点为顶点1和顶点2,由于分布式节点0当前保存的活跃顶点是顶点1和顶点2,则确定顶点4是待更新顶点;分布式节点0确定顶点5作为出点时所对应的目标入点为顶点0,由于分布式节点0当前保存的活跃顶点未包括顶点0,则确定顶点5不是待更新顶点;分布式节点0确定顶点6作为出点时所对应的目标入点为顶点0,由于分布式节点0当前保存的活跃顶点未包括顶点0,则确定顶点6不是待更新顶点;分布式节点0确定顶点7作为出点时所对应的目标入点为顶点2,由于分布式节点0当前保存的活跃顶点包括顶点2,则确定顶点7是待更新顶点;分布式节点0确定顶点9作为出点时所对应的目标入点为顶点4,由于分布式节点0当前保存的活跃顶点未包括顶点4,则确定顶点9不是待更新顶点。
在第一轮迭代处理结束后,分布式节点1确定第二轮迭代处理的活跃顶点集合为{1,2,5,6}。分布式节点1确定其外存中保存有活跃顶点5和活跃顶点6,则计算活跃顶点集合的稠密度,并根据稠密度确定目标数据处理模式为拉动数据处理模式;分布式节点1根据其外存中保存的入边集合,将顶点4、顶点7至顶点9确定为待处理顶点;分布式节点1根据其外存中保存的入边集合,确定顶点4作为出点时所对应的目标入点为顶点5,由于分布式节点1当前保存的活跃顶点是顶点5和顶点6,包括顶点5,因此确定顶点4是待更新顶点;同理,分布式节点1确定顶点7作为出点时所对应的目标入点为顶点5和顶点6,由于分布式节点1当前保存的活跃顶点是顶点5和顶点6,则确定顶点7是待更新顶点;分布式节点1确定顶点8作为出点时所对应的目标入点为顶点5和顶点6,由于分布式节点1当前保存的活跃顶点是顶点5和顶点6,则确定顶点8是待更新顶点;分布式节点1确定顶点9作为出点时所对应的目标入点为顶点7,由于分布式节点1当前保存的活跃顶点未包括顶点7,则确定顶点9不是待更新顶点。
与上述步骤S106-6至步骤S106-10对应的,如图9所示,步骤S108包括以下步骤S108-8和步骤S108-10:
步骤S108-8,根据第一分布式节点的外存中保存的任意活跃顶点的第一数据,生成相应待更新顶点的临时更新数据;
步骤S108-10,根据待更新顶点的顶点信息和临时更新数据,向待更新顶点所在的目标分布式节点发送第一更新消息,以使目标分布式节点根据第一更新消息对其外存中的待更新顶点的第二数据进行更新处理。
序接前述示例,分布式节点0根据其外存中保存的活跃顶点1和活跃顶点2的第一数据,生成顶点3的临时更新数据;根据其外存中保存的活跃顶点1和活跃顶点2的第一数据,生成顶点4;其外存中保存的活跃顶点2的第一数据,生成顶点7的临时更新数据;以及,根据顶点3和顶点4的顶点信息、生成的顶点3的临时更新数据和生成的顶点4的临时更新数据,向顶点3和顶点4所在的分布式节点0发送第一更新消息;根据顶点7的顶点信息、生成的顶点7的临时更新数据,向顶点7所在的分布式节点1发送第一更新消息。
分布式节点1根据其外存中保存的活跃顶点5的第一数据,生成顶点4的临时更新数据;根据其外存中保存的活跃顶点5和活跃顶点6的第一数据,分别生成顶点7和顶点8的临时更新数据;以及,根据顶点4的顶点信息和生成的顶点4的临时更新数据,向顶点4所在的分布式节点0发送第一更新消息;根据顶点7和顶点8的顶点信息、生成的顶点7和顶点8的临时更新数据,向顶点7和顶点8所在的分布式节点1发送第一更新消息。
由此,当确定目标数据处理模式是拉动数据处理模型时,基于入边集合确定待更新顶点以及待更新顶点的临时更新数据,并将该临时更新数据发送给待更新顶点所在的目标分布式节点,实现了该待更新顶点的数据更新。
进一步的,由于第一分布式节点可能是待更新顶点所在的目标分布式节点时,因此,如图10所示,步骤S108-10之后还可以包括以下步骤S122和步骤S124:
步骤S122,若接收到第一分布式节点和/或其他分布式节点发送的第一更新消息,则根据第一更新消息中的顶点信息确定待更新顶点;
步骤S124,根据第一更新消息中的临时更新数据,对第一分布式节点的外存中待更新顶点的第二数据进行更新处理。
序接前述示例,当分布式节点0接收到分布式节点0发送的第一更新消息时,确定待更新顶点为顶点3和顶点4,根据第一更新消息中的临时更新数据,更新其外存中顶点3的第二数据,以及更新其外存中顶点4的第二数据,例如将临时更新数据包括的顶点3所对应的资源转移账户的资源转移数据保存至顶点3的第二数据中,并更新顶点3对应的资源账户中的资源总量;将临时更新数据包括的顶点4所对应的资源转移账户的资源转移数据保存至顶点4的第二数据中,并更新顶点4对应的资源账户中的资源总量等。以及,当分布式节点0接收到分布式节点1发送的第一更新消息时,确定待更新顶点为顶点4,根据第一更新消息中的临时更新数据,继续更新其外存中顶点4的第二数据。同理,分布式节点1根据接收到的各第一更新消息,确定待更新顶点为顶点7和顶点8,根据第一更新消息中的临时更新数据,更新其外存中顶点7和顶点8的第二数据。
为了完成所有待更新数据的更新处理,在步骤S124之后,依然可以执行前述步骤S116至步骤S120,以确定第三轮迭代处理时,目标图数据中参与数据处理的活跃顶点集合。序接前述示例,则分布式节点0将顶点3和顶点4确定为新的活跃顶点,并根据顶点3和顶点4的顶点信息向分布式系统中每个分布式节点发送第二更新消息;分布式节点1将顶点7和顶点8确定为新的活跃顶点,并根据顶点3和顶点4的顶点信息向分布式系统中每个分布式节点发送第二更新消息;每个分布节点根据接收到的各第二更新消息,确定当前参与数据处理的活跃顶点集合为{3,4,7,8}。
为了更好的实现上述数据处理过程,本说明书一个或多个实施例中,预先设定第一函数和第二函数,并基于该第一函数和第二函数进行前述的待更新顶点的确定以及第二数据的更新处理。具体的,如图11所示,步骤S106可以包括以下步骤S1060,步骤S108可以包括以下步骤S1080:
步骤S1060,调用第一函数,基于第一函数根据目标数据处理模式,确定与所述任意活跃顶点具有关联关系的待更新顶点;
步骤S1080,基于第一函数根据第一分布式节点的外存中所述任意活跃顶点的第一数据,向待更新顶点所在的目标分布式节点发送第一更新消息,以使目标分布式节点调用第二函数,并基于第二函数根据第一更新消息对其外存中的待更新顶点的第二数据进行更新处理。
其中,第一函数还可以称为信号函数(signal),第二函数还可以称为槽函数(slot)。
需要指出的是,上述第一分布式节点确定的目标分布式节点包括该第一分布式节点时,均向自身发送第一更新消息和第二更新消息;在实际应用中,第一分布式节点也可以不向自身发送数据。
本说明书一个或多个实施例中,确定目标图数据中当前参与数据处理的活跃顶点集合,若第一分布式节点的外存中保存有活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与活跃顶点集合相匹配的目标数据处理模式;根据目标数据处理模式,确定与该任意活跃顶点具有关联关系的待更新顶点;以及,根据外存中的该任意活跃顶点的第一数据,向待更新顶点所在的目标分布式节点发送第一更新消息,以使目标分布式节点根据第一更新消息对其外存中的待更新顶点的第二数据进行更新处理。由此,基于多个关联的目标事件的事件信息生成目标图数据,并基于目标图数据进行数据处理,不仅实现了大数据中数据的有效关联和关联数据的集中处理,避免数据遗漏,而且能够提升数据的处理效率。通过采用分布式数据处理系统,并在每个分布式节点的外存中保存目标图数据的相关数据,不仅实现了对内存的有效扩展,而且由于分布式节点可以并行的进行数据处理,因此能够满足大数据的处理需求且保障数据处理效率。此外,分布式数据处理系统支持多种数据处理模式,通过确定与当前的活跃顶点集合相匹配的目标数据处理模式,不仅提升了分布式数据处理系统的数据处理性能,而且进一步提升了数据处理效率。
对应上述描述的分布式数据处理方法,基于相同的技术构思,本说明书一个或多个实施例还提供一种分布式数据处理装置。图12为本说明书一个或多个实施例提供的一种分布式数据处理装置的模块组成示意图,如图12所示,该装置包括:
第一确定模块201,确定目标图数据中当前参与数据处理的活跃顶点集合;其中,所述目标图数据是预先基于多个关联的目标事件的事件信息生成,所述事件信息包括相应目标事件的多个事件要素;所述目标图数据的每个顶点对应一个所述事件要素,所述目标图数据的每条边连接具有关联关系的所述顶点;
第二确定模块202,若第一分布式节点的外存中保存有所述活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式;
第三确定模块203,根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点;
发送模块204,根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
可选地,所述装置还包括:接收模块;
所述接收模块,接收指定设备发送的分片数据和目标图数据的属性信息,所述分片数据由所述指定设备按照预设的数据划分方式对所述目标图数据进行划分处理所得;将所述分片数据和所述属性信息保存至所述第一分布式节点的外存中;
或者,所述装置还包括:划分模块;
所述划分模块,若确定所述第一分布式节点具有预处理权限,则根据预设的数据划分方式对所述目标图数据进行划分处理,得到待分配给所在分布式系统中的每个分布式节点的分片数据;以及,
将所述分片数据和所述目标图数据的属性信息发送给所述分布式系统中的每个分布式节点,以使所述分布式节点将所述分片数据和所述属性信息保存至外存中。
可选地,所述顶点包括入点和出点,将所述目标图数据中的每条边确定为有向边,所述有向边由所述入点指向所述出点;所述有向边是所述入点的出边,所述有向边是所述出点的入边;
所述分片数据包括划分的顶点子集、所述顶点子集中各顶点的入边所对应的入边集合、所述顶点子集中各顶点的出边所对应的出边集合、所述顶点子集中每个顶点的所述主备份、与所述顶点子集中每个顶点构成所述有向边的顶点的镜像备份;其中,所述主备份包括相应顶点所对应的事件要素的要素数据,所述镜像备份用于传递消息;
所述属性信息包括所述目标图数据的边的第一数量、所述目标图数据中每个顶点的出边的第二数量。
可选地,所述第三确定模块203,若所述目标数据处理模式为推动数据处理模式,则根据所述第一分布式节点的外存中保存的所述出边集合和所述镜像备份,确定所述任意活跃顶点作为所述入点时所对应的目标出点;
将所述目标出点确定为所述待更新顶点;
相应的,所述发送模块204,从所述第一分布式节点的外存中获取所述任意活跃顶点的第一数据;以及,
确定所述待更新顶点和所述待更新顶点的镜像备份所在的目标分布式节点;
根据所述任意活跃顶点的顶点信息和所述第一数据,向所述目标分布式节点发送第一更新消息。
可选地,所述装置还包括:第一更新模块;
所述第一更新模块,若接收到所述第一分布式节点和/或其他分布式节点发送的所述第一更新消息,则将所述第一更新消息中的顶点信息对应的活跃顶点确定为目标活跃顶点;以及,
根据所述第一分布式节点的外存中保存的所述出边集合,确定所述目标活跃顶点作为所述入点时所对应的至少一个目标出点;
根据所述第一更新消息中的所述第一数据,对所述第一分布式节点的外存中所述目标出点的第二数据进行更新处理。
可选地,所述第三确定模块203,若所述目标数据处理模式为拉动数据处理模式,则将所述第一分布式节点的外存中保存的所述入边集合中,每条入边对应的出入点确定待处理顶点;以及,
根据所述第一分布式节点的外存中保存的所述入边集合,确定每个所述待处理顶点作为出点时所对应的目标入点;
确定所述任意活跃顶点中是否包括所述目标入点;
若是,则将相应的所述待处理顶点确定为待更新顶点。
相应的,所述发送模块204,根据所述第一分布式节点的外存中的所述任意活跃顶点的第一数据,生成相应待更新顶点的临时更新数据;
根据所述待更新顶点的顶点信息和所述临时更新数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息。
可选地,所述装置还包括:第二更新模块;
所述更新模块,若接收到所述第一分布式节点或其他分布式节点发送的所述第一更新消息,则根据所述第一更新消息中的顶点信息确定所述待更新顶点;以及,
根据所述第一更新消息中的临时更新数据,对所述第一分布式节点的外存中所述待更新顶点的第二数据进行更新处理。
本说明书一个或多个实施例提供的分布式数据处理装置,确定目标图数据中当前参与数据处理的活跃顶点集合,若第一分布式节点的外存中保存有活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与活跃顶点集合相匹配的目标数据处理模式;根据目标数据处理模式,确定与该任意活跃顶点具有关联关系的待更新顶点;以及,根据外存中的该任意活跃顶点的第一数据,向待更新顶点所在的目标分布式节点发送第一更新消息,以使目标分布式节点根据第一更新消息对其外存中的待更新顶点的第二数据进行更新处理。由此,基于多个关联的目标事件的事件信息生成目标图数据,并基于目标图数据进行数据处理,不仅实现了大数据中数据的有效关联和关联数据的集中处理,避免数据遗漏,而且能够提升数据的处理效率。通过采用分布式数据处理系统,并在每个分布式节点的外存中保存目标图数据的相关数据,不仅实现了对内存的有效扩展,而且由于分布式节点可以并行的进行数据处理,因此能够满足大数据的处理需求且保障数据处理效率。此外,分布式数据处理系统支持多种数据处理模式,通过确定与当前的活跃顶点集合相匹配的目标数据处理模式,不仅提升了分布式数据处理系统的数据处理性能,而且进一步提升了数据处理效率。
需要说明的是,本说明书中关于分布式数据处理装置的实施例与本说明书中关于分布式数据处理方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的分布式数据处理方法的实施,重复之处不再赘述。
进一步地,对应上述描述的分布式数据处理方法,基于相同的技术构思,本说明书一个或多个实施例还提供一种分布式数据处理设备,该设备用于执行上述的分布式数据处理方法,图13为本说明书一个或多个实施例提供的一种分布式数据处理设备的结构示意图。
如图13所示,分布式数据处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器301和存储器302,存储器302中可以存储有一个或一个以上存储应用程序或数据。其中,存储器302可以是短暂存储或持久存储。存储在存储器302的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括分布式数据处理设备中的一系列计算机可执行指令。更进一步地,处理器301可以设置为与存储器302通信,在分布式数据处理设备上执行存储器302中的一系列计算机可执行指令。分布式数据处理设备还可以包括一个或一个以上电源303,一个或一个以上有线或无线网络接口304,一个或一个以上输入输出接口305,一个或一个以上键盘306等。
在一个具体的实施例中,分布式数据处理设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对分布式数据处理设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
确定目标图数据中当前参与数据处理的活跃顶点集合;其中,所述目标图数据是预先基于多个关联的目标事件的事件信息生成,所述事件信息包括相应目标事件的多个事件要素;所述目标图数据的每个顶点对应一个所述事件要素,所述目标图数据的每条边连接具有关联关系的所述顶点;
若第一分布式节点的外存中保存有所述活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式;
根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点;
根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
可选地,计算机可执行指令在被执行时,所述根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点,包括:
若确定所述目标数据处理模式为所述推动数据处理模式,则根据所述第一分布式节点的外存中保存的所述出边集合和所述镜像备份,确定所述任意活跃顶点作为所述入点时所对应的目标出点;
将所述目标出点确定为所述待更新顶点;
所述根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,包括:
从所述第一分布式节点的外存中获取所述任意活跃顶点的第一数据;
确定所述待更新顶点和所述待更新顶点的镜像备份所在的目标分布式节点;
根据所述任意活跃顶点的顶点信息和所述第一数据,向所述目标分布式节点发送第一更新消息。
可选地,计算机可执行指令在被执行时,所述方法还包括:
若接收到所述第一分布式节点和/或其他分布式节点发送的所述第一更新消息,则将所述第一更新消息中的顶点信息对应的活跃顶点确定为目标活跃顶点;
根据所述第一分布式节点的外存中保存的所述出边集合,确定所述目标活跃顶点作为所述入点时所对应的至少一个目标出点;
根据所述第一更新消息中的所述第一数据,对所述第一分布式节点的外存中所述目标出点的第二数据进行更新处理。
可选地,计算机可执行指令在被执行时,所述根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点,包括:
若所述目标数据处理模式为所述拉动数据处理模式,则将所述第一分布式节点的外存中保存的所述入边集合中,每条入边对应的出入点确定待处理顶点;
根据所述第一分布式节点的外存中保存的所述入边集合,确定每个所述待处理顶点作为出点时所对应的目标入点;
确定所述任意活跃顶点中是否包括所述目标入点;
若是,则将相应的所述待处理顶点确定为待更新顶点。
可选地,计算机可执行指令在被执行时,所述根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,包括:
根据所述第一分布式节点的外存中的所述任意活跃顶点的第一数据,生成相应待更新顶点的临时更新数据;
根据所述待更新顶点的顶点信息和所述临时更新数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息。
本说明书一个或多个实施例提供的分布式数据处理设备,确定目标图数据中当前参与数据处理的活跃顶点集合,若第一分布式节点的外存中保存有活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与活跃顶点集合相匹配的目标数据处理模式;根据目标数据处理模式,确定与该任意活跃顶点具有关联关系的待更新顶点;以及,根据外存中的该任意活跃顶点的第一数据,向待更新顶点所在的目标分布式节点发送第一更新消息,以使目标分布式节点根据第一更新消息对其外存中的待更新顶点的第二数据进行更新处理。由此,基于多个关联的目标事件的事件信息生成目标图数据,并基于目标图数据进行数据处理,不仅实现了大数据中数据的有效关联和关联数据的集中处理,避免数据遗漏,而且能够提升数据的处理效率。通过采用分布式数据处理系统,并在每个分布式节点的外存中保存目标图数据的相关数据,不仅实现了对内存的有效扩展,而且由于分布式节点可以并行的进行数据处理,因此能够满足大数据的处理需求且保障数据处理效率。此外,分布式数据处理系统支持多种数据处理模式,通过确定与当前的活跃顶点集合相匹配的目标数据处理模式,不仅提升了分布式数据处理系统的数据处理性能,而且进一步提升了数据处理效率。
需要说明的是,本说明书中关于分布式数据处理设备的实施例与本说明书中关于分布式数据处理方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的分布式数据处理方法的实施,重复之处不再赘述。
进一步地,对应上述描述的分布式数据处理方法,基于相同的技术构思,本说明书一个或多个实施例还提供了一种存储介质,用于存储计算机可执行指令,一个具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
确定目标图数据中当前参与数据处理的活跃顶点集合;其中,所述目标图数据是预先基于多个关联的目标事件的事件信息生成,所述事件信息包括相应目标事件的多个事件要素;所述目标图数据的每个顶点对应一个所述事件要素,所述目标图数据的每条边连接具有关联关系的所述顶点;
若第一分布式节点的外存中保存有所述活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式;
根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点;
根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点,包括:
若确定所述目标数据处理模式为所述推动数据处理模式,则根据所述第一分布式节点的外存中保存的所述出边集合和所述镜像备份,确定所述任意活跃顶点作为所述入点时所对应的目标出点;
将所述目标出点确定为所述待更新顶点;
所述根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,包括:
从所述第一分布式节点的外存中获取所述任意活跃顶点的第一数据;
确定所述待更新顶点和所述待更新顶点的镜像备份所在的目标分布式节点;
根据所述任意活跃顶点的顶点信息和所述第一数据,向所述目标分布式节点发送第一更新消息。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:
若接收到所述第一分布式节点和/或其他分布式节点发送的所述第一更新消息,则将所述第一更新消息中的顶点信息对应的活跃顶点确定为目标活跃顶点;
根据所述第一分布式节点的外存中保存的所述出边集合,确定所述目标活跃顶点作为所述入点时所对应的至少一个目标出点;
根据所述第一更新消息中的所述第一数据,对所述第一分布式节点的外存中所述目标出点的第二数据进行更新处理。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点,包括:
若所述目标数据处理模式为所述拉动数据处理模式,则将所述第一分布式节点的外存中保存的所述入边集合中,每条入边对应的出入点确定待处理顶点;
根据所述第一分布式节点的外存中保存的所述入边集合,确定每个所述待处理顶点作为出点时所对应的目标入点;
确定所述任意活跃顶点中是否包括所述目标入点;
若是,则将相应的所述待处理顶点确定为待更新顶点。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,包括:
根据所述第一分布式节点的外存中的所述任意活跃顶点的第一数据,生成相应待更新顶点的临时更新数据;
根据所述待更新顶点的顶点信息和所述临时更新数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息。
本说明书一个或多个实施例提供的存储介质存储的计算机可执行指令在被处理器执行时,确定目标图数据中当前参与数据处理的活跃顶点集合,若第一分布式节点的外存中保存有活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与活跃顶点集合相匹配的目标数据处理模式;根据目标数据处理模式,确定与该任意活跃顶点具有关联关系的待更新顶点;以及,根据外存中的该任意活跃顶点的第一数据,向待更新顶点所在的目标分布式节点发送第一更新消息,以使目标分布式节点根据第一更新消息对其外存中的待更新顶点的第二数据进行更新处理。由此,基于多个关联的目标事件的事件信息生成目标图数据,并基于目标图数据进行数据处理,不仅实现了大数据中数据的有效关联和关联数据的集中处理,避免数据遗漏,而且能够提升数据的处理效率。通过采用分布式数据处理系统,并在每个分布式节点的外存中保存目标图数据的相关数据,不仅实现了对内存的有效扩展,而且由于分布式节点可以并行的进行数据处理,因此能够满足大数据的处理需求且保障数据处理效率。此外,分布式数据处理系统支持多种数据处理模式,通过确定与当前的活跃顶点集合相匹配的目标数据处理模式,不仅提升了分布式数据处理系统的数据处理性能,而且进一步提升了数据处理效率。
需要说明的是,本说明书中关于存储介质的实施例与本说明书中关于分布式数据处理方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的分布式数据处理方法的实施,重复之处不再赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书的一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本文件的实施例而已,并不用于限制本文件。对于本领域技术人员来说,本文件可以有各种更改和变化。凡在本文件的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本文件的权利要求范围之内。
Claims (17)
1.一种分布式数据处理方法,包括:
确定目标图数据中当前参与数据处理的活跃顶点集合;其中,所述目标图数据是预先基于多个关联的目标事件的事件信息生成,所述事件信息包括相应目标事件的多个事件要素;所述目标图数据的每个顶点对应一个所述事件要素,所述目标图数据的每条边连接具有关联关系的所述顶点;
若第一分布式节点的外存中保存有所述活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式;所述第一分布式节点为分布式系统中的任意分布式节点;
根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点;
根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
2.根据权利要求1所述的方法,所述确定目标图数据中当前参与数据处理的活跃顶点集合之前,还包括:
接收指定设备发送的分片数据和目标图数据的属性信息,所述分片数据由所述指定设备按照预设的数据划分方式对所述目标图数据进行划分处理所得;
将所述分片数据和所述属性信息保存至所述第一分布式节点的外存中;
或者,
若确定所述第一分布式节点具有预处理权限,则根据预设的数据划分方式对所述目标图数据进行划分处理,得到待分配给所在分布式系统中的每个分布式节点的分片数据;
将所述分片数据和所述目标图数据的属性信息发送给所述分布式系统中的每个分布式节点,以使所述分布式节点将所述分片数据和所述属性信息保存至外存中。
3.根据权利要求2所述的方法,所述顶点包括入点和出点,将所述目标图数据中的每条边确定为有向边,所述有向边由所述入点指向所述出点;所述有向边是所述入点的出边,所述有向边是所述出点的入边;
所述分片数据包括划分的顶点子集、所述顶点子集中各顶点的入边所对应的入边集合、所述顶点子集中各顶点的出边所对应的出边集合、所述顶点子集中每个顶点的主备份、与所述顶点子集中每个顶点构成所述有向边的顶点的镜像备份;其中,所述主备份包括相应顶点所对应的事件要素的要素数据,所述镜像备份用于传递消息;
所述属性信息包括所述目标图数据的边的第一数量、所述目标图数据中每个顶点的出边的第二数量。
4.根据权利要求3所述的方法,所述确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式,包括:
根据预设的计算方式计算所述活跃顶点集合的稠密度;
根据所述稠密度,确定预设的推动数据处理模式和拉动数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式。
5.根据权利要求4所述的方法,所述根据预设的计算方式计算所述活跃顶点集合的稠密度,包括:
统计所述活跃顶点集合中活跃顶点的第三数量;
根据所述第二数量统计所述活跃顶点集合中各活跃顶点的出边的总数量,将所述总数量确定为第四数量;
根据预设的计算方式,基于所述第三数量和所述第四数量计算所述活跃顶点集合的稠密度;
所述根据所述稠密度,确定预设的推动数据处理模式和拉动数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式,包括:
根据所述第一数量确定比对稠密度,确定所述活跃顶点集合的稠密度是否不小于所述比对稠密度;
若是,则将所述拉动数据处理模式确定为所述目标数据处理模式;
若否,则将所述推动数据处理模式确定为所述目标数据处理模式。
6.根据权利要求4所述的方法,所述根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点,包括:
若确定所述目标数据处理模式为所述推动数据处理模式,则根据所述第一分布式节点的外存中保存的所述出边集合和所述镜像备份,确定所述任意活跃顶点作为所述入点时所对应的目标出点;
将所述目标出点确定为所述待更新顶点;
所述根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,包括:
从所述第一分布式节点的外存中获取所述任意活跃顶点的第一数据;
确定所述待更新顶点和所述待更新顶点的镜像备份所在的目标分布式节点;
根据所述任意活跃顶点的顶点信息和所述第一数据,向所述目标分布式节点发送第一更新消息。
7.根据权利要求6所述的方法,所述方法还包括:
若接收到所述第一分布式节点和/或其他分布式节点发送的所述第一更新消息,则将所述第一更新消息中的顶点信息对应的活跃顶点确定为目标活跃顶点;
根据所述第一分布式节点的外存中保存的所述出边集合,确定所述目标活跃顶点作为所述入点时所对应的至少一个目标出点;
根据所述第一更新消息中的所述第一数据,对所述第一分布式节点的外存中所述目标出点的第二数据进行更新处理。
8.根据权利要求7所述的方法,所述根据所述第一更新消息中的所述第一数据,对所述第一分布式节点的外存中所述目标出点的第二数据进行更新处理,包括:
确定每个所述目标出点对应的目标线程;
将所述第一更新消息发送给对应的所述目标线程,以使所述目标线程根据所述第一更新消息中的所述第一数据,对所述第一分布式节点的外存中相应目标出点的第二数据进行更新处理。
9.根据权利要求8所述的方法,所述将所述第一更新消息发送给对应的所述目标线程,以使所述目标线程根据所述第一更新消息中的所述第一数据,对所述第一分布式节点的外存中相应目标出点的第二数据进行更新处理,包括:
确定所述目标出点的第二数据是否处于加锁状态;
若是,则将所述第一更新消息保存至相应目标出点的消息队列中,以使所述目标出点对应的目标线程在对所述第二数据进行解锁处理后,从所述消息队列中获取所述第一更新消息;并对所述第二数据进行加锁处理后,根据所述第一更新消息中的所述第一数据,对所述第二数据进行更新处理;
若否,则将所述第一更新消息发送给对应的所述目标线程,以使所述目标线程对所述目标出点的第二数据进行加锁处理后,根据所述第一更新消息中的所述第一数据对所述目标出点的第二数据进行更新处理,并在更新完成后对所述第二数据进行解锁处理。
10.根据权利要求4所述的方法,所述根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点,包括:
若所述目标数据处理模式为所述拉动数据处理模式,则将所述第一分布式节点的外存中保存的所述入边集合中,每条入边对应的出入点确定待处理顶点;
根据所述第一分布式节点的外存中保存的所述入边集合,确定每个所述待处理顶点作为出点时所对应的目标入点;
确定所述任意活跃顶点中是否包括所述目标入点;
若是,则将相应的所述待处理顶点确定为待更新顶点。
11.根据权利要求10所述的方法,所述根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,包括:
根据所述第一分布式节点的外存中的所述任意活跃顶点的第一数据,生成相应待更新顶点的临时更新数据;
根据所述待更新顶点的顶点信息和所述临时更新数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息。
12.根据权利要求11所述的方法,所述方法还包括:
若接收到所述第一分布式节点和/或其他分布式节点发送的所述第一更新消息,则根据所述第一更新消息中的顶点信息确定所述待更新顶点;
根据所述第一更新消息中的临时更新数据,对所述第一分布式节点的外存中所述待更新顶点的第二数据进行更新处理。
13.根据权利要求1所述的方法,所述根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点,包括:
调用第一函数,基于所述第一函数根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点;
所述根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理,包括:
基于所述第一函数根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,以使所述目标分布式节点调用第二函数,并基于所述第二函数根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
14.根据权利要求1所述的方法,所述根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息之后,还包括:
若接收到所述第一更新消息,则在所述更新处理完成后,确定是否满足预设的迭代停止条件;
若否,则将所述待更新顶点确定为新的活跃顶点,根据所述新的活跃顶点的顶点信息,向所在分布式系统中的每个分布式节点发送第二更新消息;以及,
接收所述目标分布式节点发送的所述第二更新消息,将接收到的所述第二更新消息所对应的所述新的活跃顶点,确定为所述目标图数据中当前参与数据处理的活跃顶点集合。
15.一种分布式数据处理装置,包括:
第一确定模块,确定目标图数据中当前参与数据处理的活跃顶点集合;其中,所述目标图数据是预先基于多个关联的目标事件的事件信息生成,所述事件信息包括相应目标事件的多个事件要素;所述目标图数据的每个顶点对应一个所述事件要素,所述目标图数据的每条边连接具有关联关系的所述顶点;
第二确定模块,若第一分布式节点的外存中保存有所述活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式;所述第一分布式节点为分布式系统中的任意分布式节点;
第三确定模块,根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点;
发送模块,根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
16.一种分布式数据处理设备,包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器:
确定目标图数据中当前参与数据处理的活跃顶点集合;其中,所述目标图数据是预先基于多个关联的目标事件的事件信息生成,所述事件信息包括相应目标事件的多个事件要素;所述目标图数据的每个顶点对应一个所述事件要素,所述目标图数据的每条边连接具有关联关系的所述顶点;
若第一分布式节点的外存中保存有所述活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式;所述第一分布式节点为分布式系统中的任意分布式节点;
根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点;
根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
17.一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被处理器执行时实现以下流程:
确定目标图数据中当前参与数据处理的活跃顶点集合;其中,所述目标图数据是预先基于多个关联的目标事件的事件信息生成,所述事件信息包括相应目标事件的多个事件要素;所述目标图数据的每个顶点对应一个所述事件要素,所述目标图数据的每条边连接具有关联关系的所述顶点;
若第一分布式节点的外存中保存有所述活跃顶点集合中的任意活跃顶点,则确定预设的多个数据处理模式中与所述活跃顶点集合相匹配的目标数据处理模式;所述第一分布式节点为分布式系统中的任意分布式节点;
根据所述目标数据处理模式,确定与所述任意活跃顶点具有所述关联关系的待更新顶点;
根据所述外存中的所述任意活跃顶点的第一数据,向所述待更新顶点所在的目标分布式节点发送第一更新消息,以使所述目标分布式节点根据所述第一更新消息对其外存中的所述待更新顶点的第二数据进行更新处理。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111218593.5A CN113656426B (zh) | 2021-10-20 | 2021-10-20 | 分布式数据处理方法、装置及设备 |
CN202210253352.2A CN114637756A (zh) | 2021-10-20 | 2021-10-20 | 分布式数据处理方法、装置及设备 |
PCT/CN2022/125675 WO2023066198A1 (zh) | 2021-10-20 | 2022-10-17 | 分布式数据处理 |
US18/544,666 US20240134881A1 (en) | 2021-10-20 | 2023-12-19 | Distributed data processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111218593.5A CN113656426B (zh) | 2021-10-20 | 2021-10-20 | 分布式数据处理方法、装置及设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210253352.2A Division CN114637756A (zh) | 2021-10-20 | 2021-10-20 | 分布式数据处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113656426A CN113656426A (zh) | 2021-11-16 |
CN113656426B true CN113656426B (zh) | 2022-02-08 |
Family
ID=78484290
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210253352.2A Pending CN114637756A (zh) | 2021-10-20 | 2021-10-20 | 分布式数据处理方法、装置及设备 |
CN202111218593.5A Active CN113656426B (zh) | 2021-10-20 | 2021-10-20 | 分布式数据处理方法、装置及设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210253352.2A Pending CN114637756A (zh) | 2021-10-20 | 2021-10-20 | 分布式数据处理方法、装置及设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240134881A1 (zh) |
CN (2) | CN114637756A (zh) |
WO (1) | WO2023066198A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114637756A (zh) * | 2021-10-20 | 2022-06-17 | 支付宝(杭州)信息技术有限公司 | 分布式数据处理方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132838A (zh) * | 2016-11-30 | 2018-06-08 | 华为技术有限公司 | 一种图数据处理的方法、装置及系统 |
CN110737804A (zh) * | 2019-09-20 | 2020-01-31 | 华中科技大学 | 一种基于活跃度布局的图处理访存优化方法及系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495477B1 (en) * | 2011-04-20 | 2016-11-15 | Google Inc. | Data storage in a graph processing system |
CA2790479C (en) * | 2012-09-24 | 2020-12-15 | Ibm Canada Limited - Ibm Canada Limitee | Partitioning a search space for distributed crawling |
CN103914556A (zh) * | 2014-04-15 | 2014-07-09 | 西北工业大学 | 大规模图数据处理方法 |
CN105224528B (zh) * | 2014-05-27 | 2019-12-17 | 华为技术有限公司 | 基于图计算的大数据处理方法和装置 |
CN106815080B (zh) * | 2017-01-09 | 2020-01-14 | 北京航空航天大学 | 分布式图数据处理方法和装置 |
US10795672B2 (en) * | 2018-10-31 | 2020-10-06 | Oracle International Corporation | Automatic generation of multi-source breadth-first search from high-level graph language for distributed graph processing systems |
US10936659B2 (en) * | 2019-01-02 | 2021-03-02 | International Business Machines Corporation | Parallel graph events processing |
CN110442754B (zh) * | 2019-08-05 | 2021-09-21 | 腾讯科技(深圳)有限公司 | 标签更新方法及装置、分布式存储系统 |
CN111737540B (zh) * | 2020-05-27 | 2022-11-29 | 中国科学院计算技术研究所 | 一种应用于分布式计算节点集群的图数据处理方法和介质 |
CN113065035A (zh) * | 2021-03-29 | 2021-07-02 | 武汉大学 | 一种单机核外属性图计算方法 |
CN114637756A (zh) * | 2021-10-20 | 2022-06-17 | 支付宝(杭州)信息技术有限公司 | 分布式数据处理方法、装置及设备 |
-
2021
- 2021-10-20 CN CN202210253352.2A patent/CN114637756A/zh active Pending
- 2021-10-20 CN CN202111218593.5A patent/CN113656426B/zh active Active
-
2022
- 2022-10-17 WO PCT/CN2022/125675 patent/WO2023066198A1/zh unknown
-
2023
- 2023-12-19 US US18/544,666 patent/US20240134881A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132838A (zh) * | 2016-11-30 | 2018-06-08 | 华为技术有限公司 | 一种图数据处理的方法、装置及系统 |
CN110737804A (zh) * | 2019-09-20 | 2020-01-31 | 华中科技大学 | 一种基于活跃度布局的图处理访存优化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20240134881A1 (en) | 2024-04-25 |
WO2023066198A1 (zh) | 2023-04-27 |
CN113656426A (zh) | 2021-11-16 |
CN114637756A (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10042746B2 (en) | Callpath finder | |
US10877802B2 (en) | Blockchain-based data processing method and equipment | |
Zhang et al. | Parallel rough set based knowledge acquisition using MapReduce from big data | |
Guo et al. | A parallel attractor finding algorithm based on Boolean satisfiability for genetic regulatory networks | |
CN109344348B (zh) | 一种资源更新方法及装置 | |
TWI694700B (zh) | 資料處理方法和裝置、用戶端 | |
Kovács et al. | Frequent itemset mining on hadoop | |
Martha et al. | h-MapReduce: a framework for workload balancing in MapReduce | |
CN111399812B (zh) | 组件构建方法、装置、开发框架及设备 | |
WO2023231336A1 (zh) | 执行交易的方法和区块链节点 | |
CN110059023B (zh) | 一种刷新级联缓存的方法、系统及设备 | |
US20200082026A1 (en) | Graph data processing | |
CN110955720B (zh) | 一种数据加载方法、装置及系统 | |
US20240134881A1 (en) | Distributed data processing | |
CN114827165A (zh) | 对多个交易进行分组的方法和区块链节点 | |
US9300712B2 (en) | Stream processing with context data affinity | |
CN113641872B (zh) | 一种散列方法、装置、设备及介质 | |
CN115934161A (zh) | 一种代码变更的影响分析方法、装置以及设备 | |
CN114968422A (zh) | 基于变量状态自动执行合约的方法和装置 | |
US20210073176A1 (en) | Method, device, and computer program product for managing index of storage system | |
CN111143232A (zh) | 用于存储元数据的方法、设备和计算机程序产品 | |
CN113641871B (zh) | 一种无锁散列方法、装置、设备及介质 | |
Hussain et al. | A novel approach of fair scheduling to enhance performance of hadoop distributed file system | |
CN114268540A (zh) | 规则引擎的优化方法、装置及设备 | |
Williams et al. | Fine-grained I/O complexity via reductions: new lower bounds, faster algorithms, and a time hierarchy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |