misskey icon indicating copy to clipboard operation
misskey copied to clipboard

データベースのリードレプリカのサポート

Open mh35 opened this issue 1 year ago • 1 comments

Summary

データベースのリードレプリカをサポートし、リードレプリカからもデータを読めるようにする

Why this feature is important

バックエンドデータベースがボトルネックになっている状態で、それを水平分散で解消するため

How to implement

  1. packages/backend/src/config.tsのSource型にレプリカ用の設定を追加する
  2. packages/backend/src/postgres.tsのDataSourceコンストラクタ呼び出しに、replica指定を定義し、masterに従来のマスタを、slave1以下にスレーブを定義する

参考文献 https://orkhan.gitbook.io/typeorm/docs/multiple-data-sources

Difficulty

仕様定義とテスト定義が面倒そう。それ以外はそれほど難易度は高くないと考える

mh35 avatar Mar 05 '23 00:03 mh35

参考: replicaの設定はうちの設定だと config/default.yml のextraに入れてる 多分ちゃんと使えてると思う 設定の仕方が簡単になったりymlに例がのってたりするとそれはそれで嬉しい

fruitriin avatar Mar 05 '23 09:03 fruitriin

👀 https://typeorm.io/multiple-data-sources#replication

syuilo avatar Apr 06 '23 23:04 syuilo