RUM猜想是一个存储结构开销模型,它考虑了读取(Read)、更新(Update)和内存(Memory)三个因素的开销。根据RUM猜想,当优化其中两项开销时,第三项开销不可避免地会恶化,并且在优化过程中只能以牺牲其中一项为代价[1]。
具体来说,RUM猜想指出,在设计存储引擎时,如果我们设定了两项开销的上限,那么第三项开销将会有一个下限,无法进一步减少[3]。这意味着在优化存储引擎时,我们需要在读取、更新和内存开销之间进行权衡和取舍。
举例来说,对于B树这种存储结构,它主要针对读取进行优化。但是在进行写入操作时,需要在磁盘上找到相应的记录,并且可能需要多次更新同一页的数据,这会增加更新的开销。此外,为了保留未来的更新和删除操作,还需要额外的空间开销[2]。
另一种存储结构LSM树则不需要在写入期间定位磁盘上的记录,也不需要为未来的写入操作保留额外的空间。但是由于存储了冗余的记录,LSM树仍然存在一些空间开销。此外,由于需要访问多个表才能返回完整的结果,LSM树的读取成本也更高[2]。
总之,RUM猜想提醒我们在设计存储引擎时要考虑到读取、更新和内存开销之间的权衡,并且在优化过程中需要牺牲其中一项开销来达到最优化的效果[1]。
Learn more:
本文作者:yowayimono
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!