Compact

本文档将为您介绍 Compact。

Nebula Graph KV 基于 RocksDB 的默认 compact 做了定制。Nebula Graph 提供两种类型的 compact 相应的操作方法:

  • 调用 RocksDB 默认的 compact:主要目的是在写入时自动进行小规模的 sst 文件合并,以保证短时间内的读速度。通常在日间业务时自动触发。运行以下命令启动 RocksDB 默认 compact;
nebula> UPDATE CONFIGS storage:rocksdb_column_family_options = {disable_auto_compactions = true};

disable_auto_compactions 参数默认为关闭(即 false)。导入数据前,建议将其开启。导入数据后,请务必将其改回 false,然后执行 SUBMIT JOB COMPACT 命令主动触发 compact。

  • 调用 Nebula Graph 自定义的 compact:主要目的是完成大规模的 sst 文件合并、TTL 等大规模后台操作。通常建议在凌晨业务低谷时进行。通过 SUBMIT JOB COMPACT 来主动触发。

另外,两种方法的线程数均可通过如下命令调整。

nebula> UPDATE CONFIGS storage:rocksdb_db_options  = \
        { max_subcompactions = 4, max_background_jobs = 4};