# ChaosBench **Repository Path**: RelSys/ChaosBench ## Basic Information - **Project Name**: ChaosBench - **Description**: 分布式数据库系统可靠性测试 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-10 - **Last Updated**: 2025-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 前言 本项目基于[BenchBase项目](https://github.com/cmu-db/benchbase)开发,目的是支持多种故障场景下的分布式数据库可靠性测试。在开发和使用本项目时,可以通过BenchBase项目的文档和示例来部分了解ChaosBench的使用方法。 # 编译 使用maven编译ChaosBench时,需要指定-P参数,来引入面向特定目标数据库的JDBC依赖。 比如,对于达梦数据库,使用以下命令编译: ``` mvn clean package -DskipTests -P dameng ``` 编译完成后,可以在target目录下找到名如chaosbench-dameng.tgz的压缩包,解压后进入,即为完整打包好的项目,包括可执行jar包和相关配置文件。 # 使用命令行运行 在编译得到的压缩包解压后的目录下,可通过形如以下的命令在命令行运行该项目: ``` BENCHBASE_PROFILE=dameng java \ -jar ../chaosbench-dameng/chaosbench.jar \ -b smallbank \ -c /home/fwhdzh/code/ChaosBench/config/dameng/sample_smallbank_config.xml \ --create=true \ --load=true \ --execute=true ``` 目前命令行参数和BenchBase的命令行参数相同,具体可参考BenchBase的ReadMe.md文档: - BENCHBASE_PROFILE:指定使用的数据库,这里是达梦数据库,取值和编译时的-p参数相同。 - b: 指定要运行的Benchmark,这里是smallbank。 - c: 指定配置文件路径,这里是config/dameng/sample_smallbank_config.xml。 - --create: 是否为该Benchmark进行数据库初始化。 - --load:是否使用该Benchmark的数据加载器来加载数据 - --execute:是否执行该Benchmark。 # TODO - [ ] 使用BenchBase替换原有的BenchmarkSQL - [x] 修改前端对应配置文件(2025-03-19) - [x] 替换对应启动脚本(2025-03-19) - [ ] 移植配置修改(2025-03-26) - [ ] 物理机故障注入支持 - [ ] 移植修改故障实例化模块(2025-04-02) - [ ] 故障注入流程合入BenchBase(2025-04-02) - [ ] 设计实现物理机故障注入接口(2025-04-09) - [ ] 基于linux命令实现基础物理机故障注入接口(2025-04-09) - [ ] 指标计算模块 - [ ] 移植指标计算模块(2025-04-16) - [ ] 完善指标方法,明确用户划分逻辑和计算逻辑(2025-04-16) - [ ] 故障编排模块 - [ ] 确定故障编排模块接口和故障配置文件形式(2025-04-23) - [ ] 设计实现故障编排模块(2025-04-23) - [ ] 针对编排后故障实现故障注入和指标计算(2025-04-30)