Skip to main content

Framework for benchmarking AI ecosystem tools against database backends

Project description

AI Ecosystem Benchmark

Generalized framework for benchmarking AI tools that depend on database backends.

Python Package

This repository is also a Python package named ai-ecosystem-benchmark. The package is intentionally minimal for now while the benchmark framework takes shape.

Install and sync the development environment with uv:

uv sync

Run the local checks:

uv run pytest
uv run ruff check .
uv run ruff format --check .
uv run mypy
uv run deptry .

Install pre-commit hooks once per checkout:

uv run pre-commit install

Implementing a Workload

Benchmark workloads should subclass BaseBenchmarkWorkload and implement the required lifecycle hooks:

  • setup(): prepare clients, data, or other state before benchmarks run.
  • between_benchmarks(): reset or pause between benchmark executions.
  • teardown(): clean up resources after benchmarks finish.

Connection strings are optional. If a connection string is omitted, that backend is assumed to be disabled for the benchmark run.

Backend-specific benchmark methods are discovered by name:

  • Aerospike methods start with aerospike
  • Postgres methods start with postgres
  • Redis methods start with redis
from ai_ecosystem_benchmark import BaseBenchmarkWorkload


class MyWorkload(BaseBenchmarkWorkload):
    def __init__(
        self,
        aerospike_connection_string: str | None = None,
        postgres_connection_string: str | None = None,
        redis_connection_string: str | None = None,
    ) -> None:
        super().__init__(
            aerospike_connection_string=aerospike_connection_string,
            postgres_connection_string=postgres_connection_string,
            redis_connection_string=redis_connection_string,
        )

    def setup(self) -> None:
        return None

    def between_benchmarks(self) -> None:
        return None

    def teardown(self) -> None:
        return None

    def aerospike_test_insert(self) -> None:
        ...

    def redis_test_lookup(self) -> None:
        ...

Infrastructure

The first infrastructure target is a GCP Compute Terraform stack that can provision any combination of Redis, Postgres, and Aerospike benchmark clusters. The GitHub Actions workflow in .github/workflows/terraform.yml runs Terraform manually through workflow_dispatch and prints non-sensitive endpoint details after apply.

See infra/terraform/gcp-compute/README.md for setup details.

License

This project is licensed under the Apache License 2.0. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ai_ecosystem_benchmark-0.0.6.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_ecosystem_benchmark-0.0.6-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file ai_ecosystem_benchmark-0.0.6.tar.gz.

File metadata

  • Download URL: ai_ecosystem_benchmark-0.0.6.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ai_ecosystem_benchmark-0.0.6.tar.gz
Algorithm Hash digest
SHA256 1b68bbbea583037aa63f4c057985c1da0f64fe2ebc1acf1144dc45946e69163b
MD5 6d1dac5ecde8d170a5d2f6cd932b04f6
BLAKE2b-256 57ce294919f8f30438be5c12e69c7aae4cfbcd0de4b629717fdd00da04981cfb

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_ecosystem_benchmark-0.0.6.tar.gz:

Publisher: release.yml on aerospike-community/ai-ecosystem-benchmark

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ai_ecosystem_benchmark-0.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for ai_ecosystem_benchmark-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d4629ae995cfcd58c7764fdea586a2fd3160e45edaccd6ae99063d4a11414c76
MD5 7c0eaee70137478744af2dd363870fab
BLAKE2b-256 8169eaf0c63e1040e8d00f90c52a5944d026c1a6daf9ba5ad8129ff27b53bf6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_ecosystem_benchmark-0.0.6-py3-none-any.whl:

Publisher: release.yml on aerospike-community/ai-ecosystem-benchmark

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page