2017-06-28 2 views
2

私は、例の助けを借りて、同時および非ブロッキングパラメータを理解しようとしています。私が正しいかどうか教えてください。Marklogic MVCC:現時点とノンブロッキングとの比較

タイムスタンプ= 10でトランザクションT1、T2、T3が発生していると仮定します。 照会トランザクションが3535:

の場合: クエリはT1コミットされたバージョンを読み取り、読み取りが完了するまでT2とT3を待機します。非ブロックするための

: クエリのみすべての3のトランザクションT1の後に読むことを得る、T2、T3が50

答えて

4

でコミットされているこれは理解するのが最も簡単ですし、重要最もあなたは、災害に照会を考える場合回復レプリカクラスタDRセットアップでは、プライマリ上の各フォレストは、そのジャーナルフレームをレプリカ上の一致するフォレストに複製しています。データベースには複数のフォレストが存在することが多く、レプリケーションがフォレストレベルで行われるため、一部のフォレストでは他のフォレストよりもわずかに遅いデータがある可能性があります。

ここで、(読み取り専用の)クエリがレプリカ上のデータベースに入ったとします。あなたには2つの選択肢があります。 1つは、すべてのデータを保持している最後のタイムスタンプでクエリを実行できます(ノンブロッキングです)。 2つ目は、最後のタイムスタンプでクエリを実行して(最も近いフォレスト内の)すべてのデータを表示し、すべてのデータが(他のフォレストに対して)到着するのを待って、後でそのトランザクションの一貫性のあるビューを得ることができますそれは同時に起こる)。

両方のオプションがトランザクション上一貫していることに注意してください。データベースがクエリを実行するタイムスタンプをどのように選択するかだけです。

読み取り専用クエリは常にロックフリーです。

関連する問題