Result-Set Management for NDP Operations on Smart Storage
1 Introduction
现代DBMS大多数采用传统的data-to-code架构,它们将大量的数据传输到主机上,然后再进行筛选和处理。大量数据的移动成为性能和可扩展性的瓶颈。智能存储和分类内存的出现使近数据处理(NDP)架构和code-to-data范式成为可能,这些范式的目标是在物理存储数据的位置附近执行数据库操作。NDP可以利用更高的设备内部带宽、并行性,尤其是更快的存储来进行数据处理和过滤。同时,由于有不同类型的NDP操作和不同的执行模式,NDP操作的结果集管理成为一个重要因素。本文的出发点就是为NDP提供一个结果集管理技术。
虽然当前基于tuple的方法通过传输精确的结果tuple来减少传输的数据量,但由于传输开销和低带宽利用率,可能无法获得最佳性能。而基于block的方法可能会利用全部I/O带宽,但会因传输更多数据降低性能。且这两种方法均不允许结果集的重用。
本文提出了in-situ result-set materialization,它能够将任意NDP操作组合到NDP流水线中,从而减少向主机的整体数据传输。同时,本文提出了设备上的数据溢出到持久化存储,使得NDP操作即使在资源受到限制时也可以进行。最后,本文介绍了结果集的重用技术,为NDP流水线提供的一定容错。
2 Related Work
2.1 Result-Set Management
本节讨论目前方法中不同类型的结果集处理技