【问题标题】:Why SST needs multiple datablock为什么 SST 需要多个数据块
【发布时间】:2022-10-18 05:22:25
【问题描述】:

对 LevelDB 中的 SST 设计感到困惑。
据我所知,SSTable 中有多个数据块。
多数据块有什么好处。
谢谢。

【问题讨论】:

    标签: java rocksdb leveldb


    【解决方案1】:

    它允许更多的结构和仅读取所需块的能力。块本身的大小通常为 4kb,因此可以通过文件中的偏移量进行索引。

    如果有 1 个大块,您必须阅读整个内容才能获取 1 个密钥

    【讨论】:

    • 谢谢,但索引也可以做到这一点。使用“更高级别”索引扩展数据块中的索引似乎等于多个数据块。
    【解决方案2】:

    当您在一个.sst 文件中有多个数据块时,您可以压缩这些块并即时解压缩它们。将未压缩的块保持在专用缓存中也是可能的。

    如果你有一个唯一的数据块,这会降低效率(解压缩不是免费的)并且会增加缓存压力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      相关资源
      最近更新 更多