一句话:提出 PitStop,一种可中断查询处理的运行时设计,在保持顺序一致性的同时实现细粒度并发,提升负载波动下的查询性能。
在线数据服务对性能要求严苛,且必须容忍工作负载波动。本文提出 PitStop,一种新的查询语言运行时设计,其核心思想是「可中断查询处理」:处理每个查询或更新时,耗时的数据检查任务可以在细粒度数据分区的边界处被中断,并在之后恢复执行。这一反直觉的做法在保持顺序一致性(sequential consistency)的前提下,带来了一种新颖的细粒度并发形式。作者通过修改最先进图数据库 Neo4j 的查询语言 Cypher 的语言运行时来实现 PitStop。在 Google Cloud 上的评估表明,PitStop 在负载波动期间能够超越未经修改的 Neo4j,实现更低的延迟与更高的吞吐量。
Online data services have stringent performance requirement and must tolerate workload fluctuation. This paper introduces P it S top , a new query language runtime design built on the idea of interruptible query processing : the time-consuming task of data inspection for processing each query or update may be interrupted and resumed later at the boundary of fine-grained data partitions. This counter-intuitive idea enables a novel form of fine-grained concurrency while preserving sequential consistency . We build P it S top through modifying the language runtime of Cypher, the query language of a state-of-the-art graph database, Neo4j. Our evaluation on the Google Cloud shows that P it S top can outperform unmodified Neo4j during workload fluctuation, with reduced latency and increased throughput.
@article{EymerDRL24,
title = {A Runtime System for Interruptible Query Processing: When Incremental Computing Meets Fine-Grained Parallelism},
author = {Jeff Eymer and Philip Dexter and Joseph Raskind and Yu David Liu},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {OOPSLA2},
year = {2024},
doi = {10.1145/3689772}
}