
Serge
03.07.2016
11:03:10
Первый реальный проект в docker-е запускаю наконец-то
Правда это legacy, а не новый проект. Надо же как-то сервер обновить под ним:)
Но монга вполне завелась. Теперь осталось скопировать ей файлы базки под контейнер и можно сносить 2.4 с того хоста...
Официальный монговский образ для докера самый старый 2.6 только, кстати...

Google

Sergey
03.07.2016
11:07:07
База одна что ли? Без реплик?

Serge
03.07.2016
11:08:06
Ну там да, тупо с журналом
Там и редис-а было бы достаточно
Но с монгой удобней

James
06.07.2016
06:51:07
как арбитра заставить поменять местами мастер и слейв?

Sergey
06.07.2016
06:52:00
На мастере сделать rs.stepDown(). Причём тут арбитр?

yopp
08.07.2016
08:31:04
чота я пропустил!
превед!
кто-то уже с инкрементальными бекапами разобрался?
я видел пару попыток в правильном направлении
но они все чота умерли. У меня есть идея написать тупую писалку оплога, когда переодически цепляется как hidden member и тянет оплог к себе. а дальше сохраняй себе дифф с предыдущей пачкой

Serge
08.07.2016
09:04:58
А чем постоянный hidden member плохо?

Google

Serge
08.07.2016
09:05:09
Делай с него бэкапы сколько угодно
Можно его на cow fs посадить, тогда можно будет откатить куда угодно ...

yopp
09.07.2016
00:11:50
Но когда у тебя кластер в террабайт особо не на бекапишься.
На zfs можно посадить, да. Но это надо zfs, а он не всегда и везде есть. В ZoL например недавно баг с попорченными снепшотами всплыл
btrfs страшно
А больше вариантов особо и нет.
Так что хочется на уровне приложения это делать

Serge
09.07.2016
09:59:01
Есть thin lvm или как его там.
Имхо cow сделать не проблема. В крайнем случае можно Солярис взять
Опять же, даже если бэкапить руками и дифать, если уж хочется, то все равно не вижу смысла эту реплику отключать и подключать. Пусть бежит себе и бэкапит.
Опять же на уровне приложения можно версионировать данные прямо в монге, тогда вопрос восстановления нужной версии ложится на пользователя. Т.е. делать cow прямо в монге.

Roman
09.07.2016
10:45:37
Кстати, в линуксе есть совершенно крутая штука: reflink

yopp
09.07.2016
11:26:21
Потом например на vmware при создании снепшота монга портит данные
На mmap ещё куда ни шло, а на WT нода требует полного ре-синка
ну тыж сам тут советуешь fs-level снепшоты :)
вот тебе пример, когда оно не рабоает от слова совершено

Serge
09.07.2016
12:14:41
мне кажется тут ключевое слово vmware
т.е. ты делаешь снапшот машины, а оно потом не может обратно? это как вообще?

Google

yopp
09.07.2016
12:15:50
есть старая инсталяция монги, которую очень давно развернули на vCenter

Serge
09.07.2016
12:15:58
ну кстати, это может быть, если в памяти что-то осталось, что со временем связано

yopp
09.07.2016
12:16:23
там полный набор, сетевой сторадж, автоматическая миграция и вот это всё

Serge
09.07.2016
12:16:31

yopp
09.07.2016
12:16:45
куда ты её собрался переносить?

Serge
09.07.2016
12:16:56
ну если не нравится:)

yopp
09.07.2016
12:17:06
мне год потребовалось чтоб утвердить обновление с 2.4 до 3.0 :)
там всё по регламентам

Serge
09.07.2016
12:17:23
короче, на уровне приложения - это версионирование данных прямо в монге, имхо

yopp
09.07.2016
12:17:35
какое в жопу версионирование в монге
ты о чём

Serge
09.07.2016
12:17:47
на уровне приложения же

yopp
09.07.2016
12:18:09
это идиотизм

Serge
09.07.2016
12:18:12
решений 100500 и готовых и способов это сделать самостоятельно

yopp
09.07.2016
12:18:21
и это не решает задачу инкрементальных бекапов

Serge
09.07.2016
12:18:28
Так что хочется на уровне приложения это делать

yopp
09.07.2016
12:18:39
дай мне исходники приложения сначла

Serge
09.07.2016
12:18:53
тогда на уровне приложения никак

yopp
09.07.2016
12:18:54
и потом по регламенту утверди внесение таких изменений

Serge
09.07.2016
12:19:36
инкрементальные бэкапы - это проигрывание операций, не?

Google

Serge
09.07.2016
12:19:51
т.е.берем бэкап, а потом пишем весь лог после него

yopp
09.07.2016
12:20:11
ты понимаешь что не всё можно на уровне приложения бекапить?
например я посмотрю как ты забекапишь атомарный inc

Serge
09.07.2016
12:20:23
у тебя нет уровня приложения, успокойся

yopp
09.07.2016
12:20:28
я тебе в целом
потом у монги уже есть лог операция
oplog

Serge
09.07.2016
12:20:47
оптимистичные транзакции слышал?

yopp
09.07.2016
12:21:01
…
и я про него. вот собственно вопрос есть ли готовые решения которые умеют сохранять и проигрывать oplog, кроме MongoDB Cloud Backup Manager
в облако нельзя

Serge
09.07.2016
12:22:13

yopp
09.07.2016
12:22:37

Serge
09.07.2016
12:22:38

yopp
09.07.2016
12:22:40
и как оно будет потом работать

Serge
09.07.2016
12:23:01

yopp
09.07.2016
12:23:40
когда у тебя два клиента пишет сто записей в час, наверное да

Serge
09.07.2016
12:23:43
аналитика обычно читает и вставляет (ну, правильно написанная) там апдейты не нужны, ну, кроме map/reduce
а там нет уровня приложения, к сожалению;)

Google

yopp
09.07.2016
12:24:00
когда у тебя несколько десятков могут обновлять одну запись несколько сотен раз в минуту, это уже другое :)
map/reduce в монге на sharded кластере, хахахаха

Serge
09.07.2016
12:24:24

yopp
09.07.2016
12:24:24
удачи

Serge
09.07.2016
12:24:41

yopp
09.07.2016
12:25:09

Serge
09.07.2016
12:25:19
иначе монга не нужна

yopp
09.07.2016
12:25:36
и сделай их несколько десятков параллельных
и мы после этого поговорим

Serge
09.07.2016
12:25:56

yopp
09.07.2016
12:26:14
в коллекцию
там в приложении пре-аггрегация
клиенты пишут в жирную коллекцию с событиями
батчами

Serge
09.07.2016
12:26:50
в коллекцию
прекрасно, так я и делал, только надо правильно писать reduce и делать rereduce для map по новым данным

yopp
09.07.2016
12:26:53
и потом батч отправляется в map/reduce и раскладывается про «разрешениям»