Skip to content

storm-orm/storm-benchmarks

Repository files navigation

storm-benchmarks

Reproducible benchmark suite comparing Storm against plain JDBC, Hibernate ORM, jOOQ, Exposed, and Jimmer on realistic PostgreSQL workloads. JMH with Testcontainers; identical schema, data, driver, and connection pool for every library.

See METHODOLOGY.md for what is measured, the fairness rules, and how to interpret results.

Workloads

Workload Shape
singleRowById One row by primary key, foreign key left as a reference
joinWithMapping 100 rows over a 3-table join, object graph materialized
projection Same join, 3 columns into a flat row type
batchInsert 100 rows in a transaction, generated keys returned
objectGraph 50 parents with their child collections (N+1-prone shape)

Running

Requirements: JDK 21, Docker.

scripts/run.sh            # full suite (~30 min), merged results in results/
scripts/run.sh --quick    # smoke run (~5 min), numbers are indicative only
./gradlew :bench-storm:jmh    # one library, self-contained

Each bench-<library> module is a standalone JMH project; bench-common holds the schema, the deterministic dataset, and the container lifecycle. Results land in results/combined.json and results/summary.md.

Versions

Dependency versions are pinned in gradle/libs.versions.toml. Until Storm 1.13.0 reaches Maven Central, Storm artifacts resolve from mavenLocal().

Results

Per-release results are produced by the benchmark GitHub Actions workflow and published with the release notes, including runner type and exact versions. No numbers are committed to this repository; run the suite to produce your own.

Contributing

Improvements to any implementation are welcome, in particular from users of the compared libraries: if an implementation is not what the library's documentation recommends, that is a bug. Please include a pointer to the documentation in question.

License

Apache License 2.0, see LICENSE.txt.

About

Reproducible JMH benchmarks: Storm vs JDBC, Hibernate, jOOQ, Exposed and Jimmer on PostgreSQL

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors