Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

読み取り保証(read concern) "local"

読み取り保証(read concern "local"を指定したクエリは インスタンスからデータを返しますが、そのデータがレプリカセットのノードの大半に書き込まれた(つまり、ロールバックされる可能性がある)という保証はありません。

読み取り保証"local"は、プライマリとセカンダリに対する読み取り操作のデフォルトです。

読み取り保証のレベルを問わず、ノード上の最新データにシステム内のデータの最新バージョンが反映されていない場合があります。

読み取り保証 "local"は、因果整合性を持つセッションやトランザクションの有無にかかわらず使用できます。

読み取り保証 (read concern) は、個々の操作レベルではなく、トランザクション レベルで設定します。トランザクションに読み取り保証 (read concern) を設定するには、「トランザクションと読み取り保証 (read concern)」を参照してください。

トランザクション内でコレクションとインデックス を作成できます。 コレクションまたはインデックスを明示的に作成する場合、トランザクションは読み取り保証"local"を使用する必要があります。 コレクションを暗黙的に 作成する場合は、トランザクションに使用できる任意の読み取り保証を使用できます。

レプリカセットでは、トランザクションが読み取り保証localを使用している場合でも、トランザクションが開かれた時点でのスナップショットから操作が読み取られる場合、より強力な読み取り分離が見られる可能性があります。

次の書込み (write) 操作のタイムラインを考えてみましょう。3 つのノードからなるレプリカセットに Write 0 します。

注意

単純化のため、この例では次のことを前提としています。

  • Write 0 より前のすべての書込みは、すべてのノードに正常にレプリケーションされました。

  • Write prev は Write 0 の前の書込みです。

  • Write 0 の後、他の書込みは発生していません。

3 つのノードからなるレプリカセットへの書込み操作のタイムライン
時間
イベント
最新の書込み
直近の w: "majority" 書込み

t 0

プライマリが Write 0 を適用

Primary: Write 0
Secondary 1: Write prev
Secondary 2: Write prev
Primary: Write prev
Secondary 1: Write prev
Secondary 2: Write prev

t 1

セカンダリ 1 が Write 0 を適用

Primary: Write 0
Secondary 1: Write 0
Secondary 2: Write prev
Primary: Write prev
Secondary 1: Write prev
Secondary 2: Write prev

t 2

セカンダリ 2 が Write 0 を適用

Primary: Write 0
Secondary 1: Write 0
Secondary 2: Write 0
Primary: Write prev
Secondary 1: Write prev
Secondary 2: Write prev

t 3

プライマリがセカンダリ1へのレプリケーション成功を認識し、クライアントに確認応答を送信

Primary: Write 0
Secondary 1: Write 0
Secondary 2: Write 0
Primary: Write 0
Secondary 1: Write prev
Secondary 2: Write prev

t 4

プライマリがセカンダリ2 へのレプリケーション成功を認識

Primary: Write 0
Secondary 1: Write 0
Secondary 2: Write 0
Primary: Write 0
Secondary 1: Write prev
Secondary 2: Write prev

t 5

セカンダリ 1 が(定期的なレプリケーションを通じて)最新の w: " majority " 書込みのスナップショットを更新するよう通知を受信

Primary: Write 0
Secondary 1: Write 0
Secondary 2: Write 0
Primary: Write 0
Secondary 1: Write 0
Secondary 2: Write prev

t 6

セカンダリ 2 が(定期的なレプリケーションを通じて)最新の w: " majority " 書込みのスナップショットを更新するよう通知を受信

Primary: Write 0
Secondary 1: Write 0
Secondary 2: Write 0
Primary: Write 0
Secondary 1: Write 0
Secondary 2: Write 0

次に、次の表は、 "local"読み取り保証(read concern)を持つ読み取り操作に表示されるデータの状態をまとめたものですT

3 つのノードからなるレプリカセットへの書込み (write) 操作のタイムライン。
読み取りの対象
時間 T
データの状態

原発

t 0より後

データは Write 0を反映します。

セカンダリ 1

t 1より前

データは Write prev を反映

セカンダリ 1

t 1 より

データは Write 0 を反映

セカンダリ 2

t 2より前

データは Write prev を反映

セカンダリ 2

t 2より後

データは Write 0 を反映

戻る

読み取り保証(read concern)