Designing Access Methods: The RUM Conjecture

19th International Conference on Extending Database Technology (EDBT), March 2016

https://stratos.seas.harvard.edu/files/stratos/files/rum.pdf

数据库领域致力于研究存储、访问、更新数据的方法已有 40 余年,不同的数据结构和算法被提出以适应不断变化的硬件和工作负载。随着新的负载要求、新应用程序及新硬件的出现,数据访问方法逐渐趋向于 application-awarehardware-aware

在设计数据访问方法的时候总是尝试最小化以下三个开销:

  • Read Overhead (RO) —— 也称为 read amplification,即读放大
  • Update Overhead (UO) —— 也称为 write amplification,即写放大
  • Memory Overhead (MO) —— 也称为 space amplification,即空间放大

本论文提出了 RUM 推测:

An access method that can set an upper bound for two out of the read, update, and memory overheads, also sets a lower bound for the third overhead.

即三者构成一个 competing triangle,下图展示了一些数据结构在该三角中的位置:

Popular data structures in the RUM space.

论文给出了一些典型数据结构的各种开销数据:

RUM 推测指出完美的数据访问方法不存在,但这并不代表应该停止改进,恰恰相反,应该使用该理论指导数据访问方法的研究,针对不同的应用负载和不同的硬件特性研发不同的数据访问方法。