Skip to content

Default polling workers to 5 TCP connections (Option A: fixed)#1248

Open
LukeButters wants to merge 1 commit into
mainfrom
luke/option-a-fixed-polling-connections
Open

Default polling workers to 5 TCP connections (Option A: fixed)#1248
LukeButters wants to merge 1 commit into
mainfrom
luke/option-a-fixed-polling-connections

Conversation

@LukeButters

Copy link
Copy Markdown
Contributor

Summary

  • Polling Tentacle workers previously defaulted to 1 TCP connection, serialising all RPC calls. Under load (e.g. DRB), RPCs queue in Halibut's Pending Request Queue and time out — causing deployment failures.
  • This PR implements Option A from the RFC: a fixed default of 5 connections, matching the k8s polling worker setting already proven in production.
  • The TentaclePollingConnectionCount env var still overrides this default; Halibut's MaximumActiveTcpConnectionsPerPollingSubscription cap remains in place as a server-side safeguard.
  • See also: Option B PR (CPU-based scaling) for the alternative approach.

Test plan

  • Verify existing tests pass
  • Manually confirm a polling worker opens 5 connections by default (check Tentacle logs for "Starting 5 polling connections")
  • Verify TentaclePollingConnectionCount=1 env var still overrides to 1 connection
  • Verify TentaclePollingConnectionCount=10 is clamped to 8

🤖 Generated with Claude Code

Polling Tentacle workers previously opened a single TCP connection to
Octopus Server, serialising all RPC calls. This causes queue time growth
and deployment failures for high-throughput customers (e.g. DRB).

This change sets the default to 5 connections — matching the k8s polling
worker default that is already proven in production. Customers can still
override via TentaclePollingConnectionCount env var; Halibut's
MaximumActiveTcpConnectionsPerPollingSubscription cap remains in place.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

1 participant