Differential computation (DC) is a highly general incremental computation/view maintenance technique that can maintain the output of an arbitrary and possibly recursive dataflow computation upon changes to its base inputs. As such, it is a promising technique for graph database management systems (GDBMS) that support continuous recursive queries over dynamic graphs. Although differential computation can be highly efficient for maintaining these queries, it can require a prohibitively large amount of memory. This paper studies how to reduce the memory overhead of DC with the goal of increasing the scalability of systems that adopt it. We propose a suite of optimizations that are based on dropping the differences of operators, both completely or partially, and recomputing these differences when necessary. We propose deterministic and probabilistic data structures to keep track of the dropped differences. Extensive experiments demonstrate that the optimizations can improve the scalability of a DC-based continuous query processor.
翻译:差异计算(DC)是一种非常一般的递增计算/视图维护技术,可以维持在基投入变化时任意和可能重复的数据流计算结果,因此,这是一种很有希望的图表数据库管理系统(GDBMS)技术,支持对动态图形的连续循环查询。虽然差异计算对于维持这些查询来说效率很高,但可能需要大量内存,这是令人望而却步的。本文研究如何减少DC的内存间接费用,目的是提高采用该数据的系统的可扩缩性。我们提出一套优化办法,其依据是完全或部分消除操作者的差异,并在必要时对这些差异进行重新计算。我们提议确定性和概率性的数据结构,以跟踪所减少的差异。广泛的实验表明,优化可以提高基于DC的连续查询处理器的可伸缩性。