ファイルサイズが16 ... 128 MBの連続ブロックをファイルに配置する必要があります。ファイル構造が矛盾した状態になることはありません(停電やプロセスの停止の場合)。128MBをアトミックにファイルに書き込む方法は?
ファイルの整合状態は、古いデータが使用可能であり、書き込みが失敗したために消費された領域を再利用できることを保証します。言い換えれば、ソフトウェアの書き込みに失敗しても(ディスクユニットが正常であると仮定して)、いつでも「良いデータ」と「ゴミ」というカテゴリの間でファイルの各部分を区別する必要があります。
ファイル内の最も単純なデータ構造と、それを提供するためにどのようなアルゴリズムを提案できますか?
関連する質問:DBMS(MySQLのInnoDB、MongoDB、Redisなど)は、生のHDD(Oracle)の上にあるものではなく)ファイルシステムの上で動作するものは、同様の問題をどのように処理しますか?
これは、オペレーティングシステムおよび/または基礎となるファイルシステムによって異なります。単純に「できません」または「簡単ではありません」という回答が得られる可能性があります。 – inetknght
一時ファイルに書き込んで名前を変更します。前のファイルを上書きします。 –
[ジャーナリングファイルシステム](https://en.wikipedia.org/wiki/Journaling_file_system)には、この機能が組み込まれています。ジャーナリングファイルシステムを使用している場合は、何もする必要はありません。 – IInspectable