一部のプロセスのファイルベースのキャッシュがLinuxマシンで発生することを想像してみてください。
- ソースデータに変更があった場合にのみ、プロセス(リソースを消費する)を作成します。
- 結果をクエリするたびに、ベースデータが変更されているかどうかを確認しています。
- データが変更された場合、データを処理してキャッシュを保存します。
- 変更とキャッシュの鮮度(最後の変更後に作成された場合)のチェックは、ファイルの変更時刻(ソースデータとキャッシュファイル)を照会することによって行われます。
トリッキーな部分:プロセスには時間がかかります。データの処理中にデータが変更される可能性があります。キャッシュの変更時間を作成クエリ時間に変更しても安全ですか?
それは次のようなものです:
- ソースデータは20:00:01に変更されました。
- クエリは20:00:05に行われました-キャッシュを再作成しています。
- 20:04:15に終了しました。
- キャッシュを保存しています。
- キャッシュファイルの変更時刻を20:00:05に変更します(これは、20:00:05以降のすべての変更がカウントされないことを示しています)。
安全ですか?バックアップ、展開、ソース管理の場合...このようなソリューションで問題が発生する可能性があるのはどのような状況ですか?