Очень много раньше хорошего слышал про «Монгу», прочитал по ней пару книг, даже пытался использовать в рабочих проектах. Всё, теперь ни ногой.
Во-первых, видел как база два раза разлетелась и больше не собиралась. Очень неприятно, одну из коллекций спасти не удалось.
Во-вторых, «Монга» до сих пор не умеет блокировать при записи только одну строку в коллекции, лочит всю базу, причём до версии 2.2 было ещё хуже — на записи срабатывала глобальная блокировка. В будущем предполагается блокировка на уровне коллекции, а когда это будет делаться на уровне строки — неизвестно.
Естественно, если кто-то один пишет в базу, остальные ждут — читать и писать нельзя. Кроме того, блокировка на запись имеет приоритет. На производительности, конечно, это сказывается всё не лучшим образом.
Комментарии 20
Довольно частое явление, к сожалению. У меня был один проект на монге, сборщик логов по syslog. Каждый раз как возникали проблемы с дисковой подсистемой/падением VM/etc база была повреждена настолько, что проще было начать с чистого листа.
Репликация у нас есть.
У нас используется.
В чём не уверен? Я там ссылку на документацию дал.
Нагрузка нагрузке рознь. Если операции записи редкие — неудивительно.
А чем? ;)
Пока не пробовали. Думаю про Elliptics ( http://www.ioremap.net/projects/elliptics/ ).
Не знаю пока, там же все недостатки MySQL в полный рост — отсутствие нормальной мастер↔мастер репликации, например. Вот думаем про Elliptics.
Сергей Аверин из badoo только что рассказывал как они хранят сессии и проч. в handlersockets. По времени в одном из кейсов получается даже сопоставимо с мемкешем. И да, mysql
С монгой тоже не все гладко, но не на столько
А, ну ок) А внезапное отключение датацентров уже репетировал?
Рано ещё :)