存储管理
存储路径设置
默认存储路径和系统要求
下表列出了 KWDB 各类文件的默认存储路径、文件系统和配置信息。
文件 | 默认路径 | 大小 | 文件系统 | 配置参数 |
|---|---|---|---|---|
| 数据文件 | /var/lib/kaiwudb | 取决于存储数据的大小 | - 建议使用 ext4 文件系统。 - 如果存储大于 16 TB 的数据,建议使用 XFS 系统。 | - 部署配置文件中的 data_root 参数- --store 启动参数 |
| 日志 | /var/lib/kaiwudb/logs | 默认 1G,可配置 | 建议使用 ext4 文件系统。 | --log-dir 启动参数 |
| 证书 | /etc/kaiwudb/certs | N/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 操作后,清理被标记删除的数据以释放存储空间
- 过期数据清理:清理通过生命周期管理功能识别出的过期数据
数据重组可以优化存储空间利用率,提升数据库查询性能和响应速度,改善整体系统效率。
重组流程
数据重组以分区(Partition)为基本单位,系统采用单线程串行方式处理重组任务,确保操作的稳定性和数据一致性。
具体流程如下:
- 任务触发:系统定期自动触发重组任务
- 分区遍历:依次扫描各个分区,对每个分区执行重组操作
- 数据清理:
- 清理过期数据
- 清理被标记删除的数据
- 文件重建:生成优化后的新数据文件,替换原有文件
- 标记清理:清理相关的删除标记记录,完成重组流程
重组操作与合并操作互斥,同一 entity segment 不会同时执行这两种操作。
重组配置
在 KWDB 中,数据重组功能默认启用,用户可以通过 ts.auto_vacuum.enabled 实时参数选择是否启用或禁用该功能。有关详细信息,参见集群实时参数。
时序分布式日志存储引擎
时序分布式日志存储引擎(RaftLog Store)是专门针对分布式集群时序数据场景的存储优化,通过减少磁盘 IO 压力和优化写入路径,在机械硬盘环境下显著提升数据写入性能。
该功能适用于分布式集群、大量时序数据写入、机械硬盘存储环境且对写入性能要求较高的应用场景。
启用后,系统会在数据目录的时序引擎目录下自动创建 raftlog 子目录,当前文件达到 512 MB 时自动转换为历史文件,每 30 分钟检查一次合并需求。
功能配置
启用时序分布式日志存储引擎需要在节点启动命令中添加 --use-raft-store 参数。
注意
- 该参数必须在数据库首次安装启动时指定,默认为关闭状态。
- 数据库初始化完成后,无法通过修改启动参数切换存储引擎。
启动命令的更多信息和示例,参见kwbase start。