ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



----- Dmitry Dedukhin <dedukhin@xxxxxxx> wrote:
> 
> Ну в общем-то да, если будет вспомогательный процесс только для удаления 
> (не обслуживающий соединения), то разницы нет, будет ли он закрывать 
> файл после удаления, или удалять натурально.
> Но как в таком случае отлавливать ошибки удаления?

У этой задачи два решения:

1) Файл удаляется синхронно по отношению к запросу клиента, клиент, 
соответственно, ждет, но гарантированно получает результат операции;
2) Запрос на удаление помещается в очередь, клиенту отдается позитивный ответ, 
а удаление выполняет другой процесс. Все ошибки записываются в базу или 
отправляются по почте в какой-нибудь "отдел эксплуатации".

> 
> 25.01.2011 12:18, Igor Sysoev пишет:
> > On Tue, Jan 25, 2011 at 12:11:56PM +0300, Dmitry Dedukhin wrote:
> >
> >> Ну я про реализацию DAV в nginx толкую :)
> >> Конечно, самый простой вариант, подсказанный Валерием - написать
> >> простенькое FCGI приложение, которое будет удалять файлы не блокируя
> >> воркер-процесс.
> > Я про последовательность: открываем файл в другом процесс, закрываем
> > в воркере, удаляем в другом. Почему не просто: закрываем файл в воркере,
> > удаляем в другом ?
> >
> >> 25.01.2011 11:55, Igor Sysoev пишет:
> >>> On Mon, Jan 24, 2011 at 01:39:22PM +0300, Dmitry Dedukhin wrote:
> >>>
> >>>> Перед удалением файла мы открываем его в другом (вспомогательном)
> >>>> процессе, затем удаляем в рабочем процессе - он остается открыт в
> >>>> вспомогательном процессе и физически удаления в рабочем процессе не
> >>>> происходит, т.е. блокировка минимальна.
> >>>> Затем мы закрываем файл в вспомогательном процессе - происходит
> >>>> физическое удаление, но блокировка вспомогательного процесса нам не
> >>>> важна, т.к. он не обслуживает соединения.
> >>>> Чисто теоретически, будет ли работать такая схема?
> >>> По идее - да. А почему бы просто не закрывать файл и передавать
> >>> его имя в другой процесс для удаления ?
> >>>
> >>>> 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?
> >>>>>>
> >>>>>> -- 
> >>>>>>
> >>>>>> С уважением,
> >>>>>> Михаил Монашёв
> >>>>>> mailto:postmaster@xxxxxxxxxxxxx
> >>>>>> ICQ# 166233339
> >>>>>> http://michael.mindmix.ru/
> >>>>>> Без бэкапа по жизни.
> >>>>>>
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> nginx-ru mailing list
> >>>>>> nginx-ru@xxxxxxxxx
> >>>>>> http://nginx.org/mailman/listinfo/nginx-ru
> >>>> _______________________________________________
> >>>> nginx-ru mailing list
> >>>> nginx-ru@xxxxxxxxx
> >>>> http://nginx.org/mailman/listinfo/nginx-ru
> >>
> >> _______________________________________________
> >> nginx-ru mailing list
> >> nginx-ru@xxxxxxxxx
> >> http://nginx.org/mailman/listinfo/nginx-ru
> 
> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://nginx.org/mailman/listinfo/nginx-ru

-- 
Regards,
Valery Kholodkov
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.