I posted this on HN just now, at
https://news.ycombinator.com/item?id=34313697:
The Go team has been making progress toward a complete fix to this problem.
Go 1.19 added "go mod download -reuse", which lets it be told about the previous download result including the Git commit refs involved and their hashes. If the relevant parts of the server's advertised ref list is unchanged since the previous download, then the refresh will do nothing more than the ref list, which is very cheap.
The
proxy.golang.org service has not yet been updated to use -reuse, but it is on our list of planned work for this year.
On the one hand Sourcehut claims this is a big problem for them, but on the other hand Sourcehut also has told us they don't want us to put in a special case to disable background refreshes (see the comment thread elsewhere on this page [1]).
The offer to disable background refreshes until a more complete fix can be deployed still stands, both to Sourcehut and to anyone else who is bothered by the current load. Feel free to post an issue at
https://go.dev/issue/new or email me at
r...@golang.org if you would like to opt your server out of background refreshes.
[1]
https://news.ycombinator.com/item?id=34311621