Roman
Fuck yeah!
Aleksey
больше группочек!
Dan
)))))))))))
CC-BY-SA-4.0/Docker-ce30.0
db.users.insert({"nick": "@purrpurr"})
Aleksey
Здравствуйте Сергей, я вас так понимаю!
Aleksey
вы не моглибы рассказать о своей истории ?
CC-BY-SA-4.0/Docker-ce30.0
Здравствуйте, меня зовут Павел и у нас облако на монге.
Danil
облако на монге?
CC-BY-SA-4.0/Docker-ce30.0
Это очень хорошо)
CC-BY-SA-4.0/Docker-ce30.0
Никогда не чувствовал такую потрясающую лёгкость
CC-BY-SA-4.0/Docker-ce30.0
А где можно получить бейджик?
CC-BY-SA-4.0/Docker-ce30.0
😉
CC-BY-SA-4.0/Docker-ce30.0
Dmitry Nazarov joined the group
Dan
готово
Roman
граждане, а вот скажите, нафига нужен findfandmodify?
CC-BY-SA-4.0/Docker-ce30.0
Для атомарных изменений
CC-BY-SA-4.0/Docker-ce30.0
Афаик
Roman
а чем это отличается от update c upsert?
Sergey
граждане, а вот скажите, нафига нужен findfandmodify?
Я пользуюсь чтобы получать после обновления старую версию документа
Roman
а, ну тут понятно.
Roman
вопрос такой: у меня есть коллекция и мне в неё надо вставить документ, если его там нет. при этом, надо избежать гонки
CC-BY-SA-4.0/Docker-ce30.0
+1
CC-BY-SA-4.0/Docker-ce30.0
)
Roman
ок, тогда задам несколько более сложный вопрос по монге(а точнее про хранение данных в ней)
Roman
вообщем, есть у меня задача, где по timestamp надо находить некий набор данных.
Roman
проблема в том, что этих таймстемпов у меня дохера.
Roman
если быть точнее, то 200*86400*20
Roman
сейчас у меня в одном документе собрано 60 таймстемпов(да, это минута)
Roman
а документ выглядит как-то так: https://dpaste.de/TMSf
Aleksey
а монге с wiredtiger нельзя сказать что бы где нить в другом месте хранила индексы ?
Aleksey
или это совсем глупость ?
Aleksey
логично да
Alex
ну, например, всё равно приятнее читать индекс с SSD, чем с механики
Alex
и писать
Alex
кстати тоже
Aleksey
ну вот у меня ка краз тайкой кейс.
Aleksey
и вот думаю куда еще присобачить ssd
Alex
Почему поздно? Замедление - да, но вполне работоспособно
Alex
Кэш перед HDD - это прекрасно, только вот когда индексы вперемешку с данными, то кэшиться будет всё
Alex
а не только индексы
Alex
Не горячую часть, монга вообще читает только из замапленного фрагмента
Alex
Да
Aleksey
вы щас точно про wiredtiger
Alex
Если происходит чтение замапленного участка - он подтягивается в память
Alex
полюбому
Alex
всё плохо - это не технический термин =)
Alex
с SSD оно менее плохо
Aleksey
чудес не бывает. но алгоритмика бывает решает ни хуже чуда
Aleksey
эх.
Aleksey
опять это слово. :)
Roman
С чего бы вдруг? У тебя ssd дает 60-90k iops, а диск - в лучшем случае пару сотен
Roman
Обычно - соточку
Aleksey
https://www.percona.com/blog/2015/12/23/percona-server-for-mongodb-storage-engines-in-iibench-insert-workload/
Aleksey
я праивльно опнимаю что они предлагаю заменить монгу своим лджвидком ?
Anonymous
Коллеги - ищу докладчиков по Mongo на DevConf 2016 http://devconf.ru/ru/offers/ - может кого посоветуете?
Anonymous
Спасибо Сергей..
Aleksey
ну тоесть это уже не совсем монга да ?
Alex
а монге с wiredtiger нельзя сказать что бы где нить в другом месте хранила индексы ?
Вот, кстати, можно =) https://docs.mongodb.org/manual/reference/configuration-options/?_ga=1.264017036.1256824461.1460650000#storage.wiredTiger.engineConfig.directoryForIndexes
Aleksey
спасибо.
Roman
и если каталог с индексами снести, то монга упадёт.
Roman
правда, если запустить с —repair - оно индексы восстановит :)
Aleksey
да процедура миграции так себе получилась
Aleksey
зато время старта очень радует
Alex
а какие у вас размеры данных и почему так важно время старта (сколько ж было, что оно заметно??) ?
Alex
если не секрет =)
Aleksey
вообще плевые.
Aleksey
648 метров индекс
Alex
А. Ну это копейки, да.
Aleksey
ну вообще mongo не хотела стартовать с добавленными wiredTiger: engineConfig: directoryForIndexes: true
Aleksey
пришлось через dump/restore
Aleksey
согласен
Aleksey
тем неменее это первое что бросилось в глаза
Aleksey
2016-04-29T18:57:20.697+0300 I STORAGE [initandlisten] exception in initAndListen: 72 Requested option conflicts with current storage engine option for directoryForIndexes; you requested true but the current server storage is already set to false and cannot be changed, terminating 2016-04-29T18:57:20.697+0300 I CONTROL [initandlisten] dbexit: rc: 100
Aleksey
это при старте
Alex
У нас давеча монга сама про... потеряла индексы. Причем, она потеряла в том числе и сами описания индексов. А эти описания были даже ценнее, чем сами данные, т.к состояли из несколко десятков полей с различными направлениями сортировки... в общем, сцука. =)
Aleksey
как спасли ?
Alex
А никак. Восстанавливали по коду, руками. Ну несколько команд создания индексов нашли в history консоли. Теперь настроили бэкап метаданных... Сама БД не бекапится, т.к все данные горячие. Важна была только "схема", как бы смешно это не звучало для schemeless db :)
Alex
Да, кстати, это всё было в реплике. Нифига не помогло.