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