Вопрос по будущему кэшированию.

Alex Vorona voron at amhost.net
Mon May 5 01:27:25 MSD 2008


Kostya Alexandrov пишет:
> Так селект укажет готовность только когда есть прочитанные данные
> 
> Alex Vorona wrote:
>> Kostya Alexandrov пишет:
>>> А нельзя вместо aio открыть файл, и "селектом" определить что 
>>> дескриптор готов для чтения?
>>>
>>> Alex Vorona wrote:
>>>> Igor Sysoev пишет:
>>>>> On Sun, May 04, 2008 at 01:22:07PM +0300, Alex Vorona wrote:
>>>>>
>>>>>> Игорь, а использование SF_NODISKIO на FreeBSD не планируется?
>>>>>
>>>>> Проблема в том, что от собственно SF_NODISKIO толку мало - нужно 
>>>>> ещё как-то
>>>>> прочитать эти данные в память. Я пока вижу только один вариант - 
>>>>> при получении
>>>>> EBUSY читать с помощью aio_read() пару байт и по получении сообщения о
>>>>> завершённости операции снова вызвать sendfile.
>>>>>
>>>>
>>>> то есть использовать aio_read как неблокирующуюся подчитывалку куска 
>>>> данных с диска в кэш ОС? Почему именно 2 байта?
>>>>
>>>>
>>>>
>>
>> нужно не иметь готовый для чтения дескриптор, а прочитать с диска 
>> данные, не заблокировавшись на чтении, и получить готовый дескриптор с 
>> данными в кэше для передачи этих данных через уже незаблокирующийся на 
>> диске sendfile.
>>
кто и как будет читать эти данные? То, что данных в кэше уже нет, говорит 
предыдущий sendfile, завершившийся с EBUSY. Данные надо прочитать с диска, но не 
блокироваться на диске.

select имхо не очень вписывается в событийную работу nginx. И что-то 
подсказывает мне, что на чтение дескриптор файла с диска всегда будет готов.





More information about the nginx-ru mailing list