フォロー

2度に分けて行ったメンテですが、大きな変更点として、PostgreSQL 13への移行があります。また、Makaraによるリードレプリカを当面行わないことにしました。

ざっくり言うと、12から13へ移行するにあたって、ロジカルレプリケーションを使って別サーバへレプリケーションを通じてPostgreSQLのメジャーバージョンアップを行い、その上であらためて元のサーバへ戻す、というようなオペレーションにチャレンジしました。

だんだんデータベースが大きくなってきたため、pg_upgradeでサクッとあげればいいや、ってのが難しくなってきましたね。

最初はそれで済ませようと思ったんですが、1〜2時間かかること、ローカルストレージの空きが足りないことなど、やってみると色々と問題がでてまいりました。

リードレプリカの方は、元々実験的な取り組みで、扱いにくい面も目立ってきていたため、レプリケーション先のサーバは待機させて読み出しには使わない運用に変更しました。

また、Mastodonのアップデート時にマイグレーションに失敗して発覚しがちな、重複レコード・インデックスの破損問題の検証・テストなども行っています。

Fedibirdは比較的新参のサーバで、機能開発のために頻繁にマイグレーションを行っていることもあり、今のところそういったデータベースの潜在的な破損には遭遇していません。今回も問題は発見されませんでした。

他方、私が管理する他のサーバでは、実際に重複レコードやインデックスの破損、ロケールの問題などが発覚しています。これまで修復を含めた対処を何度か行いました。

現在、ThibGさん(Eugenさんに次いでコミットしているMastodonの主要開発者の方です)が調査・原因の究明にあたり、発見された問題点を整理し、運用中のサーバの重複レコード対応とインデックスの修復、問題を起こしやすいロケール設定などへの警告や変換などの、対応コードとドキュメントの整備を行っています。

これらが有効に機能するかどうかの確認を兼ねて、実際にいろいろ試してみているところです。

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。