# 意図ロック
## 定義
意図ロック(intent locking)とは、クライアントが実行したいメタデータ操作の種類や目的をロック要求に含め、分散ロックマネージャまたはファイルシステムが処理方針を選べるようにする仕組みである。2003年のLustre資料では、低競合時にはクライアントへライトバックロック(write-back lock)を返し、高競合時にはサーバが操作を実行して戻りコードだけを返す設計として説明される。
## メタデータ操作への適用
Linux VFSの`mkdir`経路に`intent mkdir`を追加し、ファイルシステム側がmkdir用ロックを手配する。
処理後は`d_intent_release`によってロックを解放する。
この構造により、VFSが好むディレクトリロックを単純に固定するのではなく、単一クライアントの効率と、多数クライアントによる同時更新への対応を切り替える余地を作る。
## 設計の帰結
- 意図を渡すことで、ロックマネージャは低競合時と高競合時に異なる処理を選べる。
- 初期案はVFSを安全に通すために多数のロックと境界事例を必要とし、クライアントとサーバの実行ビューを一致させる複雑さを招いた。
- 資料では、意図ロックをサーバ側のraw操作へ整理し、高競合時にはクライアント側VFSコードを省略する方向が示される。
## 横断的知見
- 本ソース単独では、ファイルシステム以外の意図ロックや、現行実装との同一性を比較できない。
## 未解決の問い
- 競合度をどの単位・観測値で判定し、ライトバックロック(write-back lock)とサーバ側実行を切り替えるのか。
- クライアントとサーバの処理ビューを一致させるために、どの境界事例をプロトコルで扱う必要があるのか。
- データベースで使われる階層的な意図ロックと、本資料のファイルシステム用語はどの範囲で共通し、どこが異なるのか。
## 関連
- [[分散ロック管理]] — 意図ロックを含むロック管理機構。
- [[Lustre]] — 意図を使ったメタデータ処理を試みたファイルシステム。
- [[並列ファイルシステム]] — メタデータスケーリングが重要なシステム群。
## 出典
- [[@2003__CFS__Lustre building a cluster file system for 1,000 node clusters]]