Re: Неблокирующее удаление файлов возможно?

Valery Kholodkov valery+nginxru на grid.net.ru
Пн Янв 24 20:58:30 MSK 2011


----- Dmitry Dedukhin <dedukhin at mail.ru> wrote:
> 
> Перед удалением файла мы открываем его в другом (вспомогательном) 
> процессе, затем удаляем в рабочем процессе - он остается открыт в 
> вспомогательном процессе и физически удаления в рабочем процессе не 
> происходит, т.е. блокировка минимальна.
> Затем мы закрываем файл в вспомогательном процессе - происходит 
> физическое удаление, но блокировка вспомогательного процесса нам не 
> важна, т.к. он не обслуживает соединения.
> Чисто теоретически, будет ли работать такая схема?

Теоретически будет. Но если уж так хочется асинхронности, то проще написать небольшое fastcgi-приложение и делегировать ему все удаления.

> 
> 24.01.2011 12:59, Igor Sysoev пишет:
> > On Mon, Jan 24, 2011 at 12:56:43PM +0300, Михаил Монашёв wrote:
> >
> >> Здравствуйте, Дмитрий.
> >>
> >> в nginx есть aio. Но не знаю, работает ли оно с unlink.
> > Нет, единственное решение - вынос этой операции с специализированный
> > трэд или процесс.
> >
> >> DD>  Сейчас, DAV-модуль вызывает unlink и на больших файлах воркер-процесс
> >> DD>  блокируется на ощутимое время.
> >> DD>  Я не в теме, поэтому спрашиваю у сообщества, есть ли вообще в природе
> >> DD>  неблокирующее удаление файлов под *nix?

-- 
Regards,
Valery Kholodkov


Подробная информация о списке рассылки nginx-ru