MongoDB разонравилась

Очень много раньше хорошего слышал про «Монгу», прочитал по ней пару книг, даже пытался использовать в рабочих проектах. Всё, теперь ни ногой.

Во-первых, видел как база два раза разлетелась и больше не собиралась. Очень неприятно, одну из коллекций спасти не удалось.

Во-вторых, «Монга» до сих пор не умеет блокировать при записи только одну строку в коллекции, лочит всю базу, причём до версии 2.2 было ещё хуже — на записи срабатывала глобальная блокировка. В будущем предполагается блокировка на уровне коллекции, а когда это будет делаться на уровне строки — неизвестно.

Естественно, если кто-то один пишет в базу, остальные ждут — читать и писать нельзя. Кроме того, блокировка на запись имеет приоритет. На производительности, конечно, это сказывается всё не лучшим образом.

Поделиться
Отправить
20 комментариев
Lex Rivera (lex.io)

Во-первых, видел как база два раза разлетелась и больше не собиралась. Очень неприятно, одну из коллекций спасти не удалось

Довольно частое явление, к сожалению. У меня был один проект на монге, сборщик логов по syslog. Каждый раз как возникали проблемы с дисковой подсистемой/падением VM/etc база была повреждена настолько, что проще было начать с чистого листа.

.silent

А репликации на что? Или база, если рушится, то и на слейвах тоже?

clops

MongoDB имеет смысл только когда используется Replica Set. Насчёт блокировки — не уверен. Очень шустро работает на ней Workflow процессор на ~2500000 операций в день, атомарные операции выполняю с помощью FindAndModify.

Евгений Степанищев (bolknote.ru)

Комментарий для .silent:

А репликации на что? Или база, если рушится, то и на слейвах тоже?

Репликация у нас есть.

Евгений Степанищев (bolknote.ru)

Комментарий для clops:

MongoDB имеет смысл только когда используется Replica Set.

У нас используется.

Насчёт блокировки — не уверен

В чём не уверен? Я там ссылку на документацию дал.

Очень шустро работает на ней Workflow процессор на ~2500000 операций в день, атомарные операции выполняю с помощью FindAndModify.

Нагрузка нагрузке рознь. Если операции записи редкие — неудивительно.

deadem

теперь не ногой.

А чем? ;)

Roman Ryaboy (roman.yankovsky.me)

А какие впечатления от CouchDB?

Павел

а HandlerSockets не хотите попробовать?

Евгений Степанищев (bolknote.ru)

Комментарий для roman.yankovsky.me:

А какие впечатления от CouchDB?

Пока не пробовали. Думаю про Elliptics ( http://www.ioremap.net/projects/elliptics/ ).

Евгений Степанищев (bolknote.ru)

Комментарий для Павел:

а HandlerSockets не хотите попробовать?

Не знаю пока, там же все недостатки MySQL в полный рост — отсутствие нормальной мастер↔мастер репликации, например. Вот думаем про Elliptics.

Павел

Комментарий для Евгения Степанищева:

Сергей Аверин из badoo только что рассказывал как они хранят сессии и проч. в handlersockets. По времени в одном из кейсов получается даже сопоставимо с мемкешем. И да, mysql master-master у них вроде как при этом используется. В общем если уже есть инфраструктура mysql то вполне вариант попробовать.

mixael.ru

Женя, поговори про элиптикс с бывшими коллегами из Яндекса. Мы тут его конкретно наелись. Т. е. он конечно работает, но его нужно уметь.
С монгой тоже не все гладко, но не на столько

Евгений Степанищев (bolknote.ru)

Комментарий для mixael.ru:

Регулярно говорю :) С Лёней Мовсесяном, например :) Мы уже тоже успели понаступать на грабли, но бывшие коллеги не дают опустить руки.

mixael.ru

Комментарий для Евгения Степанищева:

А, ну ок) А внезапное отключение датацентров уже репетировал?

Евгений Степанищев (bolknote.ru)

Комментарий для mixael.ru:

Рано ещё :)

Чапоргин Антон

Кладем в нее только кеши :-)

Чапоргин Антон

А про Эллиптикс — работает, конечно! Но нужен вдумчивый администратор, чтобы его правильно готовить.

guest

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

Евгений Степанищев (bolknote.ru)

Комментарий для guest:

В 2.4 ещё, вроде, не обещают. Что дальше — не знаю, посмотрите их road map.

Vlad

От блокировок спасае шардинг, разлетание базы это ппц

Популярное