Ящик водки
Qwerty
Может кому-то полезно будет, раз о книгах заговорили. Она на английском.
Ильдар
тебе нужна горячая замена коллекции?
Нет. Нужно почистить раздутую коллекцию 200 млн записей.
Vened
А вот такой вопрос в честь пятничной лени: есть у кого-то опыт технического собеседования с потенциальным джуном на администрирование монги? Может быть какой-то готовый список вопросов? Сам, конечно, придумаю таковой, но вдруг кто-то уже сделал? )
Kirilll
Нет. Нужно почистить раздутую коллекцию 200 млн записей.
главное drop() не делать, иначе индексы тоже потрешь
Vlad
Есть ли запрос, которым можно вибрать только уникальные поля?
Qwerty
как это?
Он, наверное, об уникальных значениях поля. Перепутал. Если да, то вот линк
Kanzada
Мне нужно соединить vs code to atlas cloud, я получаю этот error, есть какие то идеи, кто то сталкивался,
Cooman
Ребят всем привет, а есть тут кто пользуется редактором sublime text, подскажите почему при выделении какого текста(записи) не всегда показывает все остальные, вот как пример, такая же проблема и на любой ide почему-то не подсвечивает похожие записи
Cooman
Maxmudjon
code: 10334 codeName: "BSONObjectTooLarge" errmsg: "PlanExecutor error during aggregation :: caused by :: BSONObj size: 22255984 (0x1539970) is invalid. Size must be between 0 and 16793600(16MB) First element: _id: 1" name: "MongoError" ok: 0 что-то пошло не так
Kvhqm
в коде
Maxmudjon
где-то ошибка
этот агрегция работал 2 года) в феврале сломался(((, буду копат спасибо
Kvhqm
этот агрегция работал 2 года) в феврале сломался(((, буду копат спасибо
Вот видишь как дополнительная информация может упростить решение проблемы. Скорее всего, тех полей которые ты собираешь - нету в объекте
Kvhqm
из-за этого может прилетать данная ошибка
Nick
да есть
вот там собирается дукумент размером больше 16Мб
Aleksander
Коллеги, приветствую! Подскажите пжл, как правильно подключить прометеус экспортеры к шардированной монге? На каждый хост в шарде: конфиг серверы + шард серверы Или только на монгос? Или и туда и туда?
Aleksander
Здравствуйте! Экспортеры лучше настроить на всех нодах кроме арбитров
Спасибо. Немного не понял ответ. Ставлю экспортеры на каждый хост во всех шардах и на монгос? Или только на все хосты всех шардов, а на монгос не ставить?
yopp
Спасибо. Немного не понял ответ. Ставлю экспортеры на каждый хост во всех шардах и на монгос? Или только на все хосты всех шардов, а на монгос не ставить?
Имел ввиду что и на mongod и на mongos. Если у вас mongod и mongos на одном физическом хосте, метрики с каждого нужно собирать отдельно
Aleksander
Спасибо за ответы!
SoulSilence
Народ, у меня тут крик отчаяния, нужен хелп. Есть коллекция products, огромная. На ней куча индексов, размер ее сотни гигабайтов. Есть сторонний сервис который делает следующий запрос const data = await client.db(mongoDatabase).collection('products’).findOne({ brand: brand._id, // ObjectId archived: false, brand_id: “12345“, } И иногда по непонятным причинам продукт не находится. У нас есть отдельный worker сбоку который слушает changestream этой коллекции и мы видим в логах что в таймлайне где этот продукт не был виден по нему не было никаких обновлений которые могли вызвать то, что этот продукт не стал бы попадать для выборки по этому критерию. Если быть точнее то вообще никаких апдейтов. И спустя какое-то время он снова становится виден Что это может быть за магия? upd: база реплицированная, один primary и 3 реплики v4.4.13
Kanzada
Не хватает прав
Благославит Вас Бог 🙂, если вы верите в бога попрошу крепкого здоровья Вам, только подскажите плиз, я никак не могу сама себе дать право, кто может давать право?
Viktar
Благославит Вас Бог 🙂, если вы верите в бога попрошу крепкого здоровья Вам, только подскажите плиз, я никак не могу сама себе дать право, кто может давать право?
Тут я вам не помогу. Я не знаю кто у вас раздают пользователям права. Но судя по ошибке, пользователю с которым вы подключились, не хватает прав на удаление базы данных
Nick
Народ, у меня тут крик отчаяния, нужен хелп. Есть коллекция products, огромная. На ней куча индексов, размер ее сотни гигабайтов. Есть сторонний сервис который делает следующий запрос const data = await client.db(mongoDatabase).collection('products’).findOne({ brand: brand._id, // ObjectId archived: false, brand_id: “12345“, } И иногда по непонятным причинам продукт не находится. У нас есть отдельный worker сбоку который слушает changestream этой коллекции и мы видим в логах что в таймлайне где этот продукт не был виден по нему не было никаких обновлений которые могли вызвать то, что этот продукт не стал бы попадать для выборки по этому критерию. Если быть точнее то вообще никаких апдейтов. И спустя какое-то время он снова становится виден Что это может быть за магия? upd: база реплицированная, один primary и 3 реплики v4.4.13
чтобы словить непонятные причины эт надо на древней версии сидеть или глушить ошибки из результатов запросов. Какая версия?
Nick
4.4.13
ожидаемо. почему не на 7+? или хотя бы на 4.4.29?
SoulSilence
К сожалению не могу ответить, это в ведении девопсов
Anton K.
Вот к чему может в итоге привести технический долг
Nick
К сожалению не могу ответить, это в ведении девопсов
тогда спросите у них, что за дела и почему они выдают устаревший софт с кучей багов
SoulSilence
Вот к чему может в итоге привести технический долг
Я про это могу вести бенефис длинной в неделю, тут вся система это памятник тому как делать не надо
SoulSilence
По крайней мере ее легаси часть
SoulSilence
Вопрос что делать 😉
Nick
обновиться
Anton K.
Вопрос что делать 😉
Ставить в беклог эту задачу как первоочередную
Nick
4.4. совместима со всеми версиями до 7+ включительно. И вроде все нормальные драйвера также работают корректно (если вы опять же не используете говно мамонта)
SoulSilence
Ставить в беклог эту задачу как первоочередную
Я полгода воевал чтобы у нас появился эпик Performance and Stability
SoulSilence
Тут через такое копротивление придется идти
SoulSilence
Но в целом направление я уловил
SoulSilence
Nick
Я полгода воевал чтобы у нас появился эпик Performance and Stability
чтобы воевать эффективнее надо считать в деньгах, как показывает практика пересчет в твердую валюту багов сразу стимулирует выделение ресурсов на обновления и даже доработку софта. Ну а если не убеждает, то вы просто забиваете на проблему и ее решение не рационально
Nick
все может быть, может драйвер недостаточно хороший и проглатывает какието ошибки
SoulSilence
Драйвер тоже древний, но сам запрос простой как палка и проблема является плавающей. Ну и да, никакие ошибки он нам не выбрасывает
SoulSilence
Все что я могу представить сейчас это какие-то баги с ребилдом большого индекса в старой версии монги
SoulSilence
Да, именно так. Весь чендж стрим пишем в очередь которую без лага читает отдельный воркер и пишет в логи. Это впрочем сделано для другого проекта но тут пригодилось чтобы проанализировать изменения в контексте одного документа который проверяем
Nick
Все что я могу представить сейчас это какие-то баги с ребилдом большого индекса в старой версии монги
нет никаких ребилдов индексов. Индексы обновляются в момент операции над документом в тот же момент и никаких отложенных действий нет
SoulSilence
Изменений по документу нет в пределах суток
Nick
я не представляю что у людей при наличии репликасета нет мониторинга лага оплога
Nick
значит бага либо в монге (что вполне вероятно изза 2 лет устаревания), либо в драйвере, либо в коде. Особый упор на последние два в части обработки ошибок и особенно по нестандартным таймаутам
Nick
начал бы с того что собрал бы логи по выборкам и времени между отправкой запроса в монгу и получением ответа что чтото не найдено
Nick
спросил бы его в какой версии починено))
SoulSilence
https://jira.mongodb.org/browse/WT-10461
SoulSilence
Походу оно
SoulSilence
Надо апаться до 4.4.22
Nick
https://jira.mongodb.org/browse/WT-10461
у вас arm или power?
SoulSilence
x86/64 судя по GCP информации о виртуалке но то что там описывается слишком похоже на то что у нас есть.
Nick
x86/64 судя по GCP информации о виртуалке но то что там описывается слишком похоже на то что у нас есть.
тогда как описано в таске можно заюзать https://www.mongodb.com/docs/manual/reference/command/validate/#validate для валидации
SoulSilence
Стремно что пиздец
SoulSilence
Nick
Стремно что пиздец
в таске есть REMEDIATION AND WORKAROUNDS там Perform rolling maintenance on each replica set node. On each offline node, run: т.е. какждую ноду в оффлайн режим, на ней уже играемся с валидацией. И да перед этим сначала обновиться
SoulSilence
Ну я начну с того что тут авторы нашей балалайки сказали что ай-ай всем дядям которые используют версию ДО и у нас есть подозрение что мы от этого страдаем поэтому давайте таймлайн когда накатим обнову. А дальше да, пойдем далее по списку
SoulSilence
А то я уже сегодня думал что у меня крыша едет, а нет, я такой не один
Danil
функции в монго ток джс поддерживают?
yopp
функции в монго ток джс поддерживают?
да, причём это рантайм не node, а spidermonkey от mozilla
yopp
почему тс нет?
потому что spidermonkery поддерживает только js. насколько я знаю в принципе нет райнтаймов которые без трансплайинга в js могут исполнять ts.
yopp
ну и в целом надеюсь его в монге и не будет, потому что типизация и свободная схема очень неудобно