dbchaos  by adaptive-scale

CLI tool to stress-test databases with pre-defined queries

created 1 year ago
441 stars

Top 68.9% on sourcepulse

GitHubView on GitHub
Project Summary

DBChaos is a command-line tool designed to stress-test databases by executing pre-defined queries in parallel and generating synthetic data. It targets database administrators, developers, and QA engineers looking to validate query performance, identify bottlenecks, and create realistic or large-scale datasets for testing.

How It Works

DBChaos supports two primary modes: Synthetic Event Generation and Synthetic Data Generation. For stress testing, it allows users to define single queries or complex scenarios with varying rates and timeouts, running them in parallel against supported databases (Postgres, MySQL, SQL Server, MongoDB). For data generation, it offers static methods for creating large schemas and data randomly, and GPT-based methods for generating hyper-realistic data using OpenAI's API.

Quick Start & Requirements

  • Install via Go: go install github.com/adaptive-scale/dbchaos@v0.4.4
  • Supported Databases: Postgres, MySQL, SQL Server, MongoDB (limited synthetic data generation for MongoDB).
  • OpenAI API key required for GPT-based data generation.
  • Configuration via config.yaml or scenario.yaml files.
  • Commands: dbchaos runTest, dbchaos runScenario, dbchaos generate, dbchaos generateWithLLM.

Highlighted Details

  • Capable of running thousands of parallel queries for extended durations.
  • Static data generation can create "unrealistic sized databases and schemas."
  • GPT-based generation allows for "hyper-realistic databases and data."
  • Supports defining complex load patterns through scenarios.

Maintenance & Community

  • Developed by adaptive-scale.
  • No explicit community links (Discord, Slack) or roadmap mentioned in the README.

Licensing & Compatibility

  • License not specified in the README.
  • Compatibility for commercial use or closed-source linking is not detailed.

Limitations & Caveats

Synthetic data generation for MongoDB is not supported. The README does not specify the license, which may impact commercial adoption. Community engagement channels are not readily apparent.

Health Check
Last commit

1 year ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
3 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.