Skip to content

Engine: per-graph memory budget and per-query memory limit, refuse with resource_exhausted (EN-9) #262

Closed

Description

@jsam

Goal. A per-graph memory budget and a per-query memory limit: a query or write that would exceed them is refused with resource_exhausted, instead of growing the process.

Why. An inputlayer-server grew to about 115 GiB on a development host and took the machine down. In production one query must never take down its process or its neighbours, and the process must stay inside its container limit.

Done when. Budgets are configurable per graph and per query; evaluation checks them and refuses cleanly; the server stays under its configured limit in a stress test with runaway joins; metrics expose usage per graph.

Plan reference: EN-9. Production safety, priority. Part of the Engine production readiness milestone (the current focus; tracker #199). Rule for every engine PR: millisecond query and update latency must not regress, and the perf gate runs before the PR opens.

Activity

  1. added
    backendBackend/server related
    P0Immediate correctness, data-safety or live-credential blocker
    on Oct 4, 2026
  2. jsam commented on Oct 4, 2026

    @jsam
    ContributorAuthor

    Done in #275 (merged, CI green): per-query memory limit enforced per query across workers, plus a process-wide budget derived from the container limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0Immediate correctness, data-safety or live-credential blockerbackendBackend/server related

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions