Re[10]: mmap асинхронная запись
От: valuea  
Дата: 01.08.14 14:30
Оценка:
VVB>О, интересно. А это не частный случай, когда все сбрасывается?
VVB>Я в таких случаях ориентируюсь на man, а там указано, что записываются в fs, на не на storage device.
VVB>А вот в fsync(2) явно написано то, что надо.
Да, я к тому, что судя по исходника VM FreeBSD, в случае вызова msync для всего пространства, выполняется тот же самый fsync. И пердполагаю (лень ковыряться в vm_object_page_clean с flags=OBJPC_SYNC), что даже при вызове msync для отдельной страницы выполняется операция записи на диск, аналогичная вызову fsync.

VVB>Консистентность в памяти будет, на диске — нет, пока fsync не вернулся.

VVB>Надо ж учитывать, что переупорядочить запись может много кто (контроллер, сам диск) и только правильно реализованный fsync даст гарантию, что на диске лежит то, что мы записали.
VVB>Можно делать так: заголовок обновлять периодически, в отдельном потоке, вместе со сбросом данных на диск. А клиентам возвращать состояние в памяти.
Я собственно этого и добиваюсь, но предполагал что ОС все-таки сможет обеспечить нужную последовательность при асинхронной записи на диск, без отдельного потока.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.