Architecter|マスタースレーブ構成
質問.icon マスタースレーブ構成とは?
システムやデータベースの設計において、「データの同期」と「処理」の分担を目的として使用される分散システムの一形態
質問.icon 具体的な使用例は?
データベースシステム
MySQLやPostgresSQLなどのデータベースでは、マスタースレーブ構成が一般的に利用されている。マスターが書き込みを処理し、スレーブが読み取りを処理する
分散ファイルシステム
Hadoop分散ファイルシステムなどでは、マスター(ネームノード)がメタデータを管理し、スレーブ(データノード)が実際のデータを保持する
ネットワークデバイス
ネットワークルーターやスイッチなどでも、マスター(メインルーター)が全体のルーティングを管理し、サブルーター(スレーブ)がパケット転送を実行する
質問.iconどんなメリットがある?
可用性
スレーブが複数存在することで、一部のスレーブが障害を起こしても他のスレーブで読み取り操作を続行できるため可用性が向上する
スケーラビリティ
読み取り操作の負荷を複数のスレーブに分散させることで、システムのスケーラビリティを向上させる
パフォーマンスの向上
読み取り操作をスレーブに任せることで、マスターの負荷を削減し、書き込み操作のパフォーマンスを向上させる
質問.icon どんなデメリットがある?
書き込みのボトルネック
全ての書き込み操作がマスターに集中するため、書き込み要求が多い場合にはマスターがボトルネックとなる可能性がある
データ同期の遅延
マスターとスレーブ間でデータ同期に遅延が発生する可能性があり、スレーブに対する読み取りが最新のデータに基づかない場合がある
フェイルオーバーの複雑さ
マスターが障害を起こした場合、スレーブをマスターに昇格させるフェイルオーバーの手順が必要であり、その実装と管理が複雑