rocksdb存储 level 1 单个sst 256MB,是固定值吗?还是由计算得来的?
256MB 是默认值,也有文档说 大小上限也是这个值
你的意思是说这个256MB 是指定的呗 非计算由来的?
你说的是默认值 那level1 的大小时可以调整的吗? 那个参数控制的呀?
max-bytes-for-level-base
这里说 一般为memtable的4倍,并未提及256MB 是默认值
单个SST文件是不是受限于 compaction-guard-min-output-file-size
和 compaction-guard-max-output-file-size
的大小?按照图上这个说法,单个SST到L 4有250GB?不会吧
图示里是不是只是举的例子,不太确定。我印象里第一层默认最大存储是512MB,由max-bytes-for-level-base决定的。而且图示里指的应该也不是单个sst文件的大小,而是每一层的大小。
视频中只是举例
默认数值,可以调整的
这个 max-bytes-for-level-base
是L 1默认的总大小吗?那如果根据 max-bytes-for-level-multiplier
来计算,那岂不是TiKV的总容量是有上限的?
单个tikv的容量本身就不建议非常大,按照上面的计算方式,极限情况下七层sst文件应该也远远超过建议值了吧。
是的
这里的大小是指整个level 层级的大小
是的, 今天特意看了一下 差点搞错了 以为是一个固定值呢
level 1 整个层级
rocksdb.defaultcf.max-bytes-for-level-base
rocksdb.writetcf.max-bytes-for-level-base
rocksdb.lockcf.max-bytes-for-level-base值得大小都是按照默认值
一般取值规则按照 1个memtable压缩后的大小*4 得来
https://docs.pingcap.com/zh/tidb/dev/tune-tikv-memory-performance#参数说明
再请教一下,L0层默认是没有压缩的,那L0层单个SST文件大小是不是与memtable大小相等?或者说从memtable到SST文件这个过程,在未开启压缩时是否有大小变化?
是的 L0是immutable memtable 的复刻
有1个问题 你这里为什么是7层sst 呀?