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.5.tar.gz (22.2 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.5-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ai_ecosystem_benchmark-0.0.5.tar.gz
  • Upload date:
  • Size: 22.2 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.5.tar.gz
Algorithm Hash digest
SHA256 d4baa827491535213f13ac5f63e53481343930e5e8af9fd7afe7cf113c77d7bc
MD5 ebedd2eaa1795d2a70d805c1a8530468
BLAKE2b-256 8906dcb6a30c7883471abf7e31ed8af4ee818db41d6555645598fe148e2d0bc9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_ecosystem_benchmark-0.0.5.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.5-py3-none-any.whl.

File metadata

File hashes

Hashes for ai_ecosystem_benchmark-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 94bea45a87aee2d6dd8a422144aba027ad7d0baa8a4b434c3547ba95118ea62c
MD5 6c8f012c03e4d7ffd875f22c8e8b053e
BLAKE2b-256 0a14ad753dd774ab4ac2fcf5e3e56a12d2e16c12bfacde4598f230939a0e2c00

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_ecosystem_benchmark-0.0.5-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