いくつかの記事を読んで混乱しました。
意見 1: 2PC は非常に効率的であり、最小限の数のメッセージが交換され、待ち時間が短い。出典: http://highscalability.com/paper-consensus-protocols-two-phase-commit
意見 2: 分散トランザクションを高レベルにスケーリングすることは非常に難しく、さらにスループットが低下します。2PC保証のACIDとして 複雑な協調アルゴリズムのため負担が大きい。出典: http://ivoroshilin.com/2014/03/18/distributed-transactions-and-scalability-issues-in-large-scale-distributed-systems/
意見 3: 「一部の作成者は、2 フェーズ コミットがもたらすパフォーマンスや可用性の問題のために、サポートするにはコストがかかりすぎると主張しています。アプリケーション プログラマーは、トランザクションの不足を常にコーディングするよりも、ボトルネックが発生したときにトランザクションの過剰使用によるパフォーマンスの問題に対処する方がよいと考えています。Paxos で 2 フェーズ コミットを実行すると、可用性の問題が軽減されます。」ソース: http://courses.cs.washington.edu/courses/csep552/13sp/lectures/6/spanner.pdf
意見 4: 2PC コーディネーターは、重要なシステムには受け入れられない単一障害点でもあります。私は、2PC コーディネーターがコーディネーターであると信じています。ソース: http://www.addsimplicity.com/adding_simplicity_an_engi/2006/12/2pc_or_not_2pc_.html
最初の 3 つの意見は互いに矛盾しています。4番目が正しいと思います。何が間違っていて何が正しいのかを明確にしてください。それがなぜなのかという事実を与えることも素晴らしいでしょう。