AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

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

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

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

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

Read concern "local" is available for use with or without causally consistent sessions and transactions.

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

You can create collections and indexes inside a transaction. If explicitly creating a collection or an index, the transaction must use read concern "local". If you implicitly create a collection, you can use any of the read concerns available for transactions.

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

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

注意

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

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

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

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

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

t 0

プライマリが Write 0 を適用

プライマリ: Write0
1セカンダリ: Write prev
2セカンダリ: Write prev

プライマリ: Write prev
1セカンダリ: Write prev
2セカンダリ: Write prev

t 1

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

プライマリ: Write0
1セカンダリ: Write0
2セカンダリ: Write prev

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

t 2

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

プライマリ: 書き込み0
1セカンダリ: 書き込み0
2セカンダリ: 書き込み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

Then, the following tables summarizes the state of the data that a read operation with "local" read concern would see at time 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 を反映

このページを評価