Вопрос по будущему кэшированию.
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