• Как хранить 3 000 000 картинок и 100 000 файлов?

    Ну надо смотреть на скорость ротации, конечно. Но провести процедуру компакта раз в полгода с небольшой деградацией производительности/надежности мне не кажется проблемой.
  • Как хранить 3 000 000 картинок и 100 000 файлов?

    про то что в монге есть шардинг я слышал, но вот в деле не видел не укого, вы пробовали с ним работать?

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

    И вопрос еще вопрос про реплику: «на запись» доступен только один из серверов — мастер, а второй только на чтение? в случае сбоя с мастером, смена роли происходит автоматически? если да, то как об этом узнает приложение, ведь оно должно теперь «аплоадить» данные на другой хост

    Об этом стоит почитать в документации монгодб. Если коротко — на запись доступен только primary, failover и выбор нового primary происходит автоматически. Приложению сообщаются сразу все адреса всех машин репликасета, оно внутри разбирается, куда писать, откуда читать.

    В моем кейсе такой вариант (не удалять) не приемлем

    А что за кейс такой? Есть у меня определенные сомнения.

    я правильно понял, что при удалении данные просто помечаются как удаленные, но фактически место остается занятым, и правильно ли я понял что «компактить базу» это как раз и производить физическое удаление данных

    Нет, на «помеченное» место вполне пишутся новые данные. Т.е. происходит то, что в ФС называется «фрагментация» данных, что приводит к снижению скорости чтения. «компактить базу» — это проводить «дефрагментацию».

    в момент «компактиния» (простите за это слово) база лочится или с ней происходят другие не хорошие вещи?

    лочится. поэтому компактим секондари (слейвы), потом заставляем мастер стать слейвом (другой слейв станет мастером) и компактим его. процедура происходит без перерыва в обслуживании.
  • Как хранить 3 000 000 картинок и 100 000 файлов?

    Привет, на видео записано моё выступление, кстати мы планируем попробовать давать свой кластер для публики за разумную денежку. Подробности — тут: unistorage.ru

    Я отвечу здесь на вопросы, которые тредстартер задавал в личку.

    > Сколько объектов в вашем mongodb (gridfs) кластере.
    Уникальных объектов (в нашей системе ресайз картинки, реэнкодинг видео и т.д. порождает новый объект) — больше 10 млн.

    > Что из себя представляет сам кластер (в общих чертах какое железо и сколько машин).
    Основной репликасет — две машины в конфигурации 1xX3430, 8gb, 8x2tb raid6 (железный)
    Оффсайт бэкапы — конфигурация особо не важна, член репликасета с нулевым приоритетом.

    > Как монга относитится к распределению узлов кластера по разным дата-центрам (т.е. не самая стабильная сеть и возможные долговременные потери связи между узлами).
    Мы в таком режиме не используем (оффсайт реплика есть, но она в режиме write-only и оплога хватает, чтобы всегда быть ок).
    Но вообще подозреваю, что особых проблем быть не должно. Единственная тонкость — до последнего времени стандартным методом в монговских драйверах было «fire and forget». Т.е. ты не мог быть уверен, получая «ок» из запроса, что объект уже доступен хотя бы другим сессиям, не говоря уж про фсинк на диск или репликацию. Сейчас по-умолчанию стоит «safe» режим, когда при создании документа метод в драйвере не вернет результат, пока данные реально не разойдутся по серверам.

    > При удалении документа из монги, она фактически место на диске освобождает? или база постоянно пухнет?
    Место на диске — не освобождает. Место в датафайлах — освобождается. При активном удалении и перезаписи периодически требует компактить базу. Мы решаем этот вопрос в основном тем, что не удаляем данные. :)
  • Двухсимвольные домены vs IE как ya.ru ставит куки?

    @Ramm Автор вопроса
    blo, не выставлять домен явно — работает, конечно. и в IE такую куку видят все поддомены.

    Только вот какая печаль — остальные браузеры такую куку не считают распространяющейся на поддомены (по стандарту кука без указания домена — кука ТОЛЬКО ТЕКУЩЕГО домена). Поэтому приходится городить огород, и выставлять куку на '' для IE и на .domain.ru для всех остальных.
  • Двухсимвольные домены vs IE как ya.ru ставит куки?

    @Ramm Автор вопроса
    Да, твоя правда.

    Смотреть на виндовой машине сюда:
    res://urlmon.dll/ietldlist.xml

    то что tld — геодомены, то что domain — исключения из правил. Для зоны .ru туда попадают dj.ru, km.ru, nm.ru, ot.ru, ya.ru

    Вот же блин какой.

    Инфу взял тут: blogs.msdn.com/b/ieinternals/archive/2009/09/19/private-domain-names-and-public-suffixes-in-internet-explorer.aspx
  • Двухсимвольные домены vs IE как ya.ru ставит куки?

    @Ramm Автор вопроса
    Может и испытывают, просто не рассказывают? :)
  • Двухсимвольные домены vs IE как ya.ru ставит куки?

    @Ramm Автор вопроса
    Microsoft говорит про ie6 и патчинг реестра у посетителей, это не очень актуально.

    А вот про исключения — охренеть. 8-0