Skip to content

plimsoll v0.17.3

Choose a tag to compare

@carrollco carrollco released this 03 Oct 01:09
· 20 commits to main since this release

The warm pool's rebalancing is bounded at one container start a minute whatever callers ask for, a small pool no longer splits its containers across languages it cannot each serve, and the docker provider's shutdown ends open sessions even when an open is still in flight.

Sessions

  • Rebalancing is a slow janitor. Claims and refills already follow the pool's split: a claim takes the waiting container closest to its hint, and the refill warms the language set furthest below its share. Rebalancing now only replaces containers of sets nobody asks for any more, which no claim would take, at most one a minute. In v0.17.2, sessions that ran six or more of one language before switching moved a container every few sessions without finding their language warm any more often. docs/sessions.md, "A warm pool".
  • A small pool does not split. A pool with fewer containers than the language sets holding at least a quarter of recent demand warms all their languages in every container. In v0.17.2 a pool of 1 serving sessions that alternated JavaScript and Python always warmed the language the previous session asked for, so no session found its own warm; a pool of 2 with three sets in turn found two in three.
  • In simulation, at one session a second, sessions alternating or rotating languages found them warm every time at pool sizes 1 to 32, and random hints found them warm 97 to 100% of the time for under 0.02 extra container starts per session.
  • The docker provider's Drain ends the sessions already open even when its context ends while another open is still in flight; before, it returned and left them to be reaped once their lifetime passed.

CI

  • The gate checks formatting: golangci-lint runs gofmt.

Clients

  • @plimsollmark/client and the Python client are at 0.17.3, unchanged apart from the version.