遅行に関するいくつかの考えをコピーするには、データベース・レプリケーション・テクノロジー

許容ノードの障害状況を改善することができる複製技術を使用することに加えて、スケーラブルな(より多くの要求を処理するために、マルチノード)とレイテンシ等(ユーザ原稿展開地理的に近い場所との間の距離)を含みます。

使用中のマスタースレーブのレプリケーション、同期あなたは、単一ノードの障害やネットワーク障害のコピーのすべては、システム全体を書き込むことができない原因になりますコピーしようとした場合。失敗の確率も高くなっていると、ノードより、一般的な方法のコピーからそんなには、非同期レプリケーションを使用することです。

非同期レプリケーションを使用して一貫性のないデータノードから、メインになり、この矛盾論は一時的なものであり、あなたが一定期間後に、データベースを書いて停止した場合、ノードは、最終的にマスターノードに追いつくだろう、この効果としても知られ、最終的な一貫性

実際の状況下では、システムが近い設計限界にある、または問題(避けられない)ネットワークがある場合には、その後、タイムラグがあるかもしれない理論上の問題ではありませんが、本当の現実的な問題。ここでは3つのですレプリケーションの遅延の発生する可能性のある問題、および対応するメカニズムソリューション

  • 彼らの書き込みを読んで
    、メインプログラムに返金に新しいデータを提出することが、ユーザーが自分のデータを読み取る際に、データは矛盾が生じ、ノードから来るかもしれません。

    図の場合、また、メカニズムの読み書きの一貫として知られる「書き込み後読み取り一貫性」の必要性は、ユーザーがいつでも見ることができることを保証するために、自身が最新の提出を更新しました。
  • 単調な読み取り
    ユーザーは、このようなコールバック当面、単調な一貫性を記述するために、この時間が必要として古くなったコンテンツを、読んだ後に、以下に示すように、最新のコンテンツを表示します。
    ユーザーが複数回読み込まれるかどうかを判断するためには、ロールバック現象を見ることはありません

  • プレフィックスは、一貫性のある読み
    、それが特定の問題パーティション(スライス)がデータベースに表示され、因果関係は珍しい登場しました。機構は、特定の順序の書き込み要求が発生した一連のために必要とされるため、その後の内容を読み取るには、時間に応じて書き込まれます。

解決するために、プログラムの考え方

在应用层层面可以提供比底层数据库更强有力的保证,如保证在主节点上进行特定类型的读取,而代价是,应用层代码会非常复杂且容易出错。所以应该假定数据库能“做正确的事情”,情况就简单的,最好的办法是抽象出一层,提供事务这种更强力的保证

おすすめ

転載: www.cnblogs.com/yeni/p/11987339.html