ФорумПрограммированиеPHP для идиотов → Принцип обработки и хранения изображений в промышленных масштабах

Принцип обработки и хранения изображений в промышленных масштабах

  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 18 мая 2011 г. 8:06, спустя 26 минут 7 секунд

    сколько в одной папке должно быть файлов для нормальной и быстрой их обработки?

    вряд ли можно назвать какую-то чёткую границу. лучше обратим внимание на то как файлы будут складываться
    например есть миллион файлов. у каждого из файлов есть несколько миниатюр (например 3). в итоге у нас получится четыре миллиона файлов.

    первое что приходит на ум - это раскидать файлы по папкам

    images/
    1/
    vesna_v_lesu.jpg
    vesna_v_lesu_150x120.jpg
    vesna_v_lesu_200x150.jpg
    vesna_v_lesu_400x300.jpg
    2/
    vesna_v_lesu.jpg
    vesna_v_lesu_150x120.jpg
    vesna_v_lesu_200x150.jpg
    vesna_v_lesu_400x300.jpg

    при такой схеме у нас будет миллион папок, что тоже не труЪ
    можно сгруппировать папки
    images/
    0000/
    1/
    2/

    0001/
    1001/
    1002/


    получится тысяча папок, в каждой из которых тысяча подпапок. всё нормально, и даже когда файлов станет слишком много мы сможем перенести их на другой сервер - просто перенести чётные папки, и задать правило
    RewriteRule ^(images/\d{3}[1,3,5,7,9].*) http://img1.server.com/$1
    RewriteRule ^(images/\d{3}[0,2,4,6,8].*) http://img2.server.com/$1

    Кстати, файлы картинок лучше сразу вынести на отдельный поддомен, для статики.
    не всё полезно, что в swap полезло
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 18 мая 2011 г. 8:47, спустя 40 минут 38 секунд

    еще замечание между делом. если используется mod_rewrite или его аналог, мы можем:
    - менять схему хранения по мере роста проекта не парясь насчет дохлых ссылок.
    - можем не вообще не усложнять URL папками, а возложить эту работу на рерайтинг.
    http ://img.mysite.com/10234m.jpg => /img/preview/middle/10/234.jpg
    ιιlllιlllι унц-унц
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 18 мая 2011 г. 10:55, спустя 2 часа 8 минут 19 секунд

    artoodetoo, и в чём плюсЫ?
  • kiwi

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 18 мая 2011 г. 11:14, спустя 18 минут 35 секунд

    по группе и user_id
    /photos/group/user_id/фотки тут
    /photos/group/user_id/album_id/фоткитут

    1 группа, скажем, 2-5к пользователей или больше.
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 18 мая 2011 г. 11:25, спустя 10 минут 51 секунду

    /photos/group/user_id/фотки тут
    /photos/group/user_id/album_id/фоткитут

    пользователь меняет группу или перекидывает фотку в другой альбом - и чо?
    не всё полезно, что в swap полезло
  • kiwi

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 18 мая 2011 г. 11:29, спустя 4 минуты 33 секунды

    пользователь не меняет группу, группа высчитывается сама по user_id. То есть, скажем, все юзеры, у кого id <=5000 это всегда 1 группа.
    переместил фотку в другой альбом - ичо? там album_id, можно конечно физически её тоже перекинуть, ну, либо избавиться от album_id
  • kiwi

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 18 мая 2011 г. 11:41, спустя 11 минут 30 секунд

    нет, с альбомами в таком случае хуйня некрасивая, c юзерами ок
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 19 мая 2011 г. 13:01, спустя 1 день 1 час 19 минут


    artoodetoo, и в чём плюсЫ?

    мне казалось я как раз описал плюсы :)

    браузеру и пользователю пофигу на реальную структуру папок. это чисто внутреннее дело сервера. будем считать, что проект запускается с простых решений и поначалу не сильно загружен. структура папок хранения будет соответствующая, нахрена париться хайлоадом, если у тебя 1000 уников в день!
    потом, допустим, нам попёрло и нагрузки нарастают. мы оптимизируем что-то, распараллеливаем и т.д. нам при этом не нужна головная боль ещё и с дохлыми ссылками! у нас внешне все по старому, адреса решаем через реврайтинг.
    потом приходит кто-то очень умный и говорит: если мы добавим папки пользовательских групп, то волосы станут пушистее, а хрен будет стоять как штык. я бы такому умному пропнул, но манагер, допустим ему поверил. мы перестраиваем папки,а внешние урлы опять оставляем как есть, за счет реврайтинга
    и т.д. это я называю ООП
    ιιlllιlllι унц-унц
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 19 мая 2011 г. 13:32, спустя 31 минуту 19 секунд

    artoodetoo, ааа, ты об этом, да неплохо

Пожалуйста, авторизуйтесь, чтобы написать комментарий!