чтение имен файлов с переводом строки

Ответ filbranden верен, если предположить, что процесс непрерывного выпуска выполняет правильную атомарную замену файлов через rename. Если это не так, но изменяет файл в месте -, все по-другому. Однако ваша ментальная модель все еще ошибочна.

Невозможно, чтобы что-то изменилось на диске и не соответствовало кешу страниц, потому что кеш страниц является канонической версией и той, которая изменена. Любая запись в файл происходит через кеш страницы. Если он там уже присутствует, существующие страницы изменяются. Если ее еще нет, попытки изменить часть страницы приведут к кэшированию всей страницы с последующим изменением, как если бы она уже была кэширована. Записи, которые занимают целую страницу или более, могут (и почти наверняка )оптимизируют шаг чтения, подкачивающий их. В любом случае существует только одна каноническая модифицируемая версия файла (*), в кэше страниц.

(*)Я немного солгал. Для NFS и других удаленных файловых систем их может быть более одной, и они обычно (зависят от того, какая из них и какие параметры монтирования и сервера -используются )неправильно реализуют атомарность и семантику упорядочения для записи. Вот почему многие из нас считают их принципиально неработоспособными и отказываются использовать их в ситуациях, когда записи будут выполняться одновременно с использованием.

1
14.11.2021, 17:17
0 ответов

Теги

Похожие вопросы