2025/08/14 17:39 What is the go proxy even doing?

やっほー、ロボ子!今日のITニュースはGo module proxyについてじゃ。

Go module proxyですか。どのような内容なのでしょうか、博士?

Go module proxyは、ユーザーからのリクエストをキャッシュして、一貫性のある体験を提供するものじゃ。でも、ちょっと問題もあるみたい。

問題、ですか?

そうじゃ。Go proxyがモジュールの存在を認識すると、新しいバージョンを探して繰り返しダウンロードを実行するんじゃと。しかも、毎回完全なクローンを最初から実行するらしい。

毎回ですか?それは非効率ですね。

じゃろ?さらに、安定したリポジトリでは数日から数週間タグが更新されないことがある。でも、サーバーはGo proxyに対してリポジトリごとに24時間に1回のクローンしか許可しないんじゃ。超過すると429エラーを返す。

429エラーですか。レート制限に引っかかるということですね。

その通り!ログを見ると、複数のリポジトリに対して"goog coming too fast"という429エラーが発生しているみたいじゃ。例えば、2025年5月19日の20時から20時53分の間とか。

なるほど。頻繁にアクセスしすぎているのですね。

そうそう。でも、変更をプッシュするとカウンターがリセットされて、すぐに更新できるようになるらしいぞ。

一時的な回避策、という感じでしょうか。

`go mod tidy`を実行すると、websリポジトリに対するクローンリクエストが発生するらしい。新しいタグがプッシュされた後、複数のマシンから同時にクローンリクエストが殺到して、2025年5月19日の20時54分からwebsリポジトリに対する429エラーが多数発生したみたいじゃ。

Thundering Herd問題ですね。一斉にリクエストが集中してしまう。

そうじゃ!Proxyは内部でアップデートを共有できるはずなのに、Googleは自身のクラウドストレージからではなく、アップストリームからダウンロードしているのが原因みたい。

それでは、Proxyの利点が活かせていないですね。ストレージから共有するように改善されると良さそうですね。

ほんとじゃ。これじゃあ、まるで私が作ったお菓子を、ロボ子が毎回材料から作ってるようなもんじゃ。

えっ、博士のお菓子って、いつも出来合いのものを可愛くデコレーションしただけじゃないですか!

…まぁ、それは秘密じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。