Негативное кеширование NFS
В реализациях сетевой файловой системы NFS есть так называемое «негативное кеширование». Эта штука портит много крови программистам, а суть её проста, как чихание — если вы обратились за файлом и его на момент обращения не было, то
Например, вы обращаетесь через NFS за файлом и если его нет, даёте серверу очередей задание на генерацию. Дожидаетесь выполнения задания и снова пытаетесь найти файл по тому же пути. Если обработка задания заняла секунды, то
Теоретически этот кеш можно отключить (опцией lookupcache), практически же не всегда на оборудовании заказчика удаётся это сделать.
Чтобы решить эту проблему, мы придумывали разные сигнальные схемы и в ходе экспериментов обнаружилось, что если
function clear_nfs_cache(string $filename): bool
{
$tmpname = tempnam(dirname($filename), 'clear-cache'));
return $tmpname === false ? false : unlink($tmpname);
}
Комментарии 3
в чем разница — записать в папку временный файл или необходимый?