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.3.tar.gz (24.4 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.3-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ai_ecosystem_benchmark-0.0.3.tar.gz
  • Upload date:
  • Size: 24.4 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.3.tar.gz
Algorithm Hash digest
SHA256 c9b6037c5154ef3575a04e859cc9b5793518023dc447bc6dd21d310e0df56d58
MD5 22f919152e8fb1e627e96877dc5fd93c
BLAKE2b-256 7131fdc80afe81199c8fc25cdfc004ef460682a90d998479ee0f8c0c6e33c451

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ai_ecosystem_benchmark-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a848452de0a45f3075934187a2e10b72dc06a6ef835685da55afe661d6ad1a68
MD5 fe674c76b78fb4cca725cf643b1370e1
BLAKE2b-256 a29d521a4b57ce7793160539d43c6cb91a39f50dab2f4fbaa7c44ab99bca9773

See more details on using hashes here.

Provenance

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