【りーどゆあらいついっかんせい】

Read-Your-Writes一貫性 とは?

公開:
💡 自分が送った投稿は、すぐに自分には見える——「自分の書き込みは自分で読める」の約束
📌 このページのポイント
Read-Your-Writes一貫性:自分の書き込みは即反映される ユーザー ① 書き込み ③ 読み取り プライマリ 最新データあり ✓ 書き込み先 レプリカ 伝播遅延あり 古いデータの可能性 読み取りルーティング 自分の書き込み後は プライマリへ誘導 (セッション/トークンで管理) ① Write ② 伝播(遅延) ③ Read(どこから?) →プライマリへ ✓ 自分の書き込み後は常にプライマリから読む → 最新データが見える
Read-Your-Writes一貫性:自分が書いたデータは必ず自分が読める
ひよこ ひよこ
ペンギン先生、Read-Your-Writesって名前からどんな意味かなんとなく想像できるんだけど、これって何が嬉しいの?
ペンギン先生 ペンギン先生
例えばSNSでプロフィール写真を変更したのに、ページをリロードしたら古い写真が表示されたら混乱するよね。それを防ぐ保証だよ。
ひよこ ひよこ
あー、確かにそれは嫌だね。でも分散データベースだとなぜそういうことが起きるの?
ペンギン先生 ペンギン先生
複数のサーバーにデータが複製されているとき、書き込みが全サーバーに伝わるまで時間差があるんだよ。書き込み先と読み取り先が違うサーバーだと古いデータを返すことがあるんだ。
ひよこ ひよこ
Read-Your-Writesはどうやってそれを防ぐの?
ペンギン先生 ペンギン先生
書き込み後はそのデータを書いたサーバー(またはそれ以上に新しいサーバー)からのみ読み取るように誘導するんだよ。セッショントークンを使って実現することが多いよ。
ひよこ ひよこ
結果整合性との違いは何なの?
ペンギン先生 ペンギン先生
結果整合性は「いつか全サーバーに反映される」という保証だけど、Read-Your-Writesは「自分の書き込みだけは今すぐ自分に見える」という追加の保証があるんだよ。
ひよこ ひよこ
なるほど!自分の操作だけは確実に反映されるって、アプリとしてすごく大事な性質なんだね!
ペンギン先生 ペンギン先生
そうだよ。特にログイン状態の変更やショッピングカートの操作など、ユーザーが自分でやった操作が見えないのは致命的なUXバグになるからとても重要な一貫性モデルなんだよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Read-Your-Writes一貫性」って出てきたら「自分が書いたものは自分には必ず見える保証」と思えればだいたいOK!
📖 おまけ:英語の意味
「Read-Your-Writes Consistency」 = 自己書き込み読み取り一貫性
💬 分散システム理論でSession Guaranteesの一つとして提唱された概念で、「自分のwriteはそのまま自分のreadに反映される」という直感的な一貫性の保証だよ
← 用語集にもどる