Гена
39.5 GiB + 581.5 KiB = 39.5 GiB mongod --------------------------------- 39.6 GiB
Гена
там одна, это шард
Daniil
Ну допустим mongoDB Api access url
Это реально без проблем. Первоначальный коннект к БД у вас все равно идет в рантайме, просто один раз при запуске приложения
Nick
конечно
А какие задачи решаете с помощью транзакций?
Гена
@dd_bb а есть возможно выставить праймари через секондари?
Гена
у меня пришел ООМ
Гена
и убил праймари
Гена
а реплика не переизбрала нового
Dmitry
Не устанавиливается mongo :’(
Andrey
Не устанавиливается mongo :’(
на сайте монги есть гайд, одной этой командой не отделаешься
Nick
Храните ид групп у юзера и ид юзеров в группе. Благо сейчас есть транзакции и это больше не проблема
Гена
да там были танцы с бубнами. Остлось 3 реплики и один арбитр
Гена
но почему то монга не переизбрала нового праймари
yopp
Уберите арбитр
Гена
почему?
yopp
Потому что осталось 4 ноды
Гена
так арбитер нужен был для избрания нового, у него просто голос
Гена
и приоритеты стояли
Гена
должен был избраться с приоритетом 1 а другие были с 0
yopp
и приоритеты стояли
Тогда ищите проблему тут
Гена
хм
yopp
И она не может учавствовать в голосовании
Гена
в доках не видел об этом инфу
Гена
у арбитра 0 приоритет и один голос
yopp
в доках не видел об этом инфу
https://docs.mongodb.com/manual/core/replica-set-priority-0-member/
Гена
а как арбитр с 0 приоритетом голосует?
Гена
и у нас вот так вот
Гена
одна нода была с приоритетом 1
Гена
и он ее не выбрал
yopp
Вы неверно настроили приоритет
yopp
У вас скорее всего сейчас нет кворума для выборов
Гена
а можно заселектить сколько голосов у ноды?
yopp
Если вы хотели дать каким-то нодам больше веса, чтоб увеличить их шанс на победу в выборах, вам было необходимо дать им больший приоритет. 0 приоритет лишает ноду возможности учавствовать в выборах в любой роли, но позволяет использовать её для запросов.
yopp
вам необходимо исправить ошибку конфигурации кластера
yopp
Вернуть всем нодам-участникам приоритет 1, а нодам которые в приоритете выставить 2-3
Гена
выставил приоритеты 4 и 3 на нодах в основном цд и 2 на резервном
Гена
ну или так
Гена
понял буду копать туда
Гена
спасибо
Максим
Доброго дня, прошу помощи советом Делаю группировку. К каждой группе пушу целиком документы, участвующие в группировке. Как мне потом к каждому документу внутри группы лукапнуть данные из другой коллекции? db.getCollection('contacts').aggregate([ { "$group": { "_id": {"vk":"$vk"}, "data": {"$push":"$$ROOT"}, "count":{"$sum":1} } }, { "$match": { "count": {"$gt":1} } } ])
Максим
Документы contacts выглядят примерно так { "name" : "Пёрт Иванов", "email" : "petr@ya.ru", "uid" : 777, "vk" : 123456, } Лукапнуть нужно документы из коллекции deals, документы которой имеют вид { "name" : "Сделка 1", "contactId" : 777, ... }
Максим
Сам лукап у меня имеет такой вид $lookup: { from: "deals", localField: "data.uid", foreignField: "contactId", as: "deals" }
Максим
Но нужно, чтоб данные лукапились к каждому из припушенных результатов в группе, а не к самой группе
Максим
Надеюсь понятно обрисовал ситуацию, прошу простить за невежество в терминах - нуб :)
Vova
Надеюсь понятно обрисовал ситуацию, прошу простить за невежество в терминах - нуб :)
Можешь ещё составить вид документа, который ты ожидаешь получить, включая все поля?
Максим
На выходе хочу получить что-то типа такого [ { "_id": { "vk": 123456 }, "data": [ { "name": "Пёрт Иванов", "uid": 777, "email" : "petr@ya.ru", "vk": 123456, "deals": [ { "name" : "Сделка 1", "contactId" : 777, ... } ] }, { "name": "Пёрт Иванов", "vk": 123456, "uid": 888, "deals": [] } ], "count": 2 } ]
Максим
Переделал $lookup и поместил его перед группировкой. Заработало. Только получается, что он теперь ко всем "contacts" лукапит "deals", а уже потом группирует. Есть ли более адекватное решение? $lookup: { from: "deals", localField: "uid", foreignField: "contactId", as: "deals" }
Max
Всем привет. У нас в коллекции с 250 миллионами документов стал очень сильно тормозить запрос .find({ _id: null }), индекс на это поле есть. В коллекции всего-лишь одна запись с _id: null
Max
Кто-нибудь может помочь?
Max
Стал тормозить после переезда с local nvme ssd диска в гугл клауде на persistent ssd (сетевой)
Max
Все в огне горит)
yopp
заменить на _id: { $type: 10 }
yopp
_id: null это $exists: false || $type: 10
Max
это вы _очень_ зря
Локальные nvme ssd диски у гугл клауда часто сбоят, а при ошибке хоста вообще удаляются все данные
Max
заменить на _id: { $type: 10 }
Спасибо, сейчас попробую
Max
с сетевыми дисками у вас будет очень много проблем
Например? Вроде иопсов и пропускной способности хватает
yopp
latency, пропускная полоса
yopp
если бы у вас хватало, у вас бы запрос не тормозил :)
yopp
раньше вот хватало
Max
Да это очень странно, по графикам видно что там используется 3000 iops в пике из 15000
Max
И 20мб из 240
Max
Это единственный запрос, который стал тормозить после переезда
Max
Попробовал reIndex сделать, не помогло)
Max
зачем?
Сам не знаю)
yopp
reIndex по _id это что-то очень странное
yopp
это имеет смысл если у вас что-то очень сильно сломалось
Max
заменить на _id: { $type: 10 }
Не помогло. Может ли лагать из-за того что включен read concern: majority и вторая реплика сейчас синкается?
yopp
¯\_(ツ)_/¯ explain({executionStats: true})
Max
¯\_(ツ)_/¯ explain({executionStats: true})
Магия в том что на этом же сервере монги есть другая бд (в том же инстансе), в которой также такая же коллекция с такого же типа данными и индексами, и там этот запрос не лагает (выполняется за 1ms)