data目下的.sst文件疑问

问题一: 像这种的绝大数多是67m的.sst文件, 也有一小部分的几兆的文件是正常的吗??

image

问题二: 你们有没有统计过/data下的.sst文件最大的数量有没有限制?? 我怀疑这个数量和我之前的一个报错有关系, 现在是1.5W + , 启动数据量的话storage进程的打开句柄是260W+ , 我之前的那个报错是6W+的.sst文件 , 刚启动数据库storage的打开句柄就已经快1000W+了, 随便干嘛就挂了, 报错: Too many open files… docker部署, 然后用Flink导入Nebula出现/var/lib/docker/overlay2目录暴增, 并伴随着storage服务的挂掉重启, 报错: Too many open files - #48,来自 yangmeng
image

有几种条件下RocksDB会flush MemTable到磁盘:

  1. 当某一个memtable的大小超过write_buffer_size.
  2. 当总的memtable的大小超过db_write_buffer_size.
  3. 当WAL文件的大小超过max_total_wal_size之后

最后一个条件的原因是,当WAL文件大小太大之后,我们需要清理WAL,因此此时我们需要将此WAL对应的数据都刷新到磁盘,也是刷新Memtable.

所以有可能会出现一个比较小的SST 文件。

3 个赞

那么亲问下, 上1000亿的数据量, 还是推荐使用默认的64m的.sst文件吗? 还是说要调整一下大小, 我是从官网看这文件越小查询性能越好

因为是二分查找,其实是文件比较小查询效率比较高。但考虑到数据量很大,文件大小调大一些也可以

目前我们没统计过这个限制。我怀疑句柄回收和docker 部署也许有关系。

那行, 我们就先保持现状预先使用, 如果后续大规模部署的, 会考虑购买你们的服务, 请你们专业帮忙指导

1 个赞

我在Github 上找到一个 Error: Too many open files

max_open_files=-1 表示文件总是保持打开状态。也许说的是这个问题

1 个赞

该话题在最后一个回复创建后30天后自动关闭。不再允许新的回复。