【ふぇんしんぐとーくん】

フェンシングトークン とは?

公開:
💡 古い担当者の書き込みを、保存先で止める

ロックやリーダーの取得ごとに増える番号を操作に付け、保存先で古い担当者の操作を拒む仕組み。番号の発行だけでなく、操作先での検査が欠かせない。

📌 このページのポイント
フェンシングトークン 保存先が34を受理したあとの例 新しい担当者 トークン34 古い担当者 トークン33 保存先:最大34 34は受理 33は拒否 書き込み 遅れて到着 検査・最大値の更新・操作を競合に対して一体に行う
古い担当者の書き込みを、保存先で止める
ひよこ ひよこ
ロックを取れば、同時に書かれる心配はないんじゃないの?
ペンギン先生 ペンギン先生
期限付きロックでは、処理が長く止まっている間に期限が切れることがあるよ。別の担当者がロックを取ったあと、古い担当者が再開して書こうとする。手元で期限を確認しても、その直後に停止する可能性が残るんだ。
ひよこ ひよこ
古い担当者をどうやって見分けるの?
ペンギン先生 ペンギン先生
取得ごとに単調に増えるフェンシングトークンを渡すんだ。古い担当者が33、新しい担当者が34という具合だよ。番号に飛びがあってもよく、同じ取得の操作には同じ番号を付けられる。
ひよこ ひよこ
番号を付けるだけで止められるの?
ペンギン先生 ペンギン先生
保存先の協力が必要だよ。保存先が34の操作を受理したあとに33が来たら拒否する。検査と記録と書き込みの間に別の操作が割り込んで矛盾しないように、ひとまとまりの処理として実装するんだ。
ひよこ ひよこ
34がまだ保存先に届いていなくても、33は拒否されるの?
ペンギン先生 ペンギン先生
最大番号だけを検査する方式なら、必ず拒否されるとは限らないよ。この方式は「新しい番号を受理したあとに古い番号へ戻らない」ことを守る。保存先がロックの期限を知る仕組みとは区別してね。
ひよこ ひよこ
同じ34の操作が2回届いた場合は?
ペンギン先生 ペンギン先生
同じ取得で複数回書けるよう、同じ番号を許可する設計もある。だからフェンシングだけで二重処理は防げないよ。必要なら操作IDによる重複排除も用意し、番号が再起動や再作成で巻き戻らない設計にするんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「フェンシングトークン」は「古い担当者の書き込みを、保存先で止める」と押さえておこう!
📖 おまけ:英語の意味
「fencing token」 = 古い操作を締め出すための識別子
💬 fencing tokenは「古い操作を締め出すための識別子」という意味の表現だよ。

参考資料

← 用語集にもどる