level0 sst 太多导致流控

level0 sst 太多导致流控
1)level0 本来空间也不大,哪种情况会sst太多
2)默认default cf 和 write cf ,每个cf最多5个memtable ,那是不是对应default cf 有5个level0 ,write cf 有5个cf?

1 个赞

level0 会存储多版本的数据实例,而且是无序的

level 0太多,说明数据不停的在变化,产生了很多新版本的数据

level1 - level5 是有序的合并后的数据,一般是比较旧的版本

memtable 的信息,可以参考tikv 的默认值
image

tikv 是分布式的方案,如果某个节点出线这个问题,肯定就存在热点写了
建议将热点打散,将压力分摊到其他的节点

1 个赞

为啥说:level 0太多就是表示:说明数据不停的在变化,产生了很多新版本的数据?

1 个赞

只有Level 0 会存储无序较多版本的数据,level1 - level5 会保证有序

LSM树的核心特点是利用顺序写来提高写性能,
但因为分层(此处分层是指的分为内存和文件两部分)的设计会稍微降低读性能,
但是通过牺牲小部分读性能换来高性能写,使得LSM树成为非常流行的存储结构。

如果对这块想要有更多的信息,建议搜索下 rocksDB的一些知识点

1 个赞

不仅update 会造成过多level0 sst 过多,insert 也会造成level0过多吧?

1 个赞

delete 也会…:panda_face:

1 个赞

那也就是当有业务dml高峰的时候,都有可能造成level0 sst过多

1 个赞

1 个赞

在这里其实我想了解,根据下图:只需要达到5个memory table 或者 level0 只有9个sst 文件就达到流控,感觉很容易触发流程啊?

image

1 个赞


1 个赞

最新的是啥流控机制

1 个赞


1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。