2009-08-25 3 views
0

私は、ユーザーが読んでいるものと同じくらい多くの書込みをした場合、別のDBサーバー間でどのように大きなサイトが負荷を分散しているかを知りたいのです。 1つのマスターが書き込みを受け入れるという標準的な解決方法と、ユーザーにデータを読み取らせるだけの数種類のスレーブがマスターサーバーをボトルネックに変えるだけなので、機能しません。複数の読み書きDBサーバを同期させて保持する方法は?

ロードバランサ - >複数のWebサーバー - >複数のDBサーバーを使用して大きなサイトを管理している場合は、DBサーバー間で負荷を均等に分散して、マスターがスレーブを更新するのを待つか、(最悪の場合)ユーザーはまだ更新されていないスレーブからダーティデータを読み取ることになりますか?

ありがとうございます。

+0

これまでの16個の質問に対して回答が受け入れられたとマークすると便利です... – RedFilter

+0

私はStackoverflowの仕組みが分からず、質問とコメントを投稿しています。私は他の質問に答えました。 – Gulbahar

答えて

0

私たちのマスターデータベースサーバーがボトルネックになっているとは思えませんが、すぐに近づいています。私たちは70%のリード/ 30%のライトスプリットを持っています。

いくつかの解決法がありますが、それほど楽しいものはありません。私たちはMySQLに悩まされているので、私たちの主なオプションは以下の通りです:

  • 問題が発生したらハードウェアを投げてください。これは何年も続いてきた戦略であり、今まで私たちに役立ってきました。残念なことに、私たちの成長曲線は、これをずっとずっと遠ざけることはないということを意味します。
  • 複数のマスターMySQL設定。私が話していることを見るには、第8章の「レプリケーション・トポロジ」をHigh Performance MySQLで見てください。このセクションで説明したように、レプリケーションは書き込みをスケーリングするための大きなオプションではありません。
  • MySQLクラスタ。私はまだこれを適切に調べ、書き込みパフォーマンスを改善できるかどうかをテストする必要があります。
  • 私たちのソフトウェアにパッチを適用し、操作ごとの書き込みを少なくします。これは部分的に行われていますが、私はそれをどれくらい絞り出すことができないのか分かりません。
  • 私たちのソフトウェアにパッチを当てて、複数の独立したマスター間で書き込みを分割します。これは非常に苦痛であり、私は可能ならばそれを避けたい。
  • 私たちのソフトウェアにパッチを当ててMySQLに依存しないようにパッチを当て、さらに優れた書き込みスケーリングオプションを提供する別のSQLデータベースを見つけてください。

これは私が現時点で持っている選択肢ですが、別のデータベースで作業している場合や、開始して選択できる場合は、選択肢が根本的に異なる場合があります。

+0

フィードバックのためのConorに感謝します。 – Gulbahar

関連する問題