このブログ投稿 で読んだように Octopusのデフォルトの動作は、すべてのデータをマスターに書き込み、スレーブからすべてのデータを読み取ることであるため、電源がオフまたは応答しないスレーブは、アプリケーションの障害を引き起こす可能性があります(マスターに書き込まれたデータは、接続されているすべてのスレーブに複製されるため)。 Octopus wiki、「複数のスレーブ」セクション に記載されているように 複数のスレーブ環境での読み取りはラウンドロビンを使用して行われるため、デフォルトで常にスレーブからデータを取得します。
また、上記のブログから引用:フォールバックメカニズムとして、マスターから直接データを読み取る必要があります(.using(:master)
を使用) )どのスレーブノードも使用できない場合、またはデータがまだスレーブに完全に複製されていない場合。データベースノードからの繰り返しの読み取りを防ぐために、アプリケーションごとに変更/結果をキャッシュするオプションもあります。