Поиск:

Ответ в темуСоздание новой темы Создание опроса
> много файлов (миллионы) в одном каталоге, Допустимо ли это? 
:(
    Опции темы
1234ru
Дата 18.3.2010, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 26.8.2007

Репутация: нет
Всего: -1



Планируется вещь, отдаленно напоминающая фотохостинг.
Количество хранимых фотографий может достигать нескольких миллионов (а, может, и больше). Есть пара вопросов: 
1. Допустимо ли при таких объемах сваливать все фотографии в один каталог? Или же надо как-то делить?
(Лучше ли будет, если сделать подкаталоги, количество которых будет на пару порядков меньше, чем количество фотографий?)

2. Влияет ли на производительность длина имени файла фотографии? Т.е. есть ли разница 398214.jpg или solntse-vstalo-kakaya-prelest.jpg ?

Это сообщение отредактировал(а) 1234ru - 18.3.2010, 23:55
PM MAIL   Вверх
Fortop
Дата 19.3.2010, 00:56 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



Цитата(1234ru @  18.3.2010,  22:54 Найти цитируемый пост)
1. Допустимо ли при таких объемах сваливать все фотографии в один каталог?

нет.

Цитата(1234ru @  18.3.2010,  22:54 Найти цитируемый пост)
Или же надо как-то делить?

Надо делить, по пользователям/датам/хешам.

Цитата(1234ru @  18.3.2010,  22:54 Найти цитируемый пост)
2. Влияет ли на производительность длина имени файла фотографии? Т.е. есть ли разница 398214.jpg или solntse-vstalo-kakaya-prelest.jpg ?

Это последнее на что нужно смотреть.
Так что - не играет роли. 


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
1234ru
Дата 19.3.2010, 02:05 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 26.8.2007

Репутация: нет
Всего: -1



Цитата
Надо делить, по пользователям/датам/хешам.

Понятно, спасибо.
Я так понимаю, при делении нужно стремиться, чтобы не было перекоса, т.е.
число подкаталогов = среднее число файлов в каждом каталоге = sqrt(общее число файлов)
Верно ли это?
PM MAIL   Вверх
Fortop
Дата 19.3.2010, 04:25 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



Есть вполне конкретные ограничения файловых систем на наличие файлов в одном каталоге. Следует исходить из этого.

Используя всего лишь 1ну латинскую букву или цифру в названии каталогов, при уровне вложенности равной 6ти
будет возможно хранить 36^6 = 2 176 782 336 файлов.
Этого достаточно для планируемого проекта? smile

Если недостаточно увеличьте глубину до 12 и храните до 4 000 000 трлн. файлов.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
1234ru
Дата 19.3.2010, 04:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 26.8.2007

Репутация: нет
Всего: -1



Цитата
Есть вполне конкретные ограничения файловых систем на наличие файлов в одном каталоге

Какие они, эти ограничения?

Цитата
Используя всего лишь 1ну латинскую букву или цифру в названии каталогов, при уровне вложенности равной 6ти ... 

Не, вложенность 6 не пойдет. Слишком много, потом будет неудобно работать (да и другие причины есть).
Я имел в виду, если вложенность два, т.е. все файлы не в одном каталоге, а разбиты по подкаталогам (в смысле, не /dir/files..., а /dir/subdir/files... ).
При нескольких миллионах файлов можно сделать тысячу каталогов и хранить по тысяче файлов в каждом. Так нормально будет?

PM MAIL   Вверх
Fortop
Дата 19.3.2010, 06:22 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



Цитата(1234ru @  19.3.2010,  03:29 Найти цитируемый пост)
Какие они, эти ограничения?

Разные для каждой файловой системы. Конкретные цифры лучше узнавать в гугле.

Цитата(1234ru @  19.3.2010,  03:29 Найти цитируемый пост)
Не, вложенность 6 не пойдет. Слишком много, потом будет неудобно работать (да и другие причины есть).
Я имел в виду, если вложенность два, т.е. все файлы не в одном каталоге, а разбиты по подкаталогам (в смысле, не /dir/files..., а /dir/subdir/files... ).
При нескольких миллионах файлов можно сделать тысячу каталогов и хранить по тысяче файлов в каждом. Так нормально будет?

Я открою секрет, физическое местоположение файла и то под каким соусом он будет доступен через веб - это абсолютно разные и слабо-пересекающиеся вещи.

Например, файл доступный по адресу
http://mysite.com/user/photo/album1/img1.jpg
может находиться где угодно на диске и иметь имя например - bsfdsfwerw2


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
1234ru
Дата 19.3.2010, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 26.8.2007

Репутация: нет
Всего: -1



Цитата(Fortop @  19.3.2010,  06:22 Найти цитируемый пост)
Я открою секрет, физическое местоположение файла и то под каким соусом он будет доступен через веб - это абсолютно разные и слабо-пересекающиеся вещи.

Знаю. Все равно 
Цитата
вложенность 6 не пойдет. Слишком много, потом будет неудобно работать (да и другие причины есть).

PM MAIL   Вверх
gcc
Дата 19.3.2010, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: нет
Всего: 17



1234ru, MogileFS распределенная файловая система
PM WWW ICQ Skype GTalk Jabber   Вверх
IgorIV
Дата 20.3.2010, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 7.9.2009

Репутация: 2
Всего: 8



Хранить-то может и можно миллионы файлов на одном сервере, вот только как их будет отдавать веб-сервер. Надо изначально закладывать расширяемость на несколько серверов.
PM MAIL   Вверх
xZ0RGx
Дата 26.3.2010, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 5.6.2009

Репутация: нет
Всего: нет



Во-первых такие вещи надо проектировать а не от балды делать.

1) Для начала выберите ФС и изучите ее возможности.
2) У вас могут банально кончится inode.
3) Как правило в ядре есть такие параметры как max_open_files

PM MAIL   Вверх
IgorIV
Дата 26.3.2010, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 7.9.2009

Репутация: 2
Всего: 8



xZ0RGx
1 а че выбирать. UFS2

Код

df -i /mnt/ad8
Filesystem      1K-blocks       Used             Avail              Capacity   iused        ifree             %iused    Mounted on
/dev/ad8s1d   473015558   313311344   121862970    72%         1049355   60091635    2%          /mnt/ad8

Использованно 1 миллион, свободно - 60 миллионов
3 Вот с этим надо экспериментировать. Просто система работающая в роли шлюза - 788 открытых файлов. Хотя нет, вру smile Система работает как тестовая площадка, где все понапиханно.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.1283 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.