Skip to content

Read-endpoint SLAs under ingestion load #870

Open

Description

@marwen-abid

TL;DR

Read endpoints must hold their latency SLAs while the node is ingesting at target load — not just against a quiet store. Today the ingest benchmarks (#771) and query benchmarks (#856) run separately; this issue combines them into one scenario.

Scope

Done when

For each phase in scope, a pass/fail statement per read endpoint under ingestion load, reproducible as a campaign (ideally runnable through #868).

Activity

  1. converted this from a draft issue on Jul 17, 2026
  2. self-assigned this
    on Jul 17, 2026
  3. tamirms commented on Oct 26, 2026

    @tamirms
    Contributor

    Proposal to widen this benchmark's scope for Phase 3: run paced ingestion, getTransaction load and the chunk-boundary jobs together on one node.

    Every 10,000 ledgers, two jobs start beside hot ingestion:

    • the freeze, which turns the finished chunk into cold files;
    • the rebuild of the tx-hash index, which getTransaction uses to find the ledger that holds a transaction.

    The draft ingest stack (#1139 to #1146) adds bench modes (#1143) that measure ingest p99 beside one of these jobs at a time, without reads. Two cases are still not measured:

    Suggested scope:

    • sac-9000, ledgers paced at 900 ms, 1,000 getTransaction requests per second, on a c6id.8xlarge with local NVMe.
    • The run crosses a chunk boundary, by starting near one or running past 10,000 ledgers, so the freeze and then the rebuild run during it.
    • Record ingest p99 (target 105 ms) and getTransaction p99 (target 10 ms inside RPC) for the whole run and for each job's window.
    • Check that both jobs finish before the next boundary, 2.5 hours at 900 ms per ledger.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions