[论文解读] On measuring performances of C-SPARQL and CQELS
本文评估了两种领先的RDF流处理引擎C-SPARQL与CQELS在不同工作负载下的性能表现,包括流速率、窗口大小、流数量以及数据量。结果表明,C-SPARQL凭借其基于时间的机制,在复杂、多流查询中表现更优;而CQELS由于采用了高效的字典编码与基于数据的执行机制,在静态数据处理中优于C-SPARQL,某些查询的执行时间差异高达27倍。
To cope with the massive growth of semantic data streams, several RDF Stream Processing (RSP) engines have been implemented. The efficiency of their throughput, latency and memory consumption can be evaluated using available benchmarks such as LSBench and City- Bench. Nevertheless, these benchmarks lack an in-depth performance evaluation as some measurement metrics have not been considered. The main goal of this paper is to analyze the performance of two popular RSP engines, namely C-SPARQL and CQELS, when varying a set of performance metrics. More precisely, we evaluate the impact of stream rate, number of streams and window size on execution time as well as on memory consumption.
研究动机与目标
- 对两种主流的RDF流处理(RSP)引擎C-SPARQL与CQELS进行全面的性能评估。
- 识别关键系统参数——流速率、窗口大小、流数量、三元组数量以及静态数据大小——对执行时间和内存消耗的影响。
- 通过考虑执行机制差异(基于时间 vs. 基于数据)并确保结果正确性,提供公平且深入的对比。
- 明确每种引擎在实际部署场景中的优势与局限性,特别是在查询复杂度与数据特征方面的表现。
提出的方法
- 设计了自定义数据生成器,以控制流大小、内容与结构,确保评估过程可复现且结果正确。
- 实现了一组五种复杂度各异的SPARQL查询,用于测试不同工作负载与查询模式。
- 在多种配置下,于受控条件下测量每三元组的执行时间与内存消耗。
- 采用预热阶段以稳定引擎行为后再进行正式测量。
- 应用归一化执行时间指标($t = T/N$),以在不同执行策略下实现公平比较。
- 在相同查询与数据条件下,对C-SPARQL(基于时间)与CQELS(基于数据)引擎均进行了实验。
实验结果
研究问题
- RQ1流速率如何影响C-SPARQL与CQELS的执行时间与内存消耗?
- RQ2窗口大小对基于时间(C-SPARQL)与基于数据(CQELS)的RSP引擎查询性能有何影响?
- RQ3并发流数量如何影响两种引擎的性能与内存使用?
- RQ4静态数据大小与数据量如何影响可扩展性与执行效率?
- RQ5在哪些查询场景下CQELS优于C-SPARQL,反之亦然?
主要发现
- 对于查询$Q_1$,C-SPARQL的平均执行时间为每三元组0.018 ms,显著优于CQELS的0.169 ms每三元组。
- 对于复杂查询如$Q_3$,C-SPARQL保持稳定性能,每三元组0.040 ms,而CQELS因需对整个窗口重复进行匹配检查而性能下降。
- 在包含50MB静态数据的查询$Q_6$中,CQELS的执行速度接近C-SPARQL的27倍,实现每三元组0.032 ms,而C-SPARQL为0.952 ms每三元组。
- 由于采用主动执行与异步流处理机制,CQELS在动态流处理场景中表现出更高的内存消耗,尤其是在处理多流时更为明显。
- C-SPARQL凭借其基于时间的批量执行机制,可在多流环境中确保输出的正确性与完整性;而CQELS在该类场景中存在输出不匹配的问题。
- 当流速率超过阈值时,C-SPARQL性能下降且不可靠,表明在生产环境中需实施速率控制。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。