点积连接:一种用于大规模模型分析的数组-关系连接算子
数据库
2017-02-01 v2
摘要
大规模模型分析(Big Model analytics)致力于训练超出单一计算设备(如 CPU 或 GPU)可用内存的海量模型。它推广了大数据分析(Big Data analytics),后者旨在如何对超出内存的训练数据训练内存驻留模型。本文中,我们提出了一种用于大规模模型分析的数据库内解决方案。我们确定点积(dot-product)为训练广义线性模型的主要操作,并引入了第一组稀疏数组与稠密关系之间的数组-关系点积连接数据库算子。这是对被广泛研究的稀疏矩阵向量乘法(SpMV)核的一种约束表述。设计点积连接算子的首要挑战是如何基于稀疏数组中不连续的条目来最优调度对稠密关系的访问。我们证明该问题是 NP-hard 的,并提出了一种实用解决方案,其两个技术贡献为——动态批处理与数组重排序。我们设计了三种启发式方法——LSH、Radix 和 K-center——用于数组重排序,并对它们进行了深入分析。我们在合成与真实数据上进行了大量实验,证实了该算子在内存充足时引起的极小开销,以及在内存在变得稀缺时的性能优雅退化。此外,点积连接相比其他数据库内解决方案实现了执行时间数量级的减少。
引用
@article{arxiv.1602.08845,
title = {Dot-Product Join: An Array-Relation Join Operator for Big Model Analytics},
author = {Chengjie Qin and Florin Rusu},
journal= {arXiv preprint arXiv:1602.08845},
year = {2017}
}