arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1802.09883cs.DB
收藏

RDBMS中可再现的浮点聚合

Reproducible Floating-Point Aggregation in RDBMSs

Ingo Müller, Andrea Arteaga, Torsten Hoefler, Gustavo Alonso

摘要:

如果对同一输入重复运行相同的查询,则期望工业级数据库系统产生相同的结果。然而,现代系统中的非确定性的众多来源使得难以实现可重复的结果。如果涉及到浮点数,则尤其如此,因为运算的顺序会影响最终结果。作为用更适合机器学习和科学应用的数据表示来扩展数据库引擎的更大努力的一部分,在本文中,我们探讨了在浮点格式上使关系GroupBy位可再现的问题,即,确保运算符的任何执行产生相同的结果直到每一位。为此,我们首先提出了一种数字数据类型,它可以用作其他数字格式的直接替代,并且与标准浮点格式不同,它是关联的。我们使用这种数据类型来使最先进的GroupBy运算符可再现,但是与使用传统数据库编号格式的相同运算符相比,这种方法会导致4倍到12倍的速度减慢。因此,我们将探讨如何修改现有的GroupBy算法,使其位再现和高效。通过对批次使用向量化求和并仔细平衡批次大小,缓存占用和预处理成本,我们能够将由于可重复性导致的速度降低到隔离聚合的1.9倍到2.4倍之间,即使在MonetDB中的聚合密集型查询中,端到端查询性能也只有2.7%。因此,我们提供了一个坚实的基础,直接在关系引擎中支持更多的可重复操作。本文件是目前正在印刷的一篇文章的扩展版本,用于ICDE'18会议记录,标题相同,作者相同。主要增加的是更多的实现细节和实验。

英文摘要:

Industry-grade database systems are expected to produce the same result if the same query is repeatedly run on the same input. However, the numerous sources of non-determinism in modern systems make reproducible results difficult to achieve. This is particularly true if floating-point numbers are involved, where the order of the operations affects the final result. As part of a larger effort to extend database engines with data representations more suitable for machine learning and scientific applications, in this paper we explore the problem of making relational GroupBy over floating-point formats bit-reproducible, i.e., ensuring any execution of the operator produces the same result up to every single bit. To that aim, we first propose a numeric data type that can be used as drop-in replacement for other number formats and is---unlike standard floating-point formats---associative. We use this data type to make state-of-the-art GroupBy operators reproducible, but this approach incurs a slowdown between 4x and 12x compared to the same operator using conventional database number formats. We thus explore how to modify existing GroupBy algorithms to make them bit-reproducible and efficient. By using vectorized summation on batches and carefully balancing batch size, cache footprint, and preprocessing costs, we are able to reduce the slowdown due to reproducibility to a factor between 1.9x and 2.4x of aggregation in isolation and to a mere 2.7% of end-to-end query performance even on aggregation-intensive queries in MonetDB. We thereby provide a solid basis for supporting more reproducible operations directly in relational engines. This document is an extended version of an article currently in print for the proceedings of ICDE'18 with the same title and by the same authors. The main additions are more implementation details and experiments.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑