Re: Re[5]: Отдача больших файлов

Dmitry Dedukhin dedukhin at mail.ru
Wed Apr 1 10:26:15 MSD 2009


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

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

----- Original Message ----- 
From: "Igor Sysoev" <is at rambler-co.ru>
To: <nginx-ru at sysoev.ru>
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






More information about the nginx-ru mailing list