データベースアーキテクチャは、それぞれが同じデータベース構造のインスタンスを持つ2つのSql Server 2005サーバー(すべての読み取り用とすべての書き込み用)で構成されています。トランザクションレプリケーションを使用して、読み取ったデータベースを最新の状態に保ちます。トランザクションレプリケーションで1秒未満の遅延を得ることは可能ですか?
2台のサーバは非常に高性能であり(書き込みサーバには32GBのRAMが搭載されています)、ファイバネットワークで接続されています。
このアーキテクチャを決定すると、読み込みサーバーに複製されるデータのレイテンシは数ミリ秒のオーダーになると考えられました(明らかに負荷にもよる)。実際には、最も単純な場合でさえ約2〜5秒のレイテンシが見られますが、それは不満足です。最も単純なケースでは、書き込みDB上の単一のテーブル内の単一の行の単一の値を更新し、読み取りデータベース内の新しい値を監視するのにかかる時間を確認することを意味します。
1秒未満のレイテンシを達成するには、どのような要素を検討する必要がありますか?これは達成可能ですか?
また、異なるモードの複製を検討する必要がありますか?データとログファイルの場所のベストプラクティスは何ですか?
編集アドバイスや洞察力のためのすべての
おかげで - 私たちはを経験している潜伏期間が正常であると信じています。私たちはdbホスティング会社が待ち時間を予想するのは間違っていました!
我々はthis MSDN article(見出しの下に「スケーリングデータベース」)の底部付近に記載された技術を使用している、と我々はこの警告を適切に処理することができなかったと思います:
、このような専門的な作成の結果をデータベースは待ち時間である:書き込みは今読者のデータベースに配布するのに時間がかかるだろう。しかし、レイテンシに対処できれば、スケーリングの可能性は大きいです。
データ項目が「揮発性」であると見なされたときに、書き込みデータベースからの読み取りを強制するキャッシング・メカニズムの変更を実装します。
ええ、私はあまりにもその記事を読むだろう:( –