to post messages and comments.

в версии 3.4 монга добавило слово linearizable для чтения
чтобы быть увереным что читаем с мастера! и данные не проебутся если этот мастер сдохнет!

В ТРИ СУКА ЧЕТЫРЕ

Продолжаем наш марафон уриной по монговысеру. Многое мы с вами уже знаем, но пора добавить в копилку ещё немного прекрасного.

on 32-bits systems led to losing all data silently after some 3GB
losing all data silently after some 3GB

cryto.net

Ха-ха, монгоблядки начинают понимать, что надо изобретать базу.
There was a lot of talk about schemas at the conference. For a "schema-less" database, as MongoDB has been promoted, this may seem odd but it does appear that MongoDB, Inc has re-discovered that a regular structure to the documents stored in the database can be helpful for managing the evolution of a database.
Хотя там всё такое же: и индексы, и валидаторы.

compose.io

Я писал как-то, что мы избавились от жанги в проекте. Это было первым важным, победным шагом на пути к здоровью сервиса. Сегодня мы сделали следующий — погасли последние инстансы монги, только данные вживых на крайний случай. Осталось сменить mysql на постгрес, и можно будет говорить о СТАБИЛЬНОСТИ. Ура, товаrищи!

Кто там хотел ACID и «нормальное хранилище вместо основанного на mmap-е» в MongoDB?
Встречайте MongoDB 2.8.0 rc0 с подключаемыми storage engine-ами, и, в качестве «первого пробного камня» — WiredTiger, от архитекторов Berkeley DB в Sleepycat Software (купленном потом Oracle-ом): blog.mongodb.org

Надо запомнить сегодняшний кейс для собеседований.
Есть монгоколлекция на 500кк записей (содержат информацию о некоторых событиях) для кучи объектов с полями obj_id, timestamp и т.д. Есть объект (obj_id = 1), для которого в этой коллекции лежит 10кк записей. Задача: брать из этих десяти миллионов по 50к для аггрегации. Сложность: skip() дичайше сканит все предыдущие события, т.е. чем больше число, переданное в skip(), тем дольше работает вся кверя. Дискас.

MongoDB — это быстро!
2014-06-16T19:04:03.772+0000 [conn128] query buzzoola.stat_tuple query: { $query: { ev_id: 4273 }, $orderby: { timestamp: 1 } } planSummary: IXSCAN { ev_id: 1, timestamp: 1 } cursorid:125433744307 ntoreturn:50000 ntoskip:9138532 nscanned:9144499 nscannedObjects:9144498 keyUpdates:0 numYields:388205 locks(micros) r:714168583 nreturned:5966 reslen:4194604 5091311ms

Кто не понимает, что произошло, подсказываю
IXSCAN... но тут внезапно:
5091311ms

С хабра:
Вы столько раз употребили термин «Big Data», что стало интересно, а на какие объемы данных рассчитана БД?
На те, что в Excel уже не умещаются.

Задеплоил на работе обновленную архитектуру приложения, смигрировав часть важных данных из монги в скл. Даже не смотря на ущербность мускула, отклик бэкенда внезапно увеличился в несколько раз (хотя такой цели не преследовалось). Where is your god now? inb4: не умеете работать с монгой.

Запустили тест для любимой монги, который в два потока пишет, в один читает проиндексированные записи. Спустя десяток итераций количество считанных/записанных документов упало на порядок, а спустя еще пару итераций всё окончательно слегло. Robust web-scalable production-ready solution has died.

▪ Five Things About Scaling MongoDB <emptysqua.re>: create the right indexes for your queries; On Linux, choose ext4 or xfs; Since MongoDB is constantly accessing its files, you can get significant performance by telling Linux not to track files' access times; calculate working set size correctly; use SSD when storing data large than RAM; shard. 

так смешно стало