yopp
Но вообще посмотрите стоит ли вам шард заводить
yopp
Если вы в io не уперлись, то дешевле докинуть дисков
yopp
С шардом будут сложности с резервным копированием. Сейчас сложилась дурацкая ситуация что для 4.2 нет открытых инструметов для Point-in-time бекапов. Только через OpsManager
yopp
А он в интерпрайз лицензии
yopp
и ¯\_(ツ)_/¯
Max
Если вы в io не уперлись, то дешевле докинуть дисков
отказоустойчивость нужна. у меня глаз дергается, когда я смотрю на этот ужос)
yopp
Шард не добавит отказоустойчивости
Max
я понимаю, что без реплики это просто доп место на диске
yopp
Если у вас нет проблем с io, то вам хватит просто разнести реплику на разные физические хосты и докинуть дисков/памяти
yopp
Да, понимаю. :)
Askhat
Там есть размер кеша и read in/read out
15mb used если вы про Cache Usage Это в самый пик. До этого я писал им как-то просто узнать в чём проблема, меня пнули и сказали, что вам нужно поболтать с инженерами (не бесплатно, но первый месяц подарим), я подумал, что сам поищу сначала :D
yopp
Кстати, напоминаю что в этот четверг, 14 ноября, в Москве, будет митап MongoDB и Яндекс.Облако С местами уже немного напряженно, у вас последний шанс :) Подробности и регистрация
Max
Вроде как теперь это моя зона ответственности, но она в таком состоянии, что я отвечать за стабильность работы текущего сетапа просто не готов. это всё до первого отказа железки/ошибки девелоперов/что-то еще. даже бэкапов еще неделю назад не было(
yopp
При условии прохождения фэйс-контроля от Яндекса :)
Если у вас проблемы возникли, напишите Анне @annapesh
Artem
Не, я прошел, спасибо большое! :) Знакомые не прошли некоторые :)
Max
так что кластер, сначала тестовый, с тестом апгрейда. потом прод)
Anna
Привет! Пишите, кто не получил подтверждение. Сегодня проверим
yopp
эта статья не про то? или как раз про то, но только до 4.2? https://tech.willhaben.at/mongodb-incremental-backups-dff4c8f54d58
> Disclaimer These scripts come without warranty of any kind. Use them at your own risk. I assume no liability for the accuracy, correctness, completeness, or usefulness of any information provided by this site, or for any sort of damage using these scripts may cause. это не очень надёжный механизм
Max
Я вижу что он использует oplog но не очень понимаю, что ему это даёт
yopp
«инкрементальность»
Max
«инкрементальность»
мне механизм не очень понятен. что он достигает используя oplog с определенного места. делает дамп определенной части операций?
yopp
Но конкретно этот скрипт абсолютно ненадежен, потому что он не учитывает того факта, что оплог это capped коллекция и при резком увеличении объёме документов точка в которой сделан бэкап последний раз может выпасть из оплога. А там даже проверки на это нет
Anna
Спасибо, я сообщу ребятам :)
Пусть в личку мне напишут
Artem
Пусть в личку мне напишут
Deal, спасибо большое)
yopp
Но сам алгоритм очень плохо реализован
Max
топорно, это даже мне понятно)
Max
делать снапшоты не вариант?
yopp
Вариант, но в шарде надо сделать так, чтоб снепшоты на всех нодах были в одной точке
yopp
А это очень сложно, если не тормозить временно запись
yopp
С shard-wide транзакциями в 4.2 я пока вообще не очень понимаю как они это в opsmanager делают
yopp
возможно используют какие-то фичи wiredtiger, чтоб сделать PiT снепшоты
Max
Можно сделать вторые реплики кажого шарды и разместить их на одной виртуалке, с которой и снимать снапшоты. и сразу вопрос - можно как-то сконфигурировать реплику так, что бы она точно никогда не стала primary, а всегда оставалась репликой, как slave в sql db.
yopp
Можно, сконфигурировать конечно: https://docs.mongodb.com/manual/core/replica-set-priority-0-member/
Max
Ничем не поможет
у меня будут обе реплики на одной фс, значит в снапшоте будет коректное состояние. хотя может лагнуть репликация, поэтому не поможет?
yopp
Простой пример вы вставляете два зависимых документа, которые едут на два разных шарда. У реплик с которых делаются бэкапы разный лаг. Одна операция попадает в бэкап, а другая нет.
yopp
Вы потеряли консистентность данных
yopp
Лаг есть всегда. Физика запрещает не иметь его :)
Władimir (Zae)
добрый вечер, подскажите пожалуйста, где я ошибся? я хочу вытащить все документы у которых в rules содержатся подобные объекты, которые в переменной query из документа sample код: https://codepen.io/reetou/pen/MWWqjEL?editors=0010
Max
Лаг есть всегда. Физика запрещает не иметь его :)
видимо, самое логичное останавливать запись на время дампа.
yopp
Да. Если вы себе можете это позволить :)
yopp
О чём в документации и написано: https://docs.mongodb.com/manual/tutorial/backup-sharded-cluster-with-filesystem-snapshots/
Max
Да. Если вы себе можете это позволить :)
видимо придётся, если мы хотим бекапы 🙂
yopp
Проще не использовать шард, пока это возможно
yopp
Это палка о двух концах, но с 4.2 есть другой позитивный момент: можно поменять значение шард ключа и ошибка в выборе чуть менее болезнена
Max
Проще не использовать шард, пока это возможно
И просто перенести монгу на другой сервак с бОльшим объемом дисков. похоже, это целесообразнее.
yopp
на три разных сервера, да :)
Max
на три разных сервера, да :)
на два, третий - vpc с Priority 0. прокатит такое?)
yopp
зависит от ваших требований по отказоустойчивости
Max
зависит от ваших требований по отказоустойчивости
получается primary + secondary для n+1 и третий для бекапа. вроде норм
Max
если primary вылетит, единственный secondary станет primary?
yopp
нет
yopp
если нет кворума
yopp
статегия всего с двумя нодами она не самая удачная
Max
если нет кворума
да, я про кворум. с elk опыт есть)
yopp
p=0 позволяет ноде голосовать, но она не может инициировать выборы
yopp
киньте пример в play.db-ai.co
Władimir (Zae)
ок, спасибо, ща
yopp
плюс у вас там два positional $, хотя не вижу чтоб был $elemMatch
yopp
$ это плейсхолдер для индекса элемента который попал под $elemMatch
Max
p=0 позволяет ноде голосовать, но она не может инициировать выборы
и не может стать primary? тогда при вылете primary кворум будет достигнут двумя голосами за второй dedicated с p=1, так?
yopp
да, приоритет и устанавливает приортиет при выборах. 0 приортиет значит что нода не может быть избрана в принципе. таким образом в больших репликах можно выставить веса про кворум, теоретически да. на практике у меня есть интуитивное ощущение что будут какие-то нюансы, но рационализировать прямо сейчас не могу :)
yopp
даже не сколько с выборами, а в приципе с топологией
Max
даже не сколько с выборами, а в приципе с топологией
возможно у меня дойдут руки протестировать такой сценарий. сразу после настройки elk кластера =) может через месяц. отпишусь, если будет о чём)
Max
и благодарю за мысль отказаться от шарда. видимо так и будет 🙂
Anonymous
если я 2 коллекции (между которыми взаимосвязь в виде отсылки к ObjectID, перенесу в другую бд - эта взаимосвязь сохранится? если я помню, то там перегенерятся айдишники?
Yuriy
Ты можешь записать свои ид
yopp
если я 2 коллекции (между которыми взаимосвязь в виде отсылки к ObjectID, перенесу в другую бд - эта взаимосвязь сохранится? если я помню, то там перегенерятся айдишники?
_id автоматически генерируется только если не был передан при создании документа. если вы будете копировать документы целиком вместе с _id, то значение _id сохранится
Anonymous
а как копировать целиком с айди? я думал просто insert
Anonymous
пройтись циклом по тем что хочу перенести и инсерт