UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【DB】リードレプリカとは

GCS上にCloud SQLインスタンスをたてるとき、リードレプリカの話になった

リードレプリカがわかっていなかったので調査する

こちらの記事が参考になった

pfs.nifcloud.com

データベース(以下、DB)の規模が大きくなると、アクセスに時間がかかるようになる場合があります。そのため、「MySQL」や「PostgreSQL」などのオープンソース系のRDB(Relational Database/リレーショナルデータベース)には、データをリアルタイムにコピーし、別のシステム上に作成する「レプリケーション」による負荷分散のための機能「リードレプリカ」が用意されています。

つまり、リードレプリカは読み出し専用(リード)のDBで、レプリケーション機能でマスターDBから作成された複製(レプリカ)されたDBということがわかった

そして、大量アクセスがあった場合は、このリードレプリカを増やせば負荷分散できるメリットがあることがわかった

ただ、レプリカの更新タイミングが、マスターが更新される度に更新をするか、非同期で更新するかの2つあるようで、マスターが更新される度に更新をする場合だと、変更の転送待ちにより処理速度が低下する可能性あり、非同期だと最新のデータがレプリカに反映されていない時間帯があるというデメリットもあることがわかった