P445
NQNFSプロトコルは、耐障害性の高い方法でクライアント間でキャッシュの完全な一貫性を管理するために設計
リース
- 一定期間の使用を許すためのチケット
- クライアントが有効なリースを保持している間は、ファイルの状態が更新されると、サーバはクライアントをコールバック
- 一定期間その情報を信用していいよっていう許可
- 期限切れの場合、クライアントはキャッシュ上のデータを使う前にサーバに確認
- リースは絶対時間ではなく期間指定(RTCが同期していなくても動作するため)
クロックゆらぎ
- リース期間に与えられる値
書き込み猶予
- クライアントがダーティデータを書き戻すのに与える猶予期間
期限切れ
- 期間切れの場合はサーバに問い合わせる
- 数秒ごとにデータの有効性を確認する
- リース状態の復帰は容易
- リース期間は長めなので、サーバへの問い合わせ回数はAndrewファイルシステム並に少ない
- メモリ消費量も少ない
有効なリース
- キャシュ不可(ファイル操作がサーバと同期)
- 読み込みキャッシュ(データのキャッシュは出来るがファイルの内容は変更出来ない)
- 書き込みキャッシュ(リースが効いている場合はファイルの内容を変更出来る)
不整合
不整合が発生する場合には、クライアントのキャッシュを無効化することで、NQNFSクライアントとの間での一貫性を維持する
リース取得
2つのリース取得方法 リースのための特別なRPCを使う 別のRPCにリース要求を挿入する
他のRPC要求にピギーバック出来る http://ja.wikipedia.org/wiki/%E3%83%94%E3%82%AE%E3%83%BC%E3%83%90%E3%83%83%E3%82%AF