Skip to content

常用配置项详细说明

fx408 edited this page May 29, 2025 · 2 revisions

data.memtable

shard-mutable-size-limit
  • 常规模式下,数据在写入store节点时,会在内存中积攒一定量或一定时长,才会刷盘生成TSPP数据文件(由WAL保证可靠性)
  • 该参数用于控制内存中数据量,在内存中的数据量 >= 配置值时进行刷盘
  • 由于内存中的数据是按Record结构化存储的,实际消耗的内存可能是配置项的2-3倍
  • 正在写入数据的内存表叫 activeTable,达到刷盘条件时切换为 snapshotTable,并重新分配一个 activeTable 用于接收新的数据写入,snapshotTable 转入后台协程执行刷盘操作
  • 每个shard,只允许有一个 activeTable 和一个 snapshotTable。在刷盘比较慢,数据写入量比较大时,snapshotTable 尚未完成刷盘操作,activeTable 又达到了刷盘阈值,此时可能触发流控。
  • 推荐配置:内存 / 64。视情况适当增减。增大该值可以在一定程度上提升数据写入性能,减少乱序文件数量
node-mutable-size-limit
  • shard-mutable-size-limit 是针对单个 shard 的配置
  • 数据可能往相同 db rp 的多个shard 写入;也可能往不同 db rp 下的多个shard写入
  • 该参数用于控制节点上所有 shard 内存数据量,一般配置为 N*shard-mutable-size-limit N >= 2
  • 若节点上有M个shard同时写入数据,在 M*shard-mutable-size-limit > node-mutable-size-limit 时可能触发流控

data

chunk-meta-compress-mode
  • 设置TSSP文件中ChunkMeta 部分的压缩方式
  • 取值范围
  0: 不压缩默认值
  1: 使用 Snappy 算法压缩
  2: 使用 LZ4 算法压缩
  3: 自编码使用字典差分varint等方式编码达到压缩目的 // v1.4.0 开始支持
  • 开启元数据压缩功能,能够减少TSSP数据文件占用的磁盘空间,特别是时间线、列较多时,能有效降低磁盘使用量
  • 但在使用Snappy,LZ4时,会导致查询性能受损,特别是涉及时间线数量较多的查询
  • 因此在 1.4.0 的版本中我们实现了自编码的压缩方式,既能压缩元数据,又能提升查询性能(加速了ChunkMeta解码过程,但编码过程变慢了)
string-compress-algo
  • 设置string类型数据的压缩算法
  • 支持:Snappy, LZ4, ZSTD, 默认为 Snappy
  • LZ4 解压缩更快,Snappy 相对平衡,ZSTD 压缩率更高
  • 在存在string类型数据,并对磁盘使用量较敏感的场景,可以使用 ZSTD

coordinator

time-range-limit
  • 示例 time-range-limit = ["72h", "24h"]
  • 用于限制数据写入的时间范围,只允许写入过去N小时到未来M小时内,默认不限制
  • 写入太老的数据,或太超前的数据,可能导致活跃的shard太多,出现OOM,写入流控等问题
Clone this wiki locally