Skip to content

feat(stargate): add configurable Pulsar input TPS weights - #1002

Draft
barrygreengus wants to merge 3 commits into
mainfrom
codex/linf-240-windowed-tps-weight
Draft

feat(stargate): add configurable Pulsar input TPS weights#1002
barrygreengus wants to merge 3 commits into
mainfrom
codex/linf-240-windowed-tps-weight

Conversation

@barrygreengus

@barrygreengus barrygreengus commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Why

Pulsar rendezvous weighting needs to support either the current mean input TPS or the maximum input TPS observed for a backend generation. Benchmark coverage must exercise measured throughput instead of forcing Pylon to report configured performance values.

What changed

  • Record and publish the generation lifetime maximum input TPS from Pylon through Stargate.
  • Let Pulsar and Pulsar wait-and-widen select mean or maximum input TPS for rendezvous weighting. Mean remains the default.
  • Emit MockDynamo input counters when modeled prefill completes, before TTFT and response-stream polling.
  • Use backend prefill TPS as the single benchmark performance setting and remove the hidden benchmark pinning path.
  • Keep max-mode aggregation complete-only. A cluster maximum is present only when every backend supplies a valid value.
  • Remove the redundant pin state, benchmark registration DTO, ranking wrapper, config getter, and one-call validation helper.

Customer Release Notes

Pulsar routing can use either current mean or generation maximum input throughput as its rendezvous weight.

Plan Summary

Not applicable.

Usage

Set rendezvous_weight to max-input-tps on a Pulsar or Pulsar wait-and-widen algorithm configuration. Omit it to keep last-mean-input-tps.

Testing

  • cargo fmt --all -- --check
  • cargo test -p mock-dynamo -p pylon-lib -p pylon -p stargate -p stargate-bench
  • cargo clippy --workspace --all-targets -- -D warnings
  • Bazel tests for pylon-lib, pylon, and stargate
  • Bazel builds for mock-dynamo and stargate-bench

QA is not required beyond automated coverage.

Notes

The maximum persists for one model generation and resets with generation replacement. It has no time window and max mode does not fall back to mean when maximum data is incomplete.

References

Closes #1001

Related Pull Requests

None.

Dependencies

None. No license or NOTICE changes.

Signed-off-by: Barry Greengus <bgreengus@nvidia.com>
@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: bf35030c-05bc-46da-9160-b7dba2f959c0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

🛡️ CodeQL Analysis

🚨 Found 2 issue(s)

Severity Breakdown:

  • 🔴 Errors: 0
  • 🟡 Warnings: 0
  • 🔵 Notes: 0
📋 Top Issues

🔗 View full details in Security tab

🕐 Last updated: 2026-08-19 15:47:50 UTC | Commit: f00fe01

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support generation peak throughput for Pulsar capacity weighting

1 participant