ПРОЕКТЫ 


  АРХИВ 


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: upload module: aborted uploading file (4Gb barrier)



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



 




Copyright © Lexa Software, 1996-2009.