Кэш NFS: одинаковый mtime не доказывает неизменность содержимого

Запросить

Фотография конкретного исполнения не приложена.

При совместной работе через NFS клиенту нужно определять, актуальны ли сохранённые данные. Проверка только времени изменения кажется удобной, но может пропустить несколько обновлений внутри одной временной гранулы. Поэтому это не равно надёжной проверке версии файла.

RFC 8881 требует учитывать change attribute при валидации кэша и предупреждает о недостаточности time_modify. Правила проверки при OPEN связаны с моделью доступа и delegation. Их фактическое применение клиентом нужно установить, а не заменять предположением о мгновенной видимости любых изменений между всеми участниками.

Для описанной OPEN/CLOSE-модели изменённые данные должны быть отправлены и сохранены до соответствующего CLOSE. Но это не создаёт прикладной транзакции между несколькими одновременно работающими writers. Приложения по-прежнему координируют конфликтующий доступ через подходящие share reservations или диапазонные блокировки.

В приёмке проверяют быстрые последовательные изменения, повторное открытие и совместный доступ двух клиентов. Сопоставляют change, timestamps и фактически прочитанные данные. Снижение числа сетевых запросов оценивают отдельно от согласованности. Настройка кэша считается подходящей только при подтверждённых правилах видимости и взаимодействия конкретного приложения.

Основание — Numbered RFC8881 NFSv4.1, RFC7862 NFSv4.2, RFC8276 xattrs and RFC9289 RPC-with-TLS; applicability scoped per task, разделы RFC8881 10.3 Data Caching; 10.3.1 Data Caching and OPENs. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — указанные номерные RFC NFS/RPC. Возможности NFSv4.1, NFSv4.2 и дополнительных расширений разделены; их фактическая поддержка сервером и клиентом не подтверждалась. Монтирование, чтение рабочих файлов, запись и восстановление состояния не выполнялись.

Все разборы