流时间图:子图匹配
Streaming Temporal Graphs: Subgraph Matching
摘要:
我们调查的解决方案,子图匹配的时间数据流内。我们提出了一个高级语言用于描述感兴趣的时间子图,流分析语言(SAL)。SAL程序被翻译成C++代码,在集群上并行运行。我们将SAL的这种实现称为流分析机(SAM)。SAL程序简洁,比直接使用SAM库或使用Apache Flink编写实现所需的代码行少20倍。为了对SAM进行基准测试,我们计算在流网络流数据中查找时间三角形。此外,我们将SAM与为Flink编写的实现进行了比较。我们发现SAM能够扩展到128个节点或2560个核心,而Apache Flink的最大吞吐量为32个节点,之后会下降。当三角形很少时,Apache Flink具有优势,Flink在32个节点上的最大总吞吐量大于SAM的最大可实现速率。在我们的实验中,当三角形出现速度超过每个节点每秒5次时,SAM的性能更好。由于网络通信的延迟,这两个框架都可能错过结果。SAM始终报告平均93.7%的预期结果,而Flink随着我们增加到集群的最大大小而从83.7%下降到52.1%。总体而言,SAM每天可以获得918亿个净流量。
英文摘要:
We investigate solutions to subgraph matching within a temporal stream of data. We present a high-level language for describing temporal subgraphs of interest, the Streaming Analytics Language (SAL). SAL programs are translated into C++ code that is run in parallel on a cluster. We call this implementation of SAL the Streaming Analytics Machine (SAM). SAL programs are succinct, requiring about 20 times fewer lines of code than using the SAM library directly, or writing an implementation using Apache Flink. To benchmark SAM we calculate finding temporal triangles within streaming netflow data. Also, we compare SAM to an implementation written for Flink. We find that SAM is able to scale to 128 nodes or 2560 cores, while Apache Flink has max throughput with 32 nodes and degrades thereafter. Apache Flink has an advantage when triangles are rare, with max aggregate throughput for Flink at 32 nodes greater than the max achievable rate of SAM. In our experiments, when triangle occurrence was faster than five per second per node, SAM performed better. Both frameworks may miss results due to latencies in network communication. SAM consistently reported an average of 93.7% of expected results while Flink decreases from 83.7% to 52.1% as we increase to the maximum size of the cluster. Overall, SAM can obtain rates of 91.8 billion netflows per day.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。