Skip to content

Commit

Permalink
key-value separation support of RocksDB
Browse files Browse the repository at this point in the history
  • Loading branch information
cooper-lzy committed Jan 7, 2022
1 parent ee37a0e commit 8cb0789
Showing 1 changed file with 15 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ Storage 服务提供了两份初始配置文件`nebula-storaged.conf.default`和
| 名称 | 预设值 | 说明 |
| :------------- | :------------------------ | :------------------------------------------------ |
| `log_dir` | `logs` | 存放 Storage 服务日志的目录,建议和数据保存在不同硬盘。 |
| `minloglevel` | `0` | 最小日志级别,即不会记录低于这个级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,Nebula Graph 不会记录任何日志。 |
| `v` | `0` | 日志详细级别,值越大,日志记录越详细。可选值为`0``1``2``3`|
| `minloglevel` | `0` | 最小日志级别,即不会记录低于这个级别的日志。可选值:`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,Nebula Graph 不会记录任何日志。 |
| `v` | `0` | 日志详细级别,值越大,日志记录越详细。可选值:`0``1``2``3`|
| `logbufsecs` | `0` | 缓冲日志的最大时间,超时后输出到日志文件。`0`表示实时输出。单位:秒。 |
|`redirect_stdout`|`true` |是否将标准输出和标准错误重定向到单独的输出文件。 |
|`stdout_log_file` |`storaged-stdout.log` | 标准输出日志文件名称。 |
Expand Down Expand Up @@ -77,19 +77,28 @@ Storage 服务提供了两份初始配置文件`nebula-storaged.conf.default`和
| 名称 | 预设值 | 说明 |
| :--------------------------| :-------------- | :------------------------ |
|`data_path` | `data/storage` | 数据存储路径,多个路径用英文逗号(,)分隔。一个 RocksDB 实例对应一个路径。 |
|`minimum_reserved_bytes`|`268435456`|每个数据存储路径的剩余空间最小值,低于该值时,可能会导致集群数据写入失败。单位:字节。默认为`1073741824`,即 1GB。|
|`minimum_reserved_bytes`|`268435456`|每个数据存储路径的剩余空间最小值,低于该值时,可能会导致集群数据写入失败。单位:字节。|
|`rocksdb_batch_size` | `4096` | 批量操作的缓存大小。单位:字节。 |
|`rocksdb_block_cache` | `4` | BlockBasedTable 的默认块缓存大小。单位:兆(MB)。 |
|`engine_type` | `rocksdb` | 存储引擎类型。 |
|`rocksdb_compression` | `lz4` | 压缩算法,可选值为`no``snappy``lz4``lz4hc``zlib``bzip2``zstd`|
|`rocksdb_compression` | `lz4` | 压缩算法,可选值:`no``snappy``lz4``lz4hc``zlib``bzip2``zstd`|
|`rocksdb_compression_per_level` | - | 为不同级别设置不同的压缩算法。 |
|`enable_rocksdb_statistics` | `false` | 是否启用 RocksDB 的数据统计。 |
|`rocksdb_stats_level` | `kExceptHistogramOrTimers` | RocksDB 的数据统计级别。可选值为`kExceptHistogramOrTimers`(禁用计时器统计,跳过柱状图统计)、`kExceptTimers`(跳过计时器统计)、`kExceptDetailedTimers`(收集除互斥锁和压缩花费时间之外的所有统计数据)、`kExceptTimeForMutex`收集除互斥锁花费时间之外的所有统计数据)`kAll`(收集所有统计数据)。 |
|`rocksdb_stats_level` | `kExceptHistogramOrTimers` | RocksDB 的数据统计级别。可选值:`kExceptHistogramOrTimers`(禁用计时器统计,跳过柱状图统计)、`kExceptTimers`(跳过计时器统计)、`kExceptDetailedTimers`(收集除互斥锁和压缩花费时间之外的所有统计数据)、`kExceptTimeForMutex`收集除互斥锁花费时间之外的所有统计数据)`kAll`(收集所有统计数据)。 |
|`enable_rocksdb_prefix_filtering` | `true` | 是否启用 prefix bloom filter,启用时可以提升图遍历速度,但是会增加内存消耗。 |
|`enable_rocksdb_whole_key_filtering` | `false` | 是否启用 whole key bloom filter。 |
|`rocksdb_filtering_prefix_length` | `12` | 每个 key 的 prefix 长度。可选值为`12`(分片 ID+点 ID)`16`(分片 ID+点 ID+TagID/Edge typeID)。单位:字节。 |
|`rocksdb_filtering_prefix_length` | `12` | 每个 key 的 prefix 长度。可选值:`12`(分片 ID+点 ID)`16`(分片 ID+点 ID+TagID/Edge typeID)。单位:字节。 |
|`enable_partitioned_index_filter`|- |设置为`true`可以降低 bloom 过滤器占用的内存大小,但是在某些随机寻道(random-seek)的情况下,可能会降低读取性能。|

## Key-Value separation 配置

| 名称 | 预设值 | 说明 |
| :------------------| :------------------------| :------------------------------- |
| `rocksdb_enable_kv_separation` | `false` | 是否启用 BlobDB KV 分离存储功能。开启后可以提高查询性能。 |
| `rocksdb_kv_separation_threshold` | `100` | RocksDB KV 分离的阈值,在 flush 或 compaction 期间,大于或等于该阈值的值将被写入blob文件。请根据自身业务的数据分布情况进行设置。单位:字节。 |
| `rocksdb_blob_compression` | `lz4` | BlobDB 的压缩算法,可选值:`no``snappy``lz4``lz4hc``zlib``bzip2``zstd`|
| `rocksdb_enable_blob_garbage_collection` | `true` | 在 compaction 过程中是否对 BlobDB 进行垃圾收集。 |

## misc 配置

!!! caution
Expand Down

0 comments on commit 8cb0789

Please sign in to comment.