S/C: 用有限内存加快数据实现速度
摘要:使用数据管道工具和SQL的表达力,管理相互依赖的物化视图(MVs)变得越来越容易。这些MVs在新数据摄取(例如每天)时重复更新,数据库管理员可以观察到不同类型的更新(全量 vs 增量)和不同系统(单节点、分布式、云托管)的性能指标(例如每个MV的刷新时间、磁盘上的大小)以一致的方式。一个被忽视的机会是,现有数据系统把这些MV更新视为独立的SQL语句,而没有充分利用它们的依赖信息和性能指标。然而,如果我们知道一个SQL语句的结果将立即在后续操作中使用,那么这些后续操作就不必等到早期结果在存储中完全材料化,因为结果已经在内存中可用。当然,这可能会有代价,因为保留结果在内存中(即使是暂时的)将减少可用内存的数量;因此,我们的决策应该小心。在本文中,我们介绍了一个名为S/C的新系统,通过在其中存在无环依赖的一组MV之间高效地创建和更新这个问题。S/C巧妙地使用有界内存,通过绕过昂贵的读取和写入来减少端到端MV刷新时间;S/C的目标函数可以准确估计将中间数据保存在内存中特定时间段的时间节省。我们的解决方案共同优化了MV刷新顺序、要在内存中保存的数据以及何时释放内存中的数据。在高层次上,S/C仍按照MV定义精确地材料化所有数据,因此不会影响任何服务级别协议。在我们对TPC-DS数据集(高达1TB)的实验中,我们展示了S/C的优化可以将端到端运行时间加速1.04倍至5.08倍,内存占用为1.6GB。
作者:Zhaoheng Li, Xinyu Pi, Yongjoo Park
论文ID:2303.09774
分类:Databases
分类简称:cs.DB
提交时间:2023-03-20