Шынгыс
эта коллекция system.sessions из системной БД config
yopp
Да, скорее всего апдейт попал на момент создания чекпоинта, так бывает
Шынгыс
кейс такой: репликасет из 7 узлов (1 арбитр). в какой то момент выходит на праймери это сообщение (выше), и на всех вторичных узлах коннекты падают и в логах приложения выходит сообщение о таймауте к БД. Приложения читает только секондари узлы.
Шынгыс
вот ищу причину проблемы
yopp
Посмотрите что в логах на secondary, в момент когда происходит потеря связанности в кластере. Вероятно это проявление какой-то другой проблемы
Шынгыс
в логах секондари только это выходит:
{"t":{"$date":"2022-07-13T09:57:10.967+06:00"},"s":"I", "c":"NETWORK", "id":22989, "ctx":"conn67","msg":"Error sending response to client. Ending connection from remote","attr":{"error":{"code":6,"codeName":"HostUnreachable","errmsg":"Connection reset by peer"},"remote":"ipadress","connectionId":67}}
Шынгыс
может кто то сталкивался.
yopp
в логах секондари только это выходит:
{"t":{"$date":"2022-07-13T09:57:10.967+06:00"},"s":"I", "c":"NETWORK", "id":22989, "ctx":"conn67","msg":"Error sending response to client. Ending connection from remote","attr":{"error":{"code":6,"codeName":"HostUnreachable","errmsg":"Connection reset by peer"},"remote":"ipadress","connectionId":67}}
Это сетевая проблема, так как host unreachable это ошибка от сетевого стека ОС. Вероятно у вас «мерцает» линк между нодами в кластере
Шынгыс
Шынгыс
а проблема периодически выходит. не каждый день, но через день точно
Шынгыс
Andrey
yopp
вот как доказать им)))
Эта запись в логе однозначно указывает на сетевые проблемы :) Пусть смотрят на свои метрики в районе момента отказа.
Если у вас ESXi, с сетевым блочным хранилищем, то там тоже могут быть сюрпризы, особенно если на одном физическом хосте больше одной ноды монги и явно не запровижены iops
Шынгыс
Andrey
yopp
И да и нет. Если не брать низкие пороги, в духе 10мс со 100% профилированием. На стандартном пороге расходы незначительны
yopp
Andrey
Abdulaziz
Привет, вот так получаю информацию про юзера в комменте, и отправляю только firstName, lastName и img, но внутри модели юзера есть поле hideAvatar и hideName, как можно сначала проверить эти поля, если они false получить имя если нет, то Hidden name
Andrey
yopp
Бóльшую роль играет размер и количество чанков.
Самая узкая часть это процесс коммита при миграции чанка. Донору и реципиенту нужно согласовать момент когда чанк будет присвоен другому шарду в карте чанков.
Особенно медленно это работает если чанк еще и меняется в процессе
yopp
Теоретически можно сначала порезать коллекцию на очень больше чанки, например по 128мб, а после завершения первичной балансировки уменьшить размер чанков. Балансировщик нарежет существующие на части, но так как на каждом из шардов чанков будет примерно одинаковое количество, то повторная балансировка будет уже не такой большой по объему
yopp
Если вам хочется быстро и вы можете остановить кластер или сделать его копию, то dump а потом restore с высоким уровнем параллелизмма и всеми mongos в seed листе, будет на порядки быстрее.
yopp
Anonymous
почему я могу создать юзера без аутентификации вручную, но при eval кидает ошибку
uncaught exception: Error: couldn't add user: command createUser requires authentication
Сергей
Привет. А подскажите можно ли сделать поле _id авто-инкермент?
Alexander
Alexander
или ты просто хочешь инт?
Сергей
Alexander
можно, но как не подскажу - не пробовал
Alexander
так и загугли
Alexander
mongo autoincrement ind _id
Сергей
гуглил, уже потом сюда залес
Сергей
я не думаю что решение получать длину и писать +1 это корректное решение
Сергей
Nick
более того если вы говорите про урлы, то автоинкрмент это сразу уязвимость с возможностью перебора сущностей
Сергей
🤔
Mark
Ребят, если мы какое-то поле пометим как индекс - это автоматически ко всем энтити в бд примениться? Миграцию например не надо делать? (не кидайте тапком плиз)
Abdulaziz
fierylife
Всем привет. Допустим, используя монго темлейт из спринга, мы используя агрегацию сгруппировали по некоторому значению и отсортировали. Теперь у меня гарантируется порядок внутри т.н. группы, а снаружи группы - нет. То есть сами группы не отсортированы. Как это исправить ?
Exception003
Доброго дня. Подскажите, пожалуйста, как использовать aggregate с lookup, если нужно использовать localfield из объекта типа ["1", "2"]?
Vadzim
Всем привет! Может кто подскажет как подключиться локально базе( mongo) внутри докер контейнера, не используя опцию network_mode: host?
Vadzim
Vadzim
сейчас попробую
Vadzim
🅰️nimeCoder
Vadzim
вроде слушает по всем ip, но подключится так и не смог
🅰️nimeCoder
а почему не хочешь шарить порт на хост машину
Vadzim
на хост машине есть база, а эта база она для проверки идёт
🅰️nimeCoder
на другой порт мапнуть?
Vadzim
на хост машине?
🅰️nimeCoder
ну ты же можешь любой порт контейнера направить на любой порт хоста
🅰️nimeCoder
т.е условно 27017 контейнера будет на хосте доступен на порту условно 65000
Adilet
Если из хоста и вы не прокинули порт, то вы никак не достучитесь. Если из другого контейнера, убедитесь, что вы находитесь в одной подсети с контейнером монги.
🅰️nimeCoder
Там просто порты же указываются черкз двоеточие где первый если не ошибаюсь порт хоста, а второй порт внутри контейнера
🅰️nimeCoder
Ну или наоборот, у меня просто ide даёт подсказки
Vadzim
🅰️nimeCoder
Нет
🅰️nimeCoder
Ты можешь сделать expose
🅰️nimeCoder
Любого порта контейнера на любой порт хост машины
Vadzim
кстати, да
🅰️nimeCoder
При этом на сам контейнер это никак не влияет, просто порт будет доступен из вне на каком либо порту хоста
Adilet
Если ты сейчас из одного контейнера в другой пытаешься стукнуться, то первое хочу понять, как эти отдельные контейнеры запущены, и второе, это как ты пытаешься стукнуться из одного к другому. Прям покажи кусок кода, строки где происходит подключение.
Adilet
У меня есть ощущение, что у тебя просто неправильно все залинковано, ситуация вполне тривиальная.
🅰️nimeCoder
он хочет бд с контейнера подключить условно в компасе с хост машины
🅰️nimeCoder
ну судя по сообщению https://t.me/mongodb_ru/113849
Vadzim
Vadzim
с опцией network_mode: host я просто обращался по ip докера(172.17.0.1) и всё работало