CN115470377A - 流式图数据处理方法及系统 - Google Patents
流式图数据处理方法及系统 Download PDFInfo
- Publication number
- CN115470377A CN115470377A CN202110655697.6A CN202110655697A CN115470377A CN 115470377 A CN115470377 A CN 115470377A CN 202110655697 A CN202110655697 A CN 202110655697A CN 115470377 A CN115470377 A CN 115470377A
- Authority
- CN
- China
- Prior art keywords
- updates
- update
- graph
- vertex
- edge
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 90
- 238000004458 analytical method Methods 0.000 claims abstract description 83
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000012217 deletion Methods 0.000 claims description 15
- 230000037430 deletion Effects 0.000 claims description 15
- 230000004048 modification Effects 0.000 claims description 10
- 238000012986 modification Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 238000003780 insertion Methods 0.000 claims description 7
- 230000037431 insertion Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 241001522296 Erithacus rubecula Species 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 235000003642 hunger Nutrition 0.000 description 5
- 230000037351 starvation Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种流式图数据处理方法、系统。该流式图数据处理方法包括:接收多个会话对待处理的图的更新,每个会话包括至少一个更新;根据预定分析算法判断更新对图的分析结果是否存在影响;根据更新对图的分析结果是否存在影响对更新进行分类,其中,将存在影响的更新分类为有关更新,将不存在影响的更新分类为无关更新,但同一会话中位于有关更新之后的所有更新分类为下轮处理更新用于在下一轮处理中重新分类;并行处理无关更新;在无关更新处理结束后或被中断后,串行处理有关更新。该流式图数据处理方法有效地提高了吞吐量。
Description
技术领域
本公开的实施例涉及一种流式图数据处理方法和系统。
背景技术
图(graph)是一种数据格式,可以用于表示社交网络、通信网络、蛋白分子网络等,图中的节点表示网络中的个体,连边表示个体之间的连接关系。图数据处理被越来越多地应用于学术界和工业界。在实际应用中,对应于诸如涉及动态交易的大数据的图通常是进化图(evolving graph),例如社交网络图、金融交易图等。现实世界中的进化图是大规模的且连续变化的,例如每秒钟可能有成千上万的更新。
进化图数据处理,例如单调性算法(例如,广度优先搜索算法、最短路径算法、可达性分析算法等)通常要求扫描图中大量的节点或边,甚至扫描整个图。增量计算(incremental computing)可以通过利用先前的结果来减少冗余计算,从而加速进化图数据处理算法。近年来,提出了若干种图数据处理系统,这些系统包括KickStarter、差分数据流(Differential Dataflow)。
发明内容
本公开的至少一实施例提供一种流式图数据处理方法,包括:接收多个会话对待处理的图的更新,每个会话包括至少一个更新;根据预定分析算法判断所述更新对所述图的分析结果是否存在影响;根据所述更新对所述图的分析结果是否存在影响对所述更新进行分类,其中,将存在影响的更新分类为有关更新,将不存在影响的更新分类为无关更新,但同一会话中位于有关更新之后的所有更新分类为下轮处理更新用于在下一轮处理中重新分类;并行处理所述无关更新;在所述无关更新处理结束后或被中断后,串行处理所述有关更新。
例如,在本公开的至少一实施例提供的流式图数据处理方法中,如果待处理的最早有关更新的等待处理时间超过预定时间,则中断所述无关更新的处理。
例如,在本公开的至少一实施例提供的流式图数据处理方法中,所述预定时间为操作延迟限制时间的预定百分比。
例如,在本公开的至少一实施例提供的流式图数据处理方法中,如果待处理的有关更新的数量达到阈值,则中断所述无关更新的处理。
例如,本公开的至少一实施例提供的流式图数据处理方法还包括:根据处理时间超过操作延迟限制时间的更新的比例动态调整所述阈值。
例如,在本公开的至少一实施例提供的流式图数据处理方法中,所述更新中的一个或多个包括多个子更新,每个子更新包括一个顶点更新或边更新,并且仅当一个更新中的所有子更新都被分类为无关更新时,所述一个更新才被分类为无关更新。
例如,在本公开的至少一实施例提供的流式图数据处理方法中,所述预定分析算法包括多个算法,并且仅当一个更新针对所述预定分析算法中的所有算法都被分类为无关更新时,所述一个更新才被分类为无关更新。
例如,在本公开的至少一实施例提供的流式图数据处理方法中,所述预定分析算法为单调性图算法,所述分析结果为依赖树;并且判断所述更新对所述图的分析结果是否存在影响根据所述图更新前的依赖树和所述更新进行。
例如,在本公开的至少一实施例提供的流式图数据处理方法中,如果所述更新为插入新边,则基于所述图更新前的依赖树和插入的新边确定插入所述新边后所述新边的终止顶点在所述依赖树中的结果是否发生变化,如果不发生变化,则认为插入所述新边对分析结果不存在影响;如果所述更新为删除目标边,则当所述目标边不是所述图更新前的依赖树中的边时,认为删除所述目标边对分析结果不存在影响;如果所述更新为修改目标边,则转换为删除所述目标边并插入修改后的新边,当删除所述目标边和插入所述修改后的新边都对分析结果不存在影响时,认为修改所述目标边对分析结果不存在影响;如果所述更新为删除目标顶点,则当删除所述目标顶点的所有边都对分析结果不存在影响时,认为删除所述目标顶点对分析结果不存在影响;如果所述更新为插入新顶点,则当所述新顶点没有任何边或所述新顶点的所有边都对分析结果不存在影响时,认为插入新顶点对分析结果不存在影响;和/或如果所述更新为修改目标顶点,则转换为删除所述目标顶点并插入修改后的新顶点,当删除所述目标顶点和插入所述修改后的新顶点都对分析结果不存在影响时,认为修改所述目标顶点对分析结果不存在影响
例如,在本公开的至少一实施例提供的流式图数据处理方法中,处理所述无关更新和处理所述有关更新分别包括将所述更新存储到所述图的数据结构中以及根据所述预定分析算法计算所述图更新后的分析结果。
本公开的至少一实施例提供一种流式图数据处理系统,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中所述处理器执行时实现本公开的实施例提供的流式图数据处理方法的步骤。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了根据本公开的至少一实施例的流式图数据处理系统的高级体系结构的示意图。
图2示出了根据本公开的至少一实施例的有关更新和无关更新的示意图;
图3示出了根据本公开的至少一实施例的流式图数据处理方法的流程图;
图4示出了根据本公开的至少一实施例的轮循环方案的示意图。
图5示出了根据本公开的至少一实施例的流式图数据处理系统的结构示意图;
图6示出了根据本公开的至少一实施例的非瞬时性存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另作定义,此处使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“所述”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现所述词前面的元件或者物件涵盖出现在所述词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
所属领域的技术人员可以清楚地了解到本公开可至少部分地借助软件、固件加必需的通用硬件的方式来实现,当然也可以通过专用的硬件来实现,但很多情况下前者可能是优选的实施方式。基于这样的理解,本公开的技术方案本质上以软件、硬件、固件或它们的任意组合的方式体现,所述计算机软件产品存储在可读取的存储介质中,如磁性存储介质(例如硬盘)或电子存储介质(例如ROM、闪存)等,包括若干指令用以使得一台计算设备(可以是计算机、服务器或者网络设备等)执行本公开各个实施例所述的方法。
近年来,提出了若干种图数据处理系统,例如KickStarter和DifferentialDataflow,它们对单调性算法有很好的适用性。然而,对于互联网规模的图数据处理,现有的系统性能在满足吞吐量要求方面仍然有较大差距。例如,这些系统可以依赖于批处理来用延时交换更高的吞吐量,并且可以采用批量更新模式来进一步优化吞吐量。批量更新模式跳过了中间状态,但是,这些中间状态在诸如金融欺诈检测之类的情境中可能是有用的。与批处理相比,每次更新分析对延时友好,并且它们不将多个更新一起分析,从而提供准确且详细的信息。然而,对于采用每次更新方法的系统,在不使用批处理的情况下如何提供高吞吐量则成为一个问题。因此,已有的流式图数据处理系统在处理图负载时面临分析性能低或更新性能低的情况。需要一种流式图数据处理方法和系统来高效地支持更新负载和分析负载,同时针对低延时和高吞吐量的更新负载进行优化。
本公开的实施例提供一种流式图数据处理方法,包括:接收多个会话对待处理的图的更新,每个会话包括至少一个更新;根据预定分析算法判断所述更新对所述图的分析结果是否存在影响;根据所述更新对所述图的分析结果是否存在影响对所述更新进行分类,其中,将存在影响的更新分类为有关更新,将不存在影响的更新分类为无关更新,但同一会话中位于有关更新之后的所有更新分类为下轮处理更新用于在下一轮处理中重新分类;并行处理所述无关更新;在所述无关更新处理结束后或被中断后,串行处理所述有关更新。
本公开上述实施例提供的图数据处理方法可以通过对图的更新进行分类并利用更新间并发性,来提高吞吐量和确保准确性。
本公开的至少一实施例还提供一种流式图数据处理系统,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本公开的至少一实施例提供的流式图数据处理方法的步骤。
图(Graph)是用于表示一系列对象之间的关系的数据结构。图包括多个顶点(Vertex),这些顶点通过一系列边(Edge)连接,此时该图通常表示为G(V,E),其中,G表示图,V是图G中顶点的集合,E是图G中边的集合。例如,图可以用于表示一个社交网络。在社交网络中,每一个人就是一个顶点,互相认识的人之间通过边联系。图中的边可以有权重(Weight),例如,在一个代表航线的图中,各个城市是顶点,航线是边,边的权重可以是飞行时间。边可以是无方向或有方向的,若顶点Vi和Vj之间没有方向,用无序偶对(Vi,Vj)表示,若顶点Vi和Vj之间有从Vi到Vj的方向,用有序偶对<Vi,Vj>表示。在社交网络的例子中,例如,A认识B,那么B就认识A,边是没有方向的。在航班的例子中,从A城市到B城市的有向边意味着从A城市到B城市有航班,但是从B城市到A城市没有。
有向图(Directed Graph)指代边有方向的图,对于一个顶点,存在出边和入边两种方向,出边是指从该顶点指向其它顶点的边,入边是指该顶点被指向的边。无向图(Undirected Graph)指代边没有方向的图。
本公开提供的流式图数据处理方法是针对流式计算。流数据是指在时间分布和数量上无限的一系列动态数据集合体,数据的价值随着时间的流逝而降低,因此必须实时计算。流式计算就是对流数据进行处理,例如可以是实时计算。流式计算可以很好地对大规模流数据在不断变化的过程中实时地进行分析,捕捉到可能有用的信息。流式计算采用的是保持静态查询(固定语句),接收不断变化的数据的方式。
KickStarter进一步发现,所有已知的单调性图算法都可以通过维护依赖树来进行增量计算。依赖树示出了顶点的结果取决于其父节点以及其和父节点之间的边。由于每个顶点在依赖树中最多有一个父节点,因此数上最多有|V|(顶点的数目)条边,而不是|E|(图中的总边)。其它边与结果无关,因此,这些边的修改将不会改变任何结果。KickStarter提出的剪枝近似技术(trimmed approximation technique)可以为无效顶点生成近似的有效顶点。
本公开实施例所提供的流式图数据处理系统可以采用依赖树模型或剪枝近似技术。
下面,将参考附图详细地说明本公开。
图1示出了根据本公开的至少一实施例的流式图数据处理系统的高级体系结构的示意图。
如图1所示,顶层是交互性接口101,该接口允许用户以细粒度的方式与本公开所提供的系统进行交互。调度器102位于交互性接口101下方,用于控制来自多个客户端的更新的执行,其监视处理延时并基于统计数据来动态地调度更新。调度器102下方是本地化执行引擎103,用于通过本地化数据访问来处理来自调度器102的每个更新。本地化数据访问表示仅访问必要的顶点,包括与更新有关的顶点。本地化执行引擎103包括图更新引擎105和图计算引擎104。图更新引擎105可以将更新并发地应用到图。在更新图之后,图计算引擎104执行并行增量计算以基于最新的图结构来同步分析结果。独立的并发性控制模块106确保每次更新分析语义,以及确保正确性、原子性和隔离性。算法API111使得图单调性算法容易写入。本地化执行引擎103和并发性控制模块106利用算法API来执行增量计算。存储模块107管理所有必要的数据,包括图存储模块109、树和值存储模块108以及历史存储模块110。图存储模块109维护当前的图并支持高效的修改和分析。树和值存储模块108处理每个顶点的最新的计算状态。历史存储模块110跟踪所有更改的结果。
本公开实施例所提供的流式图数据处理方法可以适用于图1所示的流式图数据处理系统的相应模块。
在存储模块107中,本公开所提供的流式图数据处理系统可以通过父指针树来存储依赖树。与KickStarter类似,每个顶点维护依赖树上指向其父节点的最多一个自下而上的指针。通过检查更新边是否是父指针树依赖树上的自底向上指针,可以有效地对更新进行分类。在计算期间,对父指针树的修改也比自顶向下的指针树更轻量级。利用自顶向下的指针,更新顶点的值需要锁定三个顶点。相反,父指针树仅锁定或自动地更新经修改的顶点一次。
图2示出了根据本公开的至少一实施例的有关更新和无关更新的示意图。图中的加粗箭头表示所选择的单调性算法的依赖树。图中示出了一个有向图G=(V,E)和当前的依赖树T=(VT,ET)。
在此示例中,计算从源顶点到目标顶点的最好结果采用了最短路径算法。最短路径算法用于计算一个树中的一个节点到其它所有节点的最短路径,即计算一个节点到其它所有节点之间的最短距离,可以用一条路径上的边的权重和来表示距离。当然,本公开也可以根据应用的需要采用同其它合适的路径算法来获得依赖树。
在图2所示的图中,某些更新对作为结果的依赖树不存在影响,这些更新可以称为“无关更新”,某些更新对作为结果的依赖树存在影响,则这些更新可以成为“有关更新”。
如果所述更新为删除目标边,则当所述目标边不是所述图更新前的依赖树中的边时,认为删除所述目标边对分析结果不存在影响。例如,当前更新为删除不属于ET的边<v4,v5>。删除该边不会修改依赖树,并且因此将不会改变结果,该删除为无关更新。相反,<v0,v1>、<v0,v2><v0,v3>、<v1,v4>、<v3,v5>属于ET,因此删除这些边之一都将改变结果,这些删除为有关更新。
如果所述更新为插入新边,则基于所述图更新前的依赖树和插入的新边确定插入所述新边后所述新边的终止顶点在所述依赖树中的结果是否发生变化,如果不发生变化,则认为插入所述新边对分析结果不存在影响。例如,当前更新为插入新边<v2,v5>,该新边用虚线表示。首先,计算从源v0到v5的新结果。如图2所示,每条边上标有权重,在插入新边<v2,v5>之前,从v0到v5的最好结果是3,即从v0到v3到v5的权重和,插入新边之后,产生了比当前结果更好的结果1,即从v0到v2到v5的权重和。因此,该插入是有关更新。如果插入新边没有产生比当前结果更好的结果,则该插入是无关更新。
如果所述更新为修改目标边,则转换为删除所述目标边并插入修改后的新边,当删除所述目标边和插入所述修改后的新边都对分析结果不存在影响时,认为修改所述目标边对分析结果不存在影响。例如,当前更新为修改边<v4,v5>,即删除边<v4,v5>并插入修改后的新边。目标边<v4,v5>不属于ET,因此删除该边不会修改依赖树,不会改变结果,因此该删除为无关更新。将该边的权重修改为0,并插入修改后的新边。分析结果不受影响,从v0到v5的最好结果依然为3,即从v0到v3到v5的权重和。因此,认为修改边<v4,v5>是无关更新。
如果所述更新为删除目标顶点,则当删除所述目标顶点的所有边都对分析结果不存在影响时,认为删除所述目标顶点对分析结果不存在影响。例如,当前更新为删除顶点7,该顶点7不与依赖树有任何联系。在删除顶点7之前删除所有与它相连的边,如果删除所有边都对结果没有影响,则删除顶点7的更新为无关更新。在图2的示例中,由于删除边<v6,v7>对分析结果不存在影响,因此删除顶点7是无关更新。
如果所述更新为插入新顶点,则当所述新顶点没有任何边或所述新顶点的所有边都对分析结果不存在影响时,认为插入新顶点对分析结果不存在影响。例如,当前更新为插入顶点7(假定图2的原图中没有顶点7),如果顶点7不包含任何边(即为孤立顶点),或者该顶点7的所有边都对分析结果不存在影响(都不形成对依赖树的连接),则插入顶点7是无关更新。
如果所述更新为修改目标顶点,则转换为删除所述目标顶点并插入修改后的新顶点,当删除所述目标顶点和插入所述修改后的新顶点都对分析结果不存在影响时,认为修改所述目标顶点对分析结果不存在影响。例如,当前更新为修改顶点7,即删除顶点7并插入修改后的新顶点,如果删除该顶点7和插入修改后的顶点7都对分析结果都不存在影响,则修改顶点7是无关更新。
根据本公开的至一个实施例的更新中的一个或多个可以包括多个子更新,每个子更新包括一个顶点更新或边更新,并且仅当一个更新中的所有子更新都被分类为无关更新时,所述一个更新才被分类为无关更新。例如,当前更新包括两个子更新:删除边<v4,v5>和插入顶点7。由于删除边<v4,v5>和插入顶点7都对分析结果不存在影响,因此该更新为无关更新。如果两个子更新中有任何一个对分析结果存在影响,则该更新为有关更新。
上述分类仅取决于当前分析结果的依赖树以及更新本身,其在本公开所提供的系统中是轻量级的,这是因为该分类方法不要求任何扫描。
图3示出了根据本公开的至少一实施例的流式图数据处理方法的流程图。该流式图数据处理方法包括如下步骤:
S301:接收多个会话对待处理的图的更新,每个会话包括至少一个更新。
S302:根据预定分析算法判断所述更新对所述图的分析结果是否存在影响。
S303:根据所述更新对所述图的分析结果是否存在影响对所述更新进行分类。
S304:并行处理所述无关更新。
S305:在所述无关更新处理结束后或被中断后,串行处理所述有关更新。
例如,上述流式图数据处理方法用于转账处理,一个用户进行转账操作包括登录账户、查询余额、转账、登出账户等一系列连续操作。一个用户连续操作的序列就是一个会话,会话是一个用户的完整的操作序列。如果多个用户都在进行转账操作,则存在多个会话。用户转账操作等会导致数据更新,每个会话包括至少一个更新,这些数据被系统收集之后,然后转换为图的形式被存储到图的数据结构中进行后续处理。图的数据结构可以包括邻接表或邻接矩阵等。
在本公开的实施例中,在对更新进行处理之前,先根据预定分析算法判断更新对图的分析结果是否存在影响。例如,预定分析算法可以为单调性图算法,该预定分析算法的分析结果为依赖树,判断更新对图的分析结果是否存在影响是基于更新前的依赖树和更新进行的,已经在图2中进行了详细描述,在此不再赘述。本公开的实施例也可以采用其它分析算法,所采用的分析算法可以根据要执行的任务预先确定。
然后,将对分析结果存在影响的更新初步分类为有关更新,而将对分析结果不存在影响的分类初步为无关更新。接着,将同一会话中位于有关更新之后的所有更新分类为下轮处理更新以在下一轮处理中重新分类。这是因为执行有关更新会对结果产生影响,该有关更新之后将要执行的更新可能随之发生变化,这时候无法判断该有关更新之后的更新是有关更新还是无关更新,因此全部分类为下轮处理更新。
然后,并行处理无关更新,并且在无关更新处理结束后或被中断后,串行处理有关更新。根据本公开的实施例,处理所述无关更新和处理所述有关更新可以分别包括将所述更新存储到所述图的数据结构中以及根据所述预定分析算法计算所述图更新后的分析结果。
需要说明的是,上述流式图数据处理方法支持事务(transaction)和多个算法。本文所提供的流式图数据处理系统可以支持所有更新是单个顶点或边更新并且系统中依次仅一个算法在进行。然而,有时候,用户还期望支持包含多个更新和/或同时运行多个算法的原子事务或批处理。包含多个更新的原子事务可以称为包括多个子更新的更新。例如,对于一个写入事务,将事务的更新作为一个整体进行分类和处理。仅当一个写入事务的所有写入操作是无关更新的时候,该写入事务才是无关的。例如,在图2中,一个事务包括插入顶点7和删除边<v4,v5>。类似于写入事务,当同时进行多个算法时,一个更新仅当对于每个算法无关时,该更新才是无关更新。作为同时进行多个算法的例子,比如,在维护从多个起点出发的最短路的同时还维护联通分量,这些算法的结果保持同步更新,下游应用可以根据多个算法结果进行决策。无关更新的比例将随着更多的子更新或更多的算法而减小,这会降低更新间并行带来的吞吐量。即便如此,仍然可以提供现有系统数千倍的吞吐量。
上述流式图数据处理方法不仅可以保持每次更新分析的正确性,而且还可以提高吞吐量。
图4示出了根据本公开的至少一实施例的轮循环方案的示意图。
如图4所示,图4左侧是单路串行机制的当前设计,图4右侧是发明人设计的一种轮循环方案:在每一轮中,本公开所提供的流式图数据处理系统首先并行地处理所有无关更新并且然后依次处理所有有关更新。
参考图4,接收来自三个异步会话的六个更新,用三排白色方框表示六个更新。如图4左侧,单路串行机制以预定顺序逐个处理这六个更新,该机制限制了整体系统的吞吐量,这是因为增量计算依赖于先前的结果。
但是,在图4右侧的轮循环方案中,首先通过分类器将这些更新分类为无关更新(S)、有关更新(U)以及下一轮更新(N)。在有关更新之后,同一个会话中的所有更新为下一轮更新(N),这意味着它们应当在下一轮中被重新分类,这是因为任何有关更新操作可能修改结果并且改变它后面的更新分类。系统利用更新间的并行性来并行地处理多个无关更新,之后,依次处理有关更新;而下一轮更新(N)则进入分类器,等待下一轮循环的处理。该轮循环方案利用分类带来的并行性提高吞吐量并确保正确性。
需要说明的是,本公开所提供的流式图数据处理系统为了提供更好的用户友好性,保证来自一个会话的更新将通过相同的更新顺序来执行并提供顺序一致性。然而,这可能导致饥饿(starvation)。这里,饥饿是一个计算机术语,简而言之,即使系统没有发生死锁,某些进程也可能会长时间等待,当等待时间给进程推进或响应带来明显影响时,则称为发生了饥饿。在本公开中,如果一些会话不断产生无关更新,系统将会使得有关更新饥饿。
为了解决饥饿问题并提供可预期的处理时间,对于本公开的至少一个实施例,可以对图1中示出的调度器102进行配置。
调度器102控制每一轮的大小,并且尽可能地满足处理时间延时。调度器102将首先尝试在轮循环中打包尽可能多的无关更新,以最大限度地提高吞吐量。如此,在没有延时控制的情况下,可能会导致处理超过操作延时限制时间,因此调度器102可以使用两种方式来中断无关更新的并行执行,转而处理有关更新。
一种方式是:如果待处理的最早有关更新的等待处理时间超过预定时间,则中断无关更新的处理。该预定时间为操作延时限制时间的预定百分比。在至少一种实施方式中,将目标延时设置为用户指定的操作延时限制时间的0.8倍。
另一种方式是:如果待处理的有关更新的数目达到阈值时,则中断无关更新的处理。该阈值可以基于历史信息(处理时间超过操作延时限制时间的更新的比例)来动态调整。如果在前次调整后,处理时间不超过操作延时限制时间的更新的比例高于目标,则调度器102将增加阈值。否则,如果比例低于目标,则调度器102将减小阈值。在至少一种实施方式中,初始阈值是物理线程的数目。在至少一种实施方式中,本公开所提供的流式图数据处理系统每三个轮循环对阈值进行一次调节。
本公开至少一实施例所提供的流式图数据处理系统每次例如将阈值增加1%,并且当减小阈值时,例如将阈值调整10%。由于调度器102是自调整的,因此它可以支持各种算法和数据集。此外,调度器102可以满足延时要求,并且获得延时和吞吐量之间的折衷。
图5示出了根据本公开的至少一实施例的图数据处理系统的结构示意图。
如图5所示,图数据处理系统500可以包括处理器(例如中央处理器、图像处理器等、张量处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储器508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有图数据处理系统500操作所需的各种程序和数据。处理器501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储器508;以及通信装置509。通信装置509可以允许图数据处理系统500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的图数据处理系统500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储器508被安装,或者从ROM 502被安装。在该计算机程序被处理器501执行时,执行本公开实施例的方法中限定的上述功能。
图6示出了根据本公开的至少一实施例的非瞬时性存储介质的示意图。
例如,如图6所示,在非瞬时性存储介质600上可以非暂时性地存储一个或多个计算机可读指令601。例如,当计算机可读指令601由计算机执行时可以执行根据上文所述的图数据处理方法中的一个或多个步骤。
例如,该非瞬时性存储介质600可以应用于上述图数据处理系统500中,例如,其可以为图数据处理系统500中的存储器508。
例如,关于非瞬时性存储介质600的说明可以参考图数据处理系统500的实施例中对于存储器的描述,重复之处不再赘述。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,特定端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
以上所述仅是本公开的示范性实施方式,而非用于限制本公开的保护范围,本公开的保护范围由所附的权利要求确定。
Claims (11)
1.一种流式图数据处理方法,包括:
接收多个会话对待处理的图的更新,其中,每个会话包括至少一个更新;
根据预定分析算法判断所述更新对所述图的分析结果是否存在影响;
根据所述更新对所述图的分析结果是否存在影响对所述更新进行分类,其中,将存在影响的更新分类为有关更新,将不存在影响的更新分类为无关更新,但同一会话中位于有关更新之后的所有更新分类为下轮处理更新用于在下一轮处理中重新分类;
并行处理所述无关更新;
在所述无关更新处理结束后或被中断后,串行处理所述有关更新。
2.如权利要求1所述的流式图数据处理方法,其中,
如果待处理的最早有关更新的等待处理时间超过预定时间,则中断所述无关更新的处理。
3.如权利要求2所述的流式图数据处理方法,其中,
所述预定时间为操作延迟限制时间的预定百分比。
4.如权利要求1所述的流式图数据处理方法,其中
如果待处理的有关更新的数量达到阈值,则中断所述无关更新的处理。
5.如权利要求4所述的流式图数据处理方法,还包括:
根据处理时间超过操作延迟限制时间的更新的比例动态调整所述阈值。
6.如权利要求1-5中的任一项所述的流式图数据处理方法,其中,
所述更新中的一个或多个包括多个子更新,每个子更新包括一个顶点更新或边更新,并且
仅当一个更新中的所有子更新都被分类为无关更新时,所述一个更新才被分类为无关更新。
7.如权利要求1-5中的任一项所述的流式图数据处理方法,其中,
所述预定分析算法包括多个算法,并且
仅当一个更新针对所述预定分析算法中的所有算法都被分类为无关更新时,所述一个更新才被分类为无关更新。
8.如权利要求1-5中的任一项所述的流式图数据处理方法,其中,
所述预定分析算法为单调性图算法,所述分析结果为依赖树;并且
判断所述更新对所述图的分析结果是否存在影响根据所述图更新前的依赖树和所述更新进行。
9.如权利要求8所述的流式图数据处理方法,其中,
如果所述更新为插入新边,则基于所述图更新前的依赖树和插入的新边确定插入所述新边后所述新边的终止顶点在所述依赖树中的结果是否发生变化,如果不发生变化,则认为插入所述新边对分析结果不存在影响;
如果所述更新为删除目标边,则当所述目标边不是所述图更新前的依赖树中的边时,认为删除所述目标边对分析结果不存在影响;
如果所述更新为修改目标边,则转换为删除所述目标边并插入修改后的新边,当删除所述目标边和插入所述修改后的新边都对分析结果不存在影响时,认为修改所述目标边对分析结果不存在影响;
如果所述更新为删除目标顶点,则当删除所述目标顶点的所有边都对分析结果不存在影响时,认为删除所述目标顶点对分析结果不存在影响;
如果所述更新为插入新顶点,则当所述新顶点没有任何边或所述新顶点的所有边都对分析结果不存在影响时,认为插入新顶点对分析结果不存在影响;和/或
如果所述更新为修改目标顶点,则转换为删除所述目标顶点并插入修改后的新顶点,当删除所述目标顶点和插入所述修改后的新顶点都对分析结果不存在影响时,认为修改所述目标顶点对分析结果不存在影响。
10.如权利要求1-5中的任一项所述的流式图数据处理方法,其中,
处理所述无关更新和处理所述有关更新分别包括将所述更新存储到所述图的数据结构中以及根据所述预定分析算法计算所述图更新后的分析结果。
11.一种流式图数据处理系统,包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行时实现如权利要求1-10中的任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110655697.6A CN115470377A (zh) | 2021-06-11 | 2021-06-11 | 流式图数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110655697.6A CN115470377A (zh) | 2021-06-11 | 2021-06-11 | 流式图数据处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115470377A true CN115470377A (zh) | 2022-12-13 |
Family
ID=84365174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110655697.6A Pending CN115470377A (zh) | 2021-06-11 | 2021-06-11 | 流式图数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115470377A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120296923A1 (en) * | 2011-05-20 | 2012-11-22 | International Business Machines Corporation | Method, program, and system for converting part of graph data to data structure as an image of homomorphism |
US20130238667A1 (en) * | 2012-02-23 | 2013-09-12 | Fujitsu Limited | Database, apparatus, and method for storing encoded triples |
CN106294739A (zh) * | 2016-08-10 | 2017-01-04 | 桂林电子科技大学 | 一种基于k2树和多值决策图的大规模图数据处理方法 |
CN106354729A (zh) * | 2015-07-16 | 2017-01-25 | 阿里巴巴集团控股有限公司 | 一种图数据处理方法、装置和系统 |
CN109033234A (zh) * | 2018-07-04 | 2018-12-18 | 中国科学院软件研究所 | 一种基于状态更新传播的流式图计算方法及系统 |
CN110291517A (zh) * | 2017-01-20 | 2019-09-27 | 亚马逊科技公司 | 图数据库中的查询语言互操作性 |
US20200320129A1 (en) * | 2019-04-03 | 2020-10-08 | Unitedhealth Group Incorporated | Managing data objects for graph-based data structures |
-
2021
- 2021-06-11 CN CN202110655697.6A patent/CN115470377A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120296923A1 (en) * | 2011-05-20 | 2012-11-22 | International Business Machines Corporation | Method, program, and system for converting part of graph data to data structure as an image of homomorphism |
US20130238667A1 (en) * | 2012-02-23 | 2013-09-12 | Fujitsu Limited | Database, apparatus, and method for storing encoded triples |
CN106354729A (zh) * | 2015-07-16 | 2017-01-25 | 阿里巴巴集团控股有限公司 | 一种图数据处理方法、装置和系统 |
CN106294739A (zh) * | 2016-08-10 | 2017-01-04 | 桂林电子科技大学 | 一种基于k2树和多值决策图的大规模图数据处理方法 |
CN110291517A (zh) * | 2017-01-20 | 2019-09-27 | 亚马逊科技公司 | 图数据库中的查询语言互操作性 |
CN109033234A (zh) * | 2018-07-04 | 2018-12-18 | 中国科学院软件研究所 | 一种基于状态更新传播的流式图计算方法及系统 |
US20200320129A1 (en) * | 2019-04-03 | 2020-10-08 | Unitedhealth Group Incorporated | Managing data objects for graph-based data structures |
Non-Patent Citations (5)
Title |
---|
GUANYU FENG 等: "RisGraph: A Real-Time Streaming System for Evolving Graphs to Support Sub-millisecond Per-update Analysis at Millions Ops/s", 《SIGMOD \'21: PROCEEDINGS OF THE 2021 INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA》, 18 June 2021 (2021-06-18), pages 513, XP059093578, DOI: 10.1145/3448016.3457263 * |
MUGILAN MARIAPPAN 等: "GraphBolt: Dependency-Driven Synchronous Processing of Streaming Graphs", 《EUROSYS \'19: PROCEEDINGS OF THE FOURTEENTH EUROSYS CONFERENCE 2019》, vol. 25, 25 March 2019 (2019-03-25), pages 1 - 16 * |
易前旭: "基于应用运行特征的图数据布局与访问优化研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 06, 15 June 2019 (2019-06-15), pages 138 - 60 * |
李友焕 等: "图数据流的模型、算法和系统", 《大数据》, vol. 18, no. 04, 15 July 2018 (2018-07-15), pages 44 - 55 * |
齐汉超: "面向云环境的相似漏洞代码检测系统", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 03, 15 March 2019 (2019-03-15), pages 138 - 81 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190279088A1 (en) | Training method, apparatus, chip, and system for neural network model | |
US11327814B2 (en) | Semaphores for serverless computing | |
US20200293838A1 (en) | Scheduling computation graphs using neural networks | |
TWI620075B (zh) | 用於雲端巨量資料運算架構之伺服器及其雲端運算資源最佳化方法 | |
US7548937B2 (en) | System and method for scalable processing of multi-way data stream correlations | |
US11822574B2 (en) | System and method for providing an artificially-intelligent graph database | |
US8689231B2 (en) | System and method for ordering tasks with complex interrelationships | |
CN109508326B (zh) | 用于处理数据的方法、装置和系统 | |
CN104077723B (zh) | 一种社交网络推荐系统及方法 | |
CN111427971B (zh) | 用于计算机系统的业务建模方法、装置、系统和介质 | |
US20210090182A1 (en) | Tensor-based predictions from analysis of time-varying graphs | |
WO2023040612A1 (zh) | 用于处理订单的方法和装置 | |
CN110163255B (zh) | 一种基于密度峰值的数据流聚类方法及装置 | |
CN114020469A (zh) | 基于边缘节点的多任务学习方法、装置、介质与设备 | |
CN114650321A (zh) | 用于边缘计算的任务调度方法及边缘计算终端 | |
US20230099484A1 (en) | Application data exchange system | |
CN115412401B (zh) | 训练虚拟网络嵌入模型及虚拟网络嵌入的方法和装置 | |
CN115470377A (zh) | 流式图数据处理方法及系统 | |
US20190220532A1 (en) | Data processing with nullable schema information | |
US11164348B1 (en) | Systems and methods for general-purpose temporal graph computing | |
Li et al. | Optimizing machine learning on apache spark in HPC environments | |
Bengre et al. | A learning-based scheduler for high volume processing in data warehouse using graph neural networks | |
CN111639918A (zh) | 审批的方法、装置、电子设备及计算机可读介质 | |
US11609951B2 (en) | Digital systems and methods for a consolidated transfer matrix | |
WO2024098793A1 (zh) | 计算图的处理方法、装置、设备及存储介质 |
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 |