misskey
misskey copied to clipboard
データベースのリードレプリカのサポート
Summary
データベースのリードレプリカをサポートし、リードレプリカからもデータを読めるようにする
Why this feature is important
バックエンドデータベースがボトルネックになっている状態で、それを水平分散で解消するため
How to implement
- packages/backend/src/config.tsのSource型にレプリカ用の設定を追加する
- packages/backend/src/postgres.tsのDataSourceコンストラクタ呼び出しに、replica指定を定義し、masterに従来のマスタを、slave1以下にスレーブを定義する
参考文献 https://orkhan.gitbook.io/typeorm/docs/multiple-data-sources
Difficulty
仕様定義とテスト定義が面倒そう。それ以外はそれほど難易度は高くないと考える
参考: replicaの設定はうちの設定だと config/default.yml のextraに入れてる 多分ちゃんと使えてると思う 設定の仕方が簡単になったりymlに例がのってたりするとそれはそれで嬉しい
👀 https://typeorm.io/multiple-data-sources#replication