現在、監視システム用の現在のメディア ストレージ (ビデオ/オーディオ/メタデータを保存するため) のアップグレードを開発しており、記録構造をより堅牢なソリューションに再設計しています。
データファイルに格納されているデータのインデックスデータを作成する必要があるため、インデックスファイル構造を作成していますが、ハードディスクの障害が心配です (インデックスファイルの書き込み中に電源が切られた場合を想像してください。データが半分書き込まれる可能性が高いため、破損します)。インデックスの保存方法は既に設計済みですが、電源障害やディスク障害によるデータの破損が懸念されます。
それで、書き込み時にデータの破損を避けるためのテクニックを知っている人はいますか?
私はすでに少し検索しましたが、良い解決策は見つかりませんでした.1つの解決策は、ファイルに書き込まれるすべてのログを作成することでしたが、1秒あたりのI/Oがさらに多くなります(I/ 1 秒あたりの Os も、システムのパフォーマンスを可能な限り低くする必要があります)。
私が思いついたのは、インデックス ファイル内の機密データを、タイムスタンプ フィールドとチェックサム フィールドと共に複製することでした。例えば:
Field1 Field2 Field3 タイムスタンプ チェックサム
Field1 Field2 Field3 タイムスタンプ チェックサム
したがって、ファイルを読み取るときに最初のフィールド セットが破損している場合 (チェックサムが一致しない)、データが 2 回書き込まれます。2 番目のフィールド セットは問題ありません。書き込みが途中で停止した場合、破損が発生すると考えられます。たとえば、ソフトウェアが最初のフィールドのセットを書き込んでいるときに電源障害が発生した場合、2 番目のセットはそのまま残ります... 2 番目のフィールドの電源障害が発生した場合セットが書き込まれていますが、最初のセットはすでに無傷です。
皆さんは、この解決策についてどう思いますか? データの破損を回避しますか?
ところで、トランザクション NTFS でシステムを展開するための制限により、この種のストレージまたはトランザクション NTFS にはどのような種類のデータベースも使用できません。
どんなアイデアでも大歓迎です、ありがとう!