What is the go proxy even doing?
10 days ago
- #Distributed Systems
- #Mercurial
- #Go Proxy
- The Go module proxy caches requests to ensure a consistent and reliable experience for users, but it may contribute to upstream host instability.
- The proxy repeatedly downloads modules, including complete hg clones, even when new versions are unlikely to be found.
- The author's server limits the Go proxy to one clone per repo per 24 hours, returning a 429 status for excess requests.
- Logs show frequent, concurrent clone requests from multiple machines, leading to a 'thundering herd' problem.
- The proxy's design causes inefficiency by not sharing updates internally, instead hammering the upstream source.
- Despite the inefficiency, updates do propagate quickly through the proxy once a new tag is pushed.