ПРОЕКТЫ 


  АРХИВ 


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: Re[5]: Отдача больших файлов



Ну хорошо, а если сравнить с вариантом, когда каждый файл целиком лежит на одном диске?

----- Original Message ----- From: "Igor Sysoev" <is@xxxxxxxxxxxxx>
To: <nginx-ru@xxxxxxxxx>
Sent: Wednesday, April 01, 2009 11:16 AM
Subject: Re: Re[5]: Отдача больших файлов


On Wed, Apr 01, 2009 at 10:26:15AM +0400, Dmitry Dedukhin wrote:

1. Для того, чтобы один файл отдавался более чем одним бэкендом-хранилищем
(особенно в случае нескольких супер-популярных файлов).
2. Для того, чтобы запросы с Range'ем с большей вероятностью использовали
разные бэкенды (т.е. в случае многопоточного скачивания скорость будет
выше).

Понятно, что для небольших файлов (меньше размера одного чанка) он всё
равно будет лежать на одном хранилище.

По идее, это должно работать, если бэкенды заняты толькоэтим популярным
файлом, но на деле к ним же ещё будут приходить куча непопулярных запросов.

----- Original Message ----- From: "Igor Sysoev" <is@xxxxxxxxxxxxx>
To: <nginx-ru@xxxxxxxxx>
Sent: Wednesday, April 01, 2009 9:24 AM
Subject: Re: Re[5]: Отдача больших файлов


On Wed, Apr 01, 2009 at 08:05:18AM +0400, Dmitry Dedukhin wrote:

>Как вариант эффективной раздачи больших файлов можно использовать схему
>бэкенд(хранилище, рэйд-массив)+фронтенд(сервер, с которым "общается"
>пользователь).
>После загрузки на фронтенд каждый файл разбивается на небольшие куски
>(2-5МБ), каждый кусок кладется на случайно выбранный бэкенд,
>идентификатором файла является его хэш (md5 например). Информация о
>расположении кусков хранится в простейшем случае в центральной базе (для
>высоконагруженного проекта имеет смысл использовать распределенную БД или
>её аналог).
>При скачивании файла nginx запрашивает информацию о расположении всех
>кусков (или части в случае запроса с заголовком Range) и начинает >отдавать
>файл, запрашивая каждый кусок с демона, висящего на каждом бэкенде.

А зачем файл разбивать ?


--
Игорь Сысоев
http://sysoev.ru


--
Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.