@Fly3110
web developer

Неправильное (непонятное) поведение inotify на Synology NAS?



Есть устройство Synology DS212j с установленным DS 4.1.

Установлен (собран из исходников) медиа-сервер minidlna версии 1.0.25 и наблюдается странное поведение inotify при закачивании файлов с макбука.

Тестировалось с MacBook Pro 15" (OSX 10.8), MacBook Pro 15" Retina (OSX 10.8) и MacBook Air 13" (OSX 10.7.5)


При копировании файлов на дисковое хранилище с макбука, через Finder, minidlna постоянно (пока копируется файл) получает событие IN_CLOSE_WRITE. На получение каждого такого события идет запись нового файла в базу. Получается, что закачав 3-4 файла, мы получаем несколько десятков инстанций каждого из этих файлов в базе медиа-сервера. При закачивании из Windows, через Total Commander, minidlna получает событие IN_CLOSE_WRITE один раз для каждого файла, примерно через 1-2 секунды после окончания копирования.


В FAQ по inotify написано:
Q: What is the difference between IN_MODIFY and IN_CLOSE_WRITE?

The IN_MODIFY event is emitted on a file content change (e.g. via the write() syscall) while IN_CLOSE_WRITE occurs on closing the changed file. It means each change operation causes one IN_MODIFY event (it may occur many times during manipulations with an open file) whereas IN_CLOSE_WRITE is emitted only once (on closing the file).



Получается, что при копировании с макбука, IN_CLOSE_WRITE вызывается вместо IN_MODIFY. Но в чем разница при копировании из Windows? Ведь inotify — это подсистема ядра дискового хранилища.


Процессор на DS212j — ARM.
  • Вопрос задан
  • 3242 просмотра
Пригласить эксперта
Ответы на вопрос 1
Evengard
@Evengard
Не могу сказать точно, но возможно дело в том, как макбук копирует файлы. Открывает маленький кусок, копирует, закрывает файл, складывает их у себя. Потом повторяет ещё и ещё, пока весь файл так не обойдёт.

А Windows один раз открывает файл и весь его читает потихоньку.

Просто особенности того, как разные системы скачивают файлы. Хотя, ИМХО, вариант макбука кажется лично мне неоптимальным.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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