ファイルロック
仲裁更新問題とは次のような例で表される。プロセスAおよびプロセスBがある顧客の口座残高を含むレコードをファイルから読み込み、各プロセスがその値を別々のメモリに保持している状況下で、次の事象が順番に発生した場合を考える。
プロセスAは自分が読み込んだレコードの口座残高欄を変更し、ファイルにそのレコード全体を書き戻す。
プロセスBも同様に自分が保持するレコード内の情報を変更し、ファイルにレコード全体を書き戻す。
プロセスBが書き戻したレコードには、プロセスAが加えた変更が一切反映されていないため、口座残高はBによって上書きされ、内容が失われてしまう。
ファイルロックは指定されたファイルについてプロセスによる更新をシリアライズ(逐次化)することでこの問題を防ぐ。多くのオペレーティングシステムはレコードロックの概念をサポートしている。これはファイル内のレコード単位にロックする機構であり、同時に更新に関わることができるプロセス数を増加させる効果がある。
他のロックと同様、ファイルロックの使用法を間違うと性能低下やデッドロックを招く。ロックをかける時間は、可能な限り最小にすることが推奨される。
データベースを構成している物理ファイル全体についてシリアライズ(逐次化)を施す。これで他のプロセスがファイルにアクセスするのを防ぐことができるし、関連するレコード群をロックするよりも事実上効率的かもしれない(多数のレコードロックをかけたり外したりするオーバヘッドを考慮した場合)。