MongoDB разонравилась
Очень много раньше хорошего слышал про «Монгу», прочитал по ней пару книг, даже пытался использовать в рабочих проектах. Всё, теперь ни ногой.
Во-первых, видел как база два раза разлетелась и больше не собиралась. Очень неприятно, одну из коллекций спасти не удалось.
Во-вторых, «Монга» до сих пор не умеет блокировать при записи только одну строку в коллекции, лочит всю базу, причём до версии 2.2 было ещё хуже — на записи срабатывала глобальная блокировка. В будущем предполагается блокировка на уровне коллекции, а когда это будет делаться на уровне строки — неизвестно.
Естественно, если кто-то один пишет в базу, остальные ждут — читать и писать нельзя. Кроме того, блокировка на запись имеет приоритет. На производительности, конечно, это сказывается всё не лучшим образом.
Довольно частое явление, к сожалению. У меня был один проект на монге, сборщик логов по syslog. Каждый раз как возникали проблемы с дисковой подсистемой/падением VM/etc база была повреждена настолько, что проще было начать с чистого листа.
А репликации на что? Или база, если рушится, то и на слейвах тоже?
MongoDB имеет смысл только когда используется Replica Set. Насчёт блокировки — не уверен. Очень шустро работает на ней Workflow процессор на ~2500000 операций в день, атомарные операции выполняю с помощью FindAndModify.
Комментарий для .silent:
Репликация у нас есть.
Комментарий для clops:
У нас используется.
В чём не уверен? Я там ссылку на документацию дал.
Нагрузка нагрузке рознь. Если операции записи редкие — неудивительно.
А чем? ;)
А какие впечатления от CouchDB?
а HandlerSockets не хотите попробовать?
Комментарий для roman.yankovsky.me:
Пока не пробовали. Думаю про Elliptics ( http://www.ioremap.net/projects/elliptics/ ).
Комментарий для Павел:
Не знаю пока, там же все недостатки MySQL в полный рост — отсутствие нормальной мастер↔мастер репликации, например. Вот думаем про Elliptics.
Комментарий для Евгения Степанищева:
Сергей Аверин из badoo только что рассказывал как они хранят сессии и проч. в handlersockets. По времени в одном из кейсов получается даже сопоставимо с мемкешем. И да, mysql master-master у них вроде как при этом используется. В общем если уже есть инфраструктура mysql то вполне вариант попробовать.
Женя, поговори про элиптикс с бывшими коллегами из Яндекса. Мы тут его конкретно наелись. Т. е. он конечно работает, но его нужно уметь.
С монгой тоже не все гладко, но не на столько
Комментарий для mixael.ru:
Регулярно говорю :) С Лёней Мовсесяном, например :) Мы уже тоже успели понаступать на грабли, но бывшие коллеги не дают опустить руки.
Комментарий для Евгения Степанищева:
А, ну ок) А внезапное отключение датацентров уже репетировал?
Комментарий для mixael.ru:
Рано ещё :)
Кладем в нее только кеши :-)
А про Эллиптикс — работает, конечно! Но нужен вдумчивый администратор, чтобы его правильно готовить.
А когда планируется исправить такое поведение с блокировками никто не в курсе?
Комментарий для guest:
В 2.4 ещё, вроде, не обещают. Что дальше — не знаю, посмотрите их road map.
От блокировок спасае шардинг, разлетание базы это ппц