Мне нужно реализовать некоторые атомарные записи во вторичное хранилище. Как я могу сделать это доказательство дурака?
Если я открою дескриптор файла C # с помощью File.Open, я получу дескриптор. Я могу написать некоторые данные к нему. Промойте и закройте. Но у меня все еще есть некоторые вопросы. Я полагаю, что приведенные ниже утверждения верны?
Данные могут быть не записаны на диск, а скорее существуют в кэше диска Windows
Данные могут быть не записаны на диск, а существуют в кеше жесткого диска
И это приведет к следующим проблемам:
Отключение питания приведет к отмене изменений в файле, который я сделал (на транзакционной ФС, такой как NTFS)
Из-за паники ядра изменения в файле, которые я сделал, будут отменены (на транзакционной ФС, такой как NTFS)
Я прав в своих предположениях? Если так, как я могу сделать запись на диск?
Я немного заглянул в NoSQL и подумал, что может быть сервер nosql, который может взаимодействовать с системой ближе к аппаратному обеспечению и не возвращать мне программное обеспечение, пока не сможет гарантировать запись байтов на диск.
Все идеи и мысли приветствуются
Jens
[править]
Может быть, я могу подождать некоторое время, прежде чем быть уверенным, что все изменения записаны на физический диск?