Skip to content

v3.0.1

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Aug 16:46
· 4 commits to main since this release
ecb5efe

Restate Operator v3.0.1 Release Notes

See the v3.0.0 release notes for changes prior to this release.

Reduced RestateDeployment introspection query load

The RestateDeployment controller no longer issues a Restate introspection query (POST /query over sys_invocation_status) on every reconcile, and no longer reconciles on every HorizontalPodAutoscaler status update.

  • Owned HPAs are watched for spec changes only. The Kubernetes HPA controller re-writes an HPA's status on a ~15s timer; with per-version autoscaling that is one such write per version (including every draining one), and each previously woke the owning RestateDeployment. The watch now filters to generation (spec) changes, so those heartbeats no longer trigger reconciles. The operator's HPA cache still sees every update.
  • The deployment-usage query runs only when needed. The query answers whether this version is the one Restate routes new invocations to (registration) and whether older versions have drained (cleanup). In the common case — this version already latest, with no older version to drain — the operator reads "already latest" from the cheaper GET /services and skips the invocation-status query entirely. Registration, promotion, rollback, foreign-takeover, and drain paths run the full query exactly as before.

Why this matters

With per-version autoscaling enabled, a deployment carrying several draining versions produced a steady stream of reconciles — roughly one HPA heartbeat every 15 seconds per version — each issuing an invocation-status query. Across many deployments sharing one Restate admin endpoint this multiplied into sustained query load that could overwhelm Restate's query engine, surfacing as 500 Internal Server Error ("No such scanner") responses from /query.

Impact

  • No configuration change, and no change to registration, rollback, or drain behaviour.
  • Restate admin/query load from the operator drops sharply in the common case: introspection queries are issued during rollouts and drains, not continuously.
  • HorizontalPodAutoscaler status changes no longer trigger RestateDeployment reconciles; spec changes and (re)creation still do.

Related: #185.