文档下载建议反馈入口

  • 存储路径设置
  • 数据重组
  • 时序分布式日志存储引擎

存储管理

存储路径设置

默认存储路径和系统要求

下表列出了 KWDB 各类文件的默认存储路径、文件系统和配置信息。

文件
默认路径大小文件系统配置参数
数据文件/var/lib/kaiwudb取决于存储数据的大小- 建议使用 ext4 文件系统。
- 如果存储大于 16 TB 的数据,建议使用 XFS 系统。
- 部署配置文件中的 data_root 参数
- --store 启动参数
日志/var/lib/kaiwudb/logs默认 1G,可配置建议使用 ext4 文件系统。--log-dir 启动参数
证书/etc/kaiwudb/certsN/A建议使用 ext4 文件系统。--certs-dir 启动参数
二进制文件/usr/local/kaiwudb/bin> 200 M建议使用 ext4 文件系统。N/A
动态库文件/usr/local/kaiwudb/lib> 100 M建议使用 ext4 文件系统。N/A

说明

如果采用 Docker 容器部署,则使用宿主机路径,系统自动进行挂载。

存储路径设置

KWDB 支持以下存储路径设置方式:

  • 安装时通过修改 deploy.cfg 文件中的 data_root 参数自定义数据路径。
  • 部署完成后,用户也可以通过修改部署生成的 kaiwudb_env 文件、 docker-compose.yml 文件或 kwbase start 命令修改存储路径。

数据重组

数据重组是指按照特定规则对原始时序数据进行清理和整理的过程,主要应用于以下场景:

  • 删除数据清理:执行 DELETE 或 DROP 操作后,清理被标记删除的数据以释放存储空间
  • 过期数据清理:清理通过生命周期管理功能识别出的过期数据
  • 数据整理优化:对不连续的 entity 数据进行重组排序,提高查询效率

数据重组可以优化存储空间利用率,提升数据库查询性能和响应速度,改善整体系统效率。

重组方式

KWDB 提供自动重组和手动重组两种数据重组方式:

自动重组

系统定期自动触发重组任务,以分区(Partition)为基本单位,采用单线程串行方式处理,确保操作的稳定性和数据一致性。具体流程如下:

  1. 任务触发:系统定期自动触发重组任务
  2. 分区遍历:依次扫描各个分区,对每个分区执行重组操作
  3. 数据清理:
    • 清理过期数据
    • 清理被标记删除的数据
  4. 文件重建:生成优化后的新数据文件,替换原有文件
  5. 标记清理:清理相关的删除标记记录,完成重组流程

重组操作与合并操作互斥,同一 entity segment 不会同时执行这两种操作。

手动重组

需要立即释放存储空间或优化查询性能时,可以通过立即重组命令 VACUUM TS DATABASES; 手动触发重组操作。

手动重组特别适用于以下场景:

  • 删除数据或删除库表后释放空间:执行 DELETE 或 DROP 操作后,立即清理已删除数据,快速释放存储空间
  • 批量写入后数据整理:大批量数据写入后,对数据文件进行整理排序,加速后续查询性能

手动重组功能与自动重组功能兼容,互不影响,同时具有以下特点:

  • 对当前分区数据执行重组操作
  • 对不连续的 entity 数据进行重组排序,整理分散的 block 以提高查询效率(无论是否有删除操作)
  • 及时检查并清理已删除表的相关数据
  • 将内存数据持久化到磁盘,并合并 last 文件

重组配置

  • 自动重组:自动数据重组功能默认启用,用户可以通过 ts.auto_vacuum.enabled 实时参数选择是否启用或禁用该功能。有关详细信息,参见集群实时参数
  • 手动重组:用户需要通过执行立即重组命令 VACUUM TS DATABASES; 命令手动触发重组操作。

时序分布式日志存储引擎

时序分布式日志存储引擎(RaftLog Store)是专门针对分布式集群时序数据场景的存储优化,通过减少磁盘 IO 压力和优化写入路径,在机械硬盘环境下显著提升数据写入性能。

该功能适用于分布式集群、大量时序数据写入、机械硬盘存储环境且对写入性能要求较高的应用场景。

启用后,系统会在数据目录的时序引擎目录下自动创建 raftlog 子目录,当前文件达到 512 MB 时自动转换为历史文件,每 30 分钟检查一次合并需求。

功能配置

启用时序分布式日志存储引擎需要在节点启动命令中添加 --use-raft-store 参数。

注意

  • 该参数必须在数据库首次安装启动时指定,默认为关闭状态。
  • 数据库初始化完成后,无法通过修改启动参数切换存储引擎。

启动命令的更多信息和示例,参见kwbase start