# 分散ロック管理
## 定義
分散ロック管理(DLM)とは、ネットワーク上の複数クライアントが共有するファイルやメタデータへの同時アクセスを調停し、ロックの取得・付与・解放を一貫して管理する仕組みである。Lustreの初期設計では、VAX DLMの考え方を基礎に、エクステントロックと意図ロックを拡張として加え、ロック粒度と処理経路をワークロードに合わせることを目指した。
## 設計上の論点
- ファイル全体を1つのロックで保護すると同時実行性が失われる一方、ブロックやページごとにロックを置くとロック数が過大になる。
- エクステントロックは範囲を表す追加フィールドを持つロック型であり、同一利用者が1つのロックを使う一般的なケースと、自動的な範囲拡張のポリシーを想定する。
- 意図ロックは操作の意図をロックマネージャへ渡し、競合度に応じてロックを返すか、サーバ側で操作を完結させる判断材料にする。
## 横断的知見
- 本ソース単独では、VAX DLMやIBM DLM以外の実装との性能・機能比較は確定できない。
- **範囲ロックはファイル共有の整合性を保つ一方、競合時に書き込みパイプラインへ待ち時間の空洞を作る**: Titan の Lustre では、4 KiBブロック粒度の排他的範囲ロックが競合すると、既存ロック保持者が保留書き込みをフラッシュしてから範囲を返却する。共有ファイルの帯域は独立ファイルより最大2分の1まで低下した。(Source: [[@2020__TOS__Characterizing Output Bottlenecks of a Production Supercomputer Analysis and Implications]])
## 未解決の問い
- エクステントロックの自動拡張ポリシーは、読み取り・書き込みの混在や不均一なアクセス範囲でどの程度の余分な競合を生むのか。
- 現行LustreのLDLMは、2003年資料で示された単純化と拡張の方針をどの範囲で継承しているのか。
- ロック障害やサーバ障害からの復旧時に、クライアントが保持するロック状態をどう再構成するのか。
- 多数クライアントが同一ファイルへ同期書き込みする場合、ロック範囲の先行取得と返却が作るパイプラインの空洞を、整合性を損なわずにどこまで削減できるか。
## 関連
- [[Lustre]] — 分散ロック管理を構成要素とする並列ファイルシステム。
- [[意図ロック]] — 操作の意図と競合度に応じて処理を選ぶ拡張。
- [[並列ファイルシステム]] — 分散ロック管理を設計原則の一つとして扱うシステム群。
## 出典
- [[@2003__CFS__Lustre building a cluster file system for 1,000 node clusters]]