编辑
2023-11-11
数据库理论基础
00
请注意,本文编写于 546 天前,最后修改于 546 天前,其中某些信息可能已经过时。

RUM猜想是一个存储结构开销模型,它考虑了读取(Read)、更新(Update)和内存(Memory)三个因素的开销。根据RUM猜想,当优化其中两项开销时,第三项开销不可避免地会恶化,并且在优化过程中只能以牺牲其中一项为代价[1]

具体来说,RUM猜想指出,在设计存储引擎时,如果我们设定了两项开销的上限,那么第三项开销将会有一个下限,无法进一步减少[3]。这意味着在优化存储引擎时,我们需要在读取、更新和内存开销之间进行权衡和取舍。

举例来说,对于B树这种存储结构,它主要针对读取进行优化。但是在进行写入操作时,需要在磁盘上找到相应的记录,并且可能需要多次更新同一页的数据,这会增加更新的开销。此外,为了保留未来的更新和删除操作,还需要额外的空间开销[2]

另一种存储结构LSM树则不需要在写入期间定位磁盘上的记录,也不需要为未来的写入操作保留额外的空间。但是由于存储了冗余的记录,LSM树仍然存在一些空间开销。此外,由于需要访问多个表才能返回完整的结果,LSM树的读取成本也更高[2]

总之,RUM猜想提醒我们在设计存储引擎时要考虑到读取、更新和内存开销之间的权衡,并且在优化过程中需要牺牲其中一项开销来达到最优化的效果[1]


Learn more:

  1. [EDBT'16] Designing Access Methods: The RUM Conjecture](http://hcoona.github.io/Paper-Note/rum-conjecture/)
  2. RUM猜想_rum 猜想_wangleigiser的博客-CSDN博客
  3. Paper read: Designing Access Methods: The RUM Conjecture - 知乎

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!