【りーどゆあらいついっかんせい】
Read-Your-Writes一貫性 とは?
最終更新:
💡 自分の書き込みを、次の読み取りに反映する
同じセッションの読み取りに、それ以前の自分の書き込みを反映させる保証。複製の遅れ、セッショントークン、全利用者の最新状態とは異なることを解説します。
📌 このページのポイント
プロフィールを保存したのに、読み直すと古い名前になった。
読み取り先の複製に、変更がまだ届いていない可能性があるよ。Read Your Writesは、同じセッションの読み取りに、それ以前の自分の書き込みが反映されるようにする保証なんだ。
保存したら、全員の画面ですぐ新しくなる?
自分が書いた文字は、必ずそのまま返ってくる?
その後に別の更新や削除があれば、結果が変わることもあるよ。自分の書き込みを含む状態から読む保証で、過去に書いた値を固定して返す保証ではないんだ。
必ず書き込み先のサーバーから読むの?
それは実現方法の一つだけだよ。Azure Cosmos DBのSession整合性では、書き込みで得たセッショントークンを読み取りに使う。条件を満たさない複製なら別の複製などへ再試行するので、常にプライマリだけから読む仕組みではない。
セッションは、ログインしている人と同じ意味?
もっと詳しく知りたい人へ
即座に読み取りが成功する保証もある?
一貫性の保証と、応答時間や可用性は別です。条件を満たす複製を待つ、別の読み取り先へ再試行する、保証できない場合に失敗を通知する、といった動作が必要になる場合があります。実際の製品の仕様を確認します。
この保証があれば、キャッシュも気にしなくてよい?
データベース側の保証だけで、ブラウザーやCDNなどの古いキャッシュまで自動的に更新されるわけではありません。アプリがどの経路で読み、どのセッション情報を渡すか、キャッシュの更新も含めて確認します。
まとめ:ざっくりこれだけ覚えればOK!
「Read Your Writes」って出てきたら「同じセッションで行った書き込みを、その後の読み取りに反映させる保証」と思えばだいたいOK!全利用者が同じ最新値を見る保証とは違うよ。
📖 おまけ:英語の意味
「Read Your Writes」 = 自分の書き込みを読む
💬 Terryらの1994年の論文では、弱い一貫性の複製データに対するセッション保証の一つとして説明されています。セッションの作り方や共有の仕方は実装によります。