Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
f00fe01
feat(stargate): add configurable Pulsar input TPS weights
barrygreengus Aug 18, 2026
5944286
refactor(pylon): use generation input TPS maximum
barrygreengus Aug 20, 2026
0205311
fix(pylon): measure benchmark input throughput
barrygreengus Aug 20, 2026
c076c9d
fix(stargate): default Pulsar to generation peak input throughput
barrygreengus Sep 30, 2026
736ef9d
test(stargate): verify peak throughput survives registration relays
barrygreengus Sep 30, 2026
8a981ae
fix(stargate): exclude unavailable peak capacity from input admission
barrygreengus Sep 30, 2026
98a6ed9
chore(stargate): merge main into Pulsar peak input TPS branch
barrygreengus Oct 5, 2026
dae5545
feat(stargate): make pulsar-wait-and-widen wait for affinity and wide…
barrygreengus Oct 5, 2026
cf60f15
Merge remote-tracking branch 'origin/codex/linf-240-windowed-tps-weig…
barrygreengus Oct 6, 2026
5889dcd
Merge remote-tracking branch 'origin/main' into codex/linf-240-window…
barrygreengus Oct 6, 2026
5b73709
Merge branch 'codex/linf-240-windowed-tps-weight' into claude/pulsar-…
barrygreengus Oct 6, 2026
ad78e20
refactor(stargate): keep the Pulsar rendezvous weight in the ranking …
barrygreengus Oct 6, 2026
e1d212a
test(stargate-bench): drop assertions for a removed Pylon flag
barrygreengus Oct 6, 2026
6cd45ee
docs(stargate): explain where the Pulsar rendezvous weight is set
barrygreengus Oct 6, 2026
9085c08
refactor(stargate): keep Pulsar wait-and-widen knobs out of the share…
barrygreengus Oct 6, 2026
96faa8d
docs(stargate): align Pulsar wait-and-widen fallback docs with the code
barrygreengus Oct 6, 2026
f40dc3d
Merge remote-tracking branch 'origin/codex/linf-240-windowed-tps-weig…
barrygreengus Oct 6, 2026
45dafa1
test(stargate): pin Pulsar weight tests to the field under test
barrygreengus Oct 6, 2026
777485b
Merge remote-tracking branch 'origin/codex/linf-240-windowed-tps-weig…
barrygreengus Oct 6, 2026
b525f9c
test(stargate): pin the Pulsar wait-and-widen widen interval default
barrygreengus Oct 6, 2026
9441b56
Merge branch 'main' into codex/linf-240-windowed-tps-weight
barrygreengus Oct 7, 2026
e1f772c
Merge branch 'codex/linf-240-windowed-tps-weight' into claude/pulsar-…
barrygreengus Oct 7, 2026
caa8ac7
Merge branch 'codex/linf-240-windowed-tps-weight' into claude/pulsar-…
barrygreengus Oct 7, 2026
81b63d0
test(stargate): report maximum input TPS in the routing expression test
barrygreengus Oct 7, 2026
002ee39
refactor(stargate): tidy Pulsar wait-and-widen defaults and docs
barrygreengus Oct 7, 2026
6851813
fix(pylon): derive generation max input TPS from the published mean
barrygreengus Oct 7, 2026
19641e9
docs(stargate): document shared-cluster weight under maximum weighting
barrygreengus Oct 7, 2026
913b43a
docs(stargate): cover seeded shares and trim the README rollout note
barrygreengus Oct 7, 2026
5405d87
fix(stargate): accept Pulsar wait-and-widen fields in routing express…
barrygreengus Oct 7, 2026
ad00a1e
test(stargate): make Pulsar wait-and-widen tests exact and deterministic
barrygreengus Oct 7, 2026
7bcdb92
test(mock-dynamo): enable tokio test-util for paused-time tests
barrygreengus Oct 7, 2026
c381a3a
docs(stargate): tighten maximum input TPS wording and rollout guidance
barrygreengus Oct 7, 2026
3155d7f
docs(stargate): clarify Pulsar wait-and-widen affinity field scope
barrygreengus Oct 7, 2026
6f4942f
Merge branch 'codex/linf-240-windowed-tps-weight' into claude/pulsar-…
barrygreengus Oct 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion MODULE.bazel.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions src/libraries/rust/stargate/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ set. Every Pylon must also select exactly one local stats initialization source:
[Pylon onboarding](docs/operations/pylon-onboarding.md) for the complete
lifecycle and calibration contract.

Pulsar weights clusters by generation maximum input TPS by default. Upgrade
Pylons and registration relays before Stargates; see
[load-balancer configuration](docs/load-balancer-configuration.md#pulsar) for
the rollout order and the mean-weighting option.

Pylon gates startup on an upstream health probe. It tries `/health` and then
`/v1/health/ready`, reuses whichever path answers first, and forwards Stargate's
`/health` RTT probe to that same path, so engines that serve only the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 4200
decode_tokens_per_s: 90
registration:
last_mean_input_tps: 120
profiles:
- count: 2
profile:
Expand All @@ -55,8 +53,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 7000
decode_tokens_per_s: 140
registration:
last_mean_input_tps: 220
- count: 4
profile:
name: balanced
Expand All @@ -69,8 +65,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 4200
decode_tokens_per_s: 90
registration:
last_mean_input_tps: 120

degradation:
actions:
Expand Down
8 changes: 0 additions & 8 deletions src/libraries/rust/stargate/benches/bursty-8-backends.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 4200
decode_tokens_per_s: 90
registration:
last_mean_input_tps: 120
profiles:
- count: 2
profile:
Expand All @@ -55,8 +53,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 7200
decode_tokens_per_s: 150
registration:
last_mean_input_tps: 220
- count: 4
profile:
name: balanced
Expand All @@ -69,8 +65,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 4200
decode_tokens_per_s: 90
registration:
last_mean_input_tps: 120
- count: 2
profile:
name: constrained
Expand All @@ -83,8 +77,6 @@ backends:
decode_jitter_ms: 10
prefill_tokens_per_s: 2200
decode_tokens_per_s: 50
registration:
last_mean_input_tps: 60

traffic_pattern:
kind: bursty
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 3500
decode_tokens_per_s: 85
registration:
last_mean_input_tps: 100

traffic_pattern:
kind: zipf_hotset
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@ backends:
decode_jitter_ms: 3
prefill_tokens_per_s: 4000
decode_tokens_per_s: 90
registration:
last_mean_input_tps: 120
profiles:
- count: 2
profile:
Expand All @@ -55,8 +53,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 7000
decode_tokens_per_s: 140
registration:
last_mean_input_tps: 220
- count: 4
profile:
name: balanced
Expand All @@ -69,8 +65,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 4000
decode_tokens_per_s: 90
registration:
last_mean_input_tps: 120
- count: 2
profile:
name: slow
Expand All @@ -83,8 +77,6 @@ backends:
decode_jitter_ms: 8
prefill_tokens_per_s: 2200
decode_tokens_per_s: 55
registration:
last_mean_input_tps: 70

traffic_pattern:
kind: zipf_hotset
Expand Down
8 changes: 0 additions & 8 deletions src/libraries/rust/stargate/benches/hotset-8-backends.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@ backends:
decode_jitter_ms: 3
prefill_tokens_per_s: 4000
decode_tokens_per_s: 90
registration:
last_mean_input_tps: 120
profiles:
- count: 2
profile:
Expand All @@ -55,8 +53,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 7000
decode_tokens_per_s: 140
registration:
last_mean_input_tps: 220
- count: 4
profile:
name: balanced
Expand All @@ -69,8 +65,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 4000
decode_tokens_per_s: 90
registration:
last_mean_input_tps: 120
- count: 2
profile:
name: slow
Expand All @@ -83,8 +77,6 @@ backends:
decode_jitter_ms: 8
prefill_tokens_per_s: 2200
decode_tokens_per_s: 55
registration:
last_mean_input_tps: 70

traffic_pattern:
kind: zipf_hotset
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ backends:
decode_jitter_ms: 3
prefill_tokens_per_s: 7000
decode_tokens_per_s: 170
registration:
last_mean_input_tps: 160
profiles:
- count: 2
profile:
Expand All @@ -57,8 +55,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 12000
decode_tokens_per_s: 260
registration:
last_mean_input_tps: 280
- count: 4
profile:
name: balanced-cluster
Expand All @@ -71,8 +67,6 @@ backends:
decode_jitter_ms: 3
prefill_tokens_per_s: 7000
decode_tokens_per_s: 170
registration:
last_mean_input_tps: 160
- count: 2
profile:
name: constrained-cluster
Expand All @@ -85,8 +79,6 @@ backends:
decode_jitter_ms: 7
prefill_tokens_per_s: 3400
decode_tokens_per_s: 85
registration:
last_mean_input_tps: 80

traffic_pattern:
kind: bursty
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ backends:
decode_jitter_ms: 3
prefill_tokens_per_s: 8200
decode_tokens_per_s: 190
registration:
last_mean_input_tps: 185
profiles:
- count: 4
profile:
Expand All @@ -57,8 +55,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 14000
decode_tokens_per_s: 285
registration:
last_mean_input_tps: 310
- count: 8
profile:
name: balanced-cluster
Expand All @@ -71,8 +67,6 @@ backends:
decode_jitter_ms: 3
prefill_tokens_per_s: 8200
decode_tokens_per_s: 190
registration:
last_mean_input_tps: 185
- count: 4
profile:
name: constrained-cluster
Expand All @@ -85,8 +79,6 @@ backends:
decode_jitter_ms: 6
prefill_tokens_per_s: 4000
decode_tokens_per_s: 100
registration:
last_mean_input_tps: 90

traffic_pattern:
kind: zipf_hotset
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 32768
decode_tokens_per_s: 220
registration:
last_mean_input_tps: 32768
profiles:
- count: 2
profile:
Expand All @@ -57,8 +55,6 @@ backends:
decode_jitter_ms: 1
prefill_tokens_per_s: 65536
decode_tokens_per_s: 320
registration:
last_mean_input_tps: 65536
- count: 4
profile:
name: balanced-prefix-cluster
Expand All @@ -71,8 +67,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 32768
decode_tokens_per_s: 220
registration:
last_mean_input_tps: 32768
- count: 2
profile:
name: constrained-prefix-cluster
Expand All @@ -85,8 +79,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 16384
decode_tokens_per_s: 120
registration:
last_mean_input_tps: 16384

traffic_pattern:
kind: prefix_reuse
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 32768
decode_tokens_per_s: 220
registration:
last_mean_input_tps: 32768
profiles:
- count: 2
profile:
Expand All @@ -57,8 +55,6 @@ backends:
decode_jitter_ms: 1
prefill_tokens_per_s: 65536
decode_tokens_per_s: 320
registration:
last_mean_input_tps: 65536
- count: 4
profile:
name: balanced-prefix-cluster
Expand All @@ -71,8 +67,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 32768
decode_tokens_per_s: 220
registration:
last_mean_input_tps: 32768
- count: 2
profile:
name: constrained-prefix-cluster
Expand All @@ -85,8 +79,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 16384
decode_tokens_per_s: 120
registration:
last_mean_input_tps: 16384

traffic_pattern:
kind: prefix_reuse
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ backends:
decode_jitter_ms: 1
prefill_tokens_per_s: 32768
decode_tokens_per_s: 512
registration:
last_mean_input_tps: 32768

traffic_pattern:
kind: prefix_reuse
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 9000
decode_tokens_per_s: 220
registration:
last_mean_input_tps: 200

traffic_pattern:
kind: uniform
Expand Down
8 changes: 0 additions & 8 deletions src/libraries/rust/stargate/benches/mixed-size-pulsar.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 4000
decode_tokens_per_s: 90
registration:
last_mean_input_tps: 120
profiles:
- count: 2
profile:
Expand All @@ -55,8 +53,6 @@ backends:
decode_jitter_ms: 2
prefill_tokens_per_s: 8000
decode_tokens_per_s: 160
registration:
last_mean_input_tps: 260
- count: 3
profile:
name: balanced
Expand All @@ -69,8 +65,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 4000
decode_tokens_per_s: 90
registration:
last_mean_input_tps: 120
- count: 1
profile:
name: small-cache
Expand All @@ -83,8 +77,6 @@ backends:
decode_jitter_ms: 6
prefill_tokens_per_s: 2600
decode_tokens_per_s: 70
registration:
last_mean_input_tps: 80

traffic_pattern:
kind: mixed_size
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@ backends:
decode_jitter_ms: 8
prefill_tokens_per_s: 1800
decode_tokens_per_s: 45
registration:
last_mean_input_tps: 60
profiles:
- count: 2
profile:
Expand All @@ -55,8 +53,6 @@ backends:
decode_jitter_ms: 4
prefill_tokens_per_s: 4200
decode_tokens_per_s: 90
registration:
last_mean_input_tps: 130
- count: 4
profile:
name: constrained
Expand All @@ -69,8 +65,6 @@ backends:
decode_jitter_ms: 8
prefill_tokens_per_s: 1800
decode_tokens_per_s: 45
registration:
last_mean_input_tps: 60

traffic_pattern:
kind: bursty
Expand Down
Loading
Loading