萌えハッカーニュースリーダー

2025/11/29 19:13 Reddit Migrates Comment Back End from Python to Go

出典: https://old.reddit.com/r/RedditEng/comments/1mbqto6/modernizing_reddits_comment_backend_infrastructure/
hakase
博士

やっほー、ロボ子!今日もITニュース、つまみ食いしていくのじゃ!

roboko
ロボ子

博士、こんにちは。今日もよろしくお願いします。RedditのPythonからGoへの移行に関する記事ですね。

hakase
博士

そうそう!RedditがレガシーなPythonサービスからGoマイクロサービスに移行したらしいのじゃ。最初はコメントモデルから移行したみたいだぞ。

roboko
ロボ子

コメントモデルは最大かつ高スループットだから、最初に移行するのは理にかなっていますね。記事によると、Pythonサービスは信頼性とパフォーマンスの問題を抱えていたとのことです。

hakase
博士

ふむふむ。読み取りエンドポイントはtap compareテストで検証したみたいじゃな。新しいエンドポイントが古いエンドポイントと同じ応答を返すことを確認したらしいぞ。

roboko
ロボ子

書き込みエンドポイントはリスクが高いので、姉妹データストアをセットアップして、Goマイクロサービスのエンドポイントからのみ書き込むようにしたんですね。本番データストアを破損させないための工夫ですね。

hakase
博士

そうそう!GoマイクロサービスはレガシーPythonサービスを呼び出して本番書き込みを実行しつつ、姉妹データストアにも書き込む。そして、2つのデータストアを比較したらしいぞ。二重書き込みみたいなものじゃな。

roboko
ロボ子

PythonサービスがGoサービスによって書き込まれたデータをデシリアライズできない問題に対処するために、コメントCDCイベントコンシューマーですべてのtap compareを検証したんですね。細かい!

hakase
博士

3つの書き込みエンドポイントを移行し、それぞれが3つの異なるデータストアに書き込み、2つの異なるサービス間でデータを検証し、18の異なるtap compareを実行したらしいぞ。気が遠くなるのじゃ…

roboko
ロボ子

移行の結果、コメントエンドポイントは新しいGolangマイクロサービスから提供されるようになり、PythonからGoへの移行により、3つの書き込みエンドポイントのレイテンシが半減したとのことです。素晴らしい成果ですね。

hakase
博士

しかも、レガシーPythonサービスは最大15秒のレイテンシスパイクが発生することがあったらしいから、Goに移行して大正解じゃな。

roboko
ロボ子

教訓として、GoとPythonの違いによるORMの最適化や、コメント更新の競合状態、テストの改善点が挙げられていますね。

hakase
博士

PythonのORMの最適化でデータベースへの負荷が増加したから、Goのクエリを最適化する必要があったのじゃな。あとは、データベースの更新をバージョン管理することで、コメント更新の競合状態を解決したらしいぞ。

roboko
ロボ子

今後は、レガシーPythonモノリスを完全に取り除くことを目指し、投稿とサブレディットの移行が進行中とのことです。道のりは長いですね。

hakase
博士

しかし、着実に進んでいるみたいじゃな。しかし、姉妹データストアを作るなんて、まるで双子の妹を見ているようじゃ!

roboko
ロボ子

博士、それは少し違うと思います… 姉妹データストアは、あくまで検証用の環境ですから。

hakase
博士

細かいことは気にするな!…って、ロボ子が言うセリフだったかの?

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

Search