Apache Solr Orbit macrobenchmarking framework

Clone this repo:
  1. e34a7ea Require SolrCloud mode: enforce at runtime and document clearly (#43) by Jan Høydahl · 6 days ago main
  2. 7596a6d Replace pylint with ruff (#44) by Jan Høydahl · 7 days ago
  3. 06b726c Rename osbenchmark/ → solrorbit/, remove other unused folders (#42) by Jan Høydahl · 7 days ago
  4. afd7524 Fix/test procedure clarification (#40) by Jan Høydahl · 7 days ago
  5. 4a2985e Fix/dont mention opensearch too much in docs (#41) by Jan Høydahl · 7 days ago

Apache Solr Orbit

Apache Solr Orbit is a macrobenchmarking framework for Apache Solr.

It is a fork/port of Rally/Opensearch Benchmark, ported to work with Apache Solr.

Documentation

Full documentation is available in docs/ folder of this repository. Build the docs with jekyll. A public documentation site is available at https://apache.github.io/solr-orbit/.

This is a Work in Progress

What is Apache Solr Orbit?

If you are looking to performance test Apache Solr, this tool can help you with:

  • Running performance benchmarks and recording results
  • Setting up and tearing down Solr clusters for benchmarking (local distribution, build-from-source or Docker, including nightly builds)
  • Managing benchmark workloads (collections, configsets, search operations)
  • Run same workload against multiple Solr versions or multiple cluster-configurations (heap size, GC settings, etc.)
  • Collecting JVM, node, and collection metrics via telemetry devices
  • Output results for each run in JSON format, suitable for analysis and dashboarding
  • Assist in converting existing OpenSearch Benchmark workloads to Solr format

Quick Start

Install

NOTE: We do not offer the tool as a python package yet

pip install -e .

Run a benchmark against a Solr version in Docker

solr-orbit run \
  --pipeline=docker \
  --distribution-version=9.10.1 \
  --workload=nyc_taxis \
  --test-mode

Note: Defaults to cloud mode (SolrCloud with embedded ZooKeeper).

Provision Solr locally, then benchmark

solr-orbit run \
  --pipeline=from-distribution \
  --distribution-version=9.10.1 \
  --workload=nyc_taxis \
  --test-mode

Note: Always uses cloud mode (SolrCloud with embedded ZooKeeper).

Provision Solr from source, then benchmark

solr-orbit run \
  --pipeline=from-sources \
  --distribution-version=9.10.1 \
  --workload=nyc_taxis \
  --test-mode

Workload format

See Workload Reference in the documentation for the full workload.json format, including collections, corpora, operations, and test-procedures.

Pre-built workloads are available at https://github.com/apache/solr-orbit-workloads. Feel free to contribute your own with a pull request!

Result output

Each test-run outputs a test_run.json, a complete canonical record of the benchmark run including:

  • Benchmark metadata (version, environment, pipeline, user tags)
  • Workload and test procedure information
  • Cluster configuration specification (heap size, GC settings, all variables)
  • Detailed operation metrics (throughput, latency, error rates)
  • System metrics (GC times, merge times, segment counts, etc.)

This output can be used for further analysis, comparison and dashboarding.

License

Apache License, Version 2.0. See LICENSE for the full text.

This product includes software developed by the OpenSearch Contributors, and prior to that by Elasticsearch (Rally). Full attribution is in NOTICE.