target_file_size_base | state.backend.rocksdb.compaction.level.target-file-size-baseL1层单个 sstable 文件的大小阈值,默认值为64MB。每向上提升一级,阈值会乘以因子 target_file_size_multiplier(但默认为1,即每级sstable最大都是相同的)。显然,增大此值可以降低 compaction 的频率,减少写放大,但是也会...
RocksDB调整SSTable的大小 structAdvancedColumnFamilyOptions{// Target file size for compaction.// target_file_size_base is per-file size for level-1.// Target file size for level L can be calculated by// target_file_size_base * (target_file_size_multiplier ^ (L-1))// For example, if ...
每层的文件大小比前一层的大target_file_size_multiplier倍。然而,默认的target_file_size_multiplier 是1,所以L1...Lmax的文件大小是一样的。增加target_file_size_base 会减少数据库的文件数,一般是一件好事。我们建议设置target_file_size_base为max_bytes_for_level_base / 10,这样在1层会有10个文件。 co...
Flink 参数为 state.backend.rocksdb.compaction.level.target-file-size-base(ColumnFamilyOptions 的 setTargetFileSizeBase 方法),表示上一级的 SST 文件达到多大时触发 Compaction 操作,默认值是 2MB(每增加一级,阈值会自动乘以 target_file_size_multiplier). 为了减少 Compaction 的频率,可以适当调大此参数,例如...
target_file_size_base | state.backend.rocksdb.compaction.level.target-file-size-baseL1层单个 sstable 文件的大小阈值,默认值为64MB。每向上提升一级,阈值会乘以因子 target_file_size_multiplier(但默认为1,即每级sstable最大都是相同的)。显然,增大此值可以降低 compaction 的频率,减少写放大,但是也会造成旧...
上面层的文件 size 都会比当前层大 target_file_size_multiplier 倍,默认 target_file_size_multiplier 是 1,也就是每层的 SST 文件都是一样的。增加 target_file_size_base 会减少整个 DB 的 size,这通常是一件好事情,也通常建议 target_file_size_base 等于 max_bytes_for_level_base / 10,也就是 ...
target_file_size_multiplier —— 系数,level2的文件大小是target_file_size_base*target_file_size_multiplier,以此类推 max_bytes_for_level_base —— level1的文件大小总量,超过后会触发compaction以降低level1的文件总量。 max_bytes_for_level_multiplier —— level2的文件大小总量限制是max_bytes_for_level...
target_file_size_base这是级别 1 中 sst 文件的基本大小。每个后续级别都会将target_file_size_multiplier的附加乘数应用于此基本文件大小 level0_file_num_compaction_trigger 这控制在触发压缩到级别 1 之前可以在级别 0 中累积的文件数。级别 0 的总大小由以下公式控制: write_buffer_size * min_write_buffer...
compaction对需要的sst单独打开新的句柄,与Get()互不干扰并且使用2M的readhead来加速read,这里分配2M会带来额外的内存开销,默认单次compaction涉及的最大bytes为target_file_size_base * 25,即25个sst文件,则每个rocksdb实例会额外消耗25*2M = 50M,48个实例一共消耗50M*48 = 2.4G ...
target_file_size_base- level1-levelN的单个SST文件大小 max_bytes_for_level_multiplier- level1-levelN中,相邻两个level的大小的差距,例如level1为256MB,差距为10的话,level2就为2560MB num_levels- 最多可以有几个level 这里详细介绍一下合并操作的触发条件,了解不同level之间的合并触发是非常重要的,因为通...