upload module: aborted uploading file (4Gb barrier)
Valery Kholodkov
valery+nginxru at grid.net.ru
Thu May 21 19:45:03 MSD 2009
Valery Kholodkov пишет:
> Rush пишет:
>> Спасибо всем, кто откликнулся ! Не знаю как ответить всем
>> откликнувшимся сразу - отвечу сам себе, авось заметите:
>>
>> 1. Потери в сети 0% гарантированно, у меня прямой гигабытный линк на
>> сервант Intel(R) Xeon(R) CPU E5410 @ 2.33GHz 8Gb + какая то нихреновая
>> корзина на 10 террабайт. Может слишком быстрый сервант и nginx'у не
>> нравится что 50метров в секунду летит ? Сомневаюсь, думаю в рамблерах
>> всяко покруче.
>> 2. abort случается и при скорости 1 гигабит, и 100Мбит, и даже 10 (!)
>> 3. Обламываются только большие файлы (>2Gb) и в самом конце закачки
>> (??? почему ???)
>
> Насколько я понимаю в современных интернетах, то в них по-видимому есть
> две причины этому:
>
> 1) Загрузка забила очередь некоторого сетевого устройства и оно
> отбрасило часть пакетов;
> 2) Пока загружали файл произошло рассогласование маршрутов и часть
> пакетов потерялась.
>
> Что касается размера, то это, возможно, объясняется теорией больших
> чисел. А именно, если вероятность потери пакета составляет, скажем, 1 на
> миллион, то для загрузок файлов, состоящих из более чем миллиона пакетов
> она будет систематически реализоваться.
s/теорией больших чисел/законом больших чисел/
Вообще, для решения этой проблемы я написал возобновляемую загрузку:
http://github.com/vkholodkov/nginx-upload-module/tree/partial-upload
Клиентский код пока не могу открыть, потому не я его писал. Но он
достаточно прост и состоит из кода, который использует Google Gears и
класс Blob.
--
Best regards,
Valery Kholodkov
More information about the nginx-ru
mailing list