【发布时间】:2022-10-18 05:22:25
【问题描述】:
对 LevelDB 中的 SST 设计感到困惑。
据我所知,SSTable 中有多个数据块。
多数据块有什么好处。
谢谢。
【问题讨论】:
对 LevelDB 中的 SST 设计感到困惑。
据我所知,SSTable 中有多个数据块。
多数据块有什么好处。
谢谢。
【问题讨论】:
它允许更多的结构和仅读取所需块的能力。块本身的大小通常为 4kb,因此可以通过文件中的偏移量进行索引。
如果有 1 个大块,您必须阅读整个内容才能获取 1 个密钥
【讨论】:
当您在一个.sst 文件中有多个数据块时,您可以压缩这些块并即时解压缩它们。将未压缩的块保持在专用缓存中也是可能的。
如果你有一个唯一的数据块,这会降低效率(解压缩不是免费的)并且会增加缓存压力。
【讨论】: