2009-06-23 10 views
0

私が働いている社内開発ソフトウェアは、私たちのオフィスのmysqlサーバにdevexpress orm(XPO)経由で直接接続します。パフォーマンスは素晴らしいです。地理的に多様なユーザを持つアプリケーションのバックエンドdbセットアップ

私たちは別のオフィスを開いています...クロスカントリー。パフォーマンス:そうではありません。要件は、ソフトウェアがこのオフィスにあるように両方のオフィスで応答性があり、あるオフィスのデータが他のオフィスの「リアルタイム」で利用可能であることです。

このスケールの何かは全く新しいものです。私は前にこのようなことをやったコンサルタントを招くことに嫌うことはありませんが、最初にオプションの良いイメージを得たいと思います。これは一般的な状況だと確信しています。

レプリケーションは良いアイデアですか?それは十分速いですか?十分に安定している?

複製が機能しない場合、このような状況に取り組む開発パターンはありますか?

は、ヘック、私はこれをタグ付けする方法がさえわからないので、誰かが良く知っていれば...、データ

私は推測

について

EDIT>詳細をタグし直すこと自由に感じなさいいくつかのエンタープライズソフトウェアと比較して、私たちは多くのデータを移動させていません。ソフトウェアは顧客アカウント、予定などを管理し、各ユーザーは毎回約2〜5の別々の口座/分(現在50人のユーザー、計画された拡張後200〜400人)で作業し、毎回データを更新します。

オフィスAの誰かがオフィスBの誰かのために予定を作成し、理想的には、すぐ近くでその詳細を見ることができるようにする必要がある(< 2分)リアルタイムのアスペクトが機能します。つまり、各レコードは通常、1日に最大5回まで突然変異を起こします。しかし、それは私が疑うところだけです。私は実際に私の使用統計を持っていません。

答えて

1

双方向では非同期複製は使用できません解決することは不可能で複製の競合を作成することなく、

したがって、明白な選択は、読み取り/書き込み分割を使用することです - アプリケーションが(読み取り専用)ローカルDBから重要ではない読み取りを行い、すべての書き込みをマスターに指示します。これの欠点は、自分の書き込みをすぐに読み取ることができないことを意味します。

MySQLレプリケーションは完璧ではないし、設定を維持して継続的に監視する必要があります。あなたは頻繁にデータがスレーブで同じであることを確認する必要があります。一部のクエリは正しく複製されません。それらを理解し、それらを避ける必要があります。

+0

あなたのご意見をお寄せいただきありがとうございます。あなたの答えとmysqlドキュメントを使用して、私は読み書きを分割しようと決めました。今はORMに同じことを(DevExpress.XPO)納得させるだけの問題です。 –

1

最後には、GUIスレッドがブロックされないように、すべての頑強な作業がバックグラウンドスレッドで行われていることを確認するのはもちろんのことです。

リアルタイムデータを使用することはデータに依存しますが、リクエストごとにどれだけのデータ(つまりオブジェクトの大きさ)がどれくらいの割合であるか、インターネット接続の速さボトルネック?)は、mysqlサーバーとその間にあるすべてのインフラストラクチャが適切に構成されているかどうかを確認します。リアルタイムデータが1日に1回突然変異したり、1日に何百回も突然変異が起こった場合、データはどのように静的/動的であるか

+0

を更新して、使用されているデータの種類と量、およびそれが変更されている頻度を明確にしました。現在使用しているネットワーク接続は5mb回線ですが、遅い場合がありますが、この瞬間の時点では、リモートオフィスの3人のユーザしかサポートしていません。 –

関連する問題