basho/basho_bench
36.6
Weak · 23 September 2026
5.9k
lines of production code
Erlang
with R
5
measurements over time
What this system is
Basho Bench is an Erlang-based benchmarking tool designed to conduct performance and stress tests on distributed storage systems and databases. It provides a configurable framework for generating load across various backends, such as Riak, Cassandra, and Bitcask, using multiple communication protocols. The system supports distributed workloads and includes built-in utilities for visualizing throughput and latency metrics through R scripts, gnuplot, and an interactive web interface.
Features
Initial packaging of Basho Bench release
This change introduces the initial release structure for Basho Bench, enabling users to build and run the benchmarking tool as a standalone Erlang application. It includes the reltool configuration defining the application dependencies (such as lager, folsom, and riakc), a shell script to launch the benchmark runner, an escript for handling release upgrades, and configuration files for the Erlang VM and platform-specific paths.
rel · high confidence
Initial release of basho\_bench benchmarking suite
The basho\_bench application is introduced as a new Erlang-based benchmarking suite. It provides a configurable framework for load generation, supporting multiple storage backends via dedicated drivers including HTTP (raw and standard), Riak PBC, Bitcask, Dets, ETS, Eleveldb, Riak CS, and a cluster distribution driver. The suite allows users to define custom key and value generators, configure operations (get, put, delete, merge, search, etc.), and manage distributed workloads across Erlang nodes.
src · high confidence
Initial release of basho\_bench benchmarking tool
Introduces basho\_bench, a benchmarking tool for conducting performance and stress tests on systems like Riak, producing throughput and latency graphs. The release includes the core Erlang application, a Makefile-based build system, an Apache 2.0 license, an FAQ, and Travis CI configuration for Erlang R16 and R17. It requires Erlang/OTP 20 or later and bundles dependencies such as folsom, lager, ibrowse, riakc, mochiweb, getopt, bitcask, and eleveldb.
(repo-wide) · high confidence
New benchmark result visualization and comparison tools
Added a suite of new scripts and a web interface for analyzing and comparing benchmark results. The \priv/common.r\ and \priv/compare.r\ R scripts now provide a programmatic way to load benchmark data and generate comparative plots of throughput and latency using ggplot2. Additionally, \priv/gp\_latencies.sh\ and \priv/gp\_throughput.sh\ offer command-line gnuplot-based graphing for latency and throughput metrics, while the \priv/results-browser\ directory introduces a Python-based web server and HTML/JS frontend that renders interactive charts via Google Charts and allows uploading generated reports.
priv · high confidence
New example configurations for Basho Bench drivers and backends
Added a comprehensive set of example configuration files for the Basho Bench load-testing framework, covering drivers for Riak (PB, HTTP, Java, NHS, MapReduce), Cassandra (CQL, Casbench), Bitcask, Eleveldb, Innostore, Hibari, Carbon, and ETS, along with a sample for Riak CS. These configs provide ready-to-use templates for benchmarking various storage backends and protocols, including specific setups for 2i queries, counters, distributed testing, and text indexing.
examples · high confidence
Removals
Removal of riak\_bench application definition
The application resource file for the Riak Benchmarking Suite (riak\_bench.app) has been deleted from the ebin directory. This change removes the explicit Erlang application metadata, including the module definitions for riak\_bench\_app and riak\_bench\_sup, the registered supervisor process, and the dependency declarations for kernel, stdlib, and sasl.
ebin · high confidence
Behavioural changes
Logging migrated to Lager and failure behavior updated
The system now uses the Lager library for all logging operations (debug, info, warning, error) instead of the previous implementation. Additionally, the failure message macro has been updated to explicitly stop or kill the application upon failure, and new configuration macros for value generator blob files and source sizes have been introduced.
include · high confidence
Test coverage
Added placeholder file to tests directory
A new .keepme file has been added to the tests directory to ensure the folder is tracked by version control.
tests · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 40 → 37 (-3.5)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 95 → 88 (-6.2)
- Architecture 100 → 99 (-0.6)
- Maturity 24 → 29 (+4.4)
- Readiness 26 → 39 (+13.7)
- Security 95 → 63 (-31.7)
- Event Sourcing 63 → 58 (-4.7)
- Accessibility 31 (new)
Resolved (10)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Largest orphaned file (src/basho_bench_driver_cs2.erl)
- No automated tests
- No exposed public API
- No tests found
- Test reliability not included
- TooManyMethods: basho_bench_driver_cs (src/basho_bench_driver_cs.erl)
- TooManyMethods: basho_bench_driver_cs2 (src/basho_bench_driver_cs2.erl)
- complexity unreadable for .erl, .hrl, .py — churn × complexity hotspots could not be measured
- dormant codebase — no living knowledge left to concentrate
New (67)
- Coverage not measured — no coverage collector is wired up
- Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
- Documentation: no usage examples (README.org)
- Duplicated block (10 lines × 2) (src/basho_bench_driver_nhs.erl)
- Duplicated block (10 lines × 2) (src/basho_bench_driver_nhs.erl)
- Duplicated block (12 lines × 4) (src/basho_bench_driver_nhs.erl)
- Duplicated block (13 lines × 2) (src/basho_bench_driver_http.erl)
- Duplicated block (13 lines × 2) (src/basho_bench_driver_http.erl)
- Duplicated block (13 lines × 3) (src/basho_bench_driver_cs.erl)
- Duplicated block (14 lines × 2) (src/basho_bench_driver_nhs.erl)
- Duplicated block (17 lines × 2) (src/basho_bench_driver_nhs.erl)
- Duplicated block (36 lines × 2) (src/basho_bench_driver_nhs.erl)
- Duplicated block (5 lines × 2) (src/basho_bench_driver_http.erl)
- Duplicated block (5 lines × 2) (src/basho_bench_driver_http_raw.erl)
- Duplicated block (5 lines × 2) (src/basho_bench_driver_nhs.erl)
- Duplicated block (5 lines × 2) (src/basho_bench_valgen.erl)
- Duplicated block (5 lines × 3) (src/basho_bench_driver_cs.erl)
- Duplicated block (5 lines × 4) (src/basho_bench_driver_riakc_pb.erl)
- Duplicated block (6 lines × 2) (src/basho_bench_driver_nhs.erl)
- Duplicated block (6 lines × 2) (src/basho_bench_driver_nhs.erl)
- …and 47 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
basho/basho_bench was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit b80056f78248e1dde5c42bf7ec060b095be2ccda — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.