Galera のドキュメントに記載されているように、クラスターは同期レプリケーションを使用します。しかし、もう少し深く見てみると、Galera は "仮想" 同期のみであるという記述があります。ノードでは、コミットは物理的なコミットではなく「証明書」を渡す必要があります。アプリケーションのアーキテクチャを計画するには、この部分を理解する必要があります。
だから私は今、次のケースのどれが当てはまるかを知りたいです:
スクリプト A はUPDATE
約 5 秒かかるトランザクションで実行し、COMMIT
どちらも数秒かかります。スクリプト A がすぐに終了すると、スクリプト B が続きます。たとえば、1 秒以内に HTTP-POST-Request の後に HTTP リダイレクトが行われます。スクリプト B は、スクリプト A とは異なるノードを照会します。
- スクリプト B は、が完了するまでに約 4 秒かかる
UPDATE
ため、 の前のステータスを取得します。UPDATE
- スクリプト B は、すべてのノードの状態が同期のときに が終了する
UPDATE
ため、 の後にステータスを取得します。COMMIT
あるとすれば、どれが正しいでしょうか?または、動作は構成に依存していますか?