Zaff
A это таймштамп updatedAt, если объект последний раз обновлялся раньше, чем 1 января, нужно считать, что он обновлялся последний раз 1 января а следующее условие сравнивает разность дней между updatedAt и сегодняшней датой, и если разность равна n-дням, то апдейтим конкретное поле в документе updatedAt всегда должен быть минимум 1 января
Zaff
Учитывая, что документов этих не так много, наверное можно просто получить все документы по первому условию, бежать по ним циклом в самом JS, и апдейтать по одному
Nurik
Всем привет ! Когда драйвер монги (для nodejs например) обращается в монгу, он достает данные которые были сжаты snappy или это уже не сжатые данные ?
Nurik
Просто пытаюсь понять на каком уровне работает сжатие, только на уровне хранения, или на уровне транспорта тоже
yopp
Сжатие документов происходит в хранилище. Даже в кеше в памяти они в несжатом виде.
yopp
В 3.6, кажется, появилась поддержка сжатия на транспортном уровне, при условии что драйвер это поддерживает
yopp
Даже не документов, а страниц wt в хранилище
Nurik
Я имею ввиду реализация драйвера для монги согласно протоколу
yopp
Afair, нет https://github.com/mongodb/specifications/blob/master/source/compression/OP_COMPRESSED.rst
yopp
that SHOULD be provided to isMaster if a driver supports wire compression
yopp
А зачем вам?
Nurik
Почитаю )
Nurik
А зачем вам?
Нужно понять, где нетворк проседает
yopp
В каком плане «проседает»?
Nurik
В каком плане «проседает»?
В прямом смысле, т.е. возрастает нагрузка на сеть и увеличивается время ответа
Nurik
На уровне tcp пытаемся понять что происходит
yopp
В прямом смысле, т.е. возрастает нагрузка на сеть и увеличивается время ответа
Сомневаюсь что проблемы в компрессии. Вероятно меняется структура нагрузки и размеры ответов увеличиваются. Я бы начал искать в этой части
Nurik
Сомневаюсь что проблемы в компрессии. Вероятно меняется структура нагрузки и размеры ответов увеличиваются. Я бы начал искать в этой части
Да, проблема скорее всего не в компрессии. просто пытаемся устранить проблему быстро, поставить на мониторинг и посмотреть что будет. Если проблема решится путем обновления драйвера, то норм. Иначе будем копать дальше
Nurik
Повторение трафика пока не помогло выявить проблему
Nurik
Вы можете проверить включена ли компрессии через вызов isMaster в вашем драйвере
А какое поле за это отвечает ? Я не вижу в выводе команды упоминаний о компрессии
Nurik
Версия 3.6
yopp
В остальном, следите за serverStatus: connections, особенно connections.totalCreated (если резко увеличивается, но active не меняется, значит кто-то переустанавлмвает соединения) globalLock, особенно totalTime network opLatencies opCounters И ещё можно metrics
Nurik
Окай, в общем дальше сам разберусь, спасибо !
Anonymous
Добрый день, кто может поделиться советом: Сейчас нужно будет писать микросервисы, может порядка 30, практически везде хочу юзать монгу. Хочу применить паттерн: database per service Сервисы думаю пока не высоконагруженные и потеря данных не прямо очень критична. Каким образом можно построить базы, оптимизировав при этом ресурсы? - На mongodb atlas выходит дороговато - В gcloud тоже - в do нет managed mongodb Нормально ли будут решения: - Деплоить базы прямо в кубе (что по расходам будет гораздо дешевле) - Создать одну большую виртуалку, где монги в докере. Кто каким советом мог бы выручить, буду очень признателен
yopp
самому деплоить будет дороже
Anonymous
самому деплоить будет дороже
Дороже по времени, или аварийным ситуациям, которые могут возникнуть впоследствии?
yopp
в целом TCO монги в облаке до определённого уровня будет ниже чем деплоить и поддерживать самостоятельно
yopp
определённый уровень это сотни гигабайт
Anonymous
Речь о базах [1-2ram/1cpu/30-50ssd]
Anonymous
atlas или yandex cloud
В общем насколько понял точку зрения, managed дороже в разы, но в перспективе с точки зрения поддержки и масштабирования выгоднее
yopp
а это не важно
yopp
вы на то чтоб раскатать монгу в кубе потратите больше ресурсов, чем нажать две кнопки в атласе
yopp
не говоря уже о резервном копировании и прочих мелочах
Anonymous
Хорошо, спасибо за информацию :)
yopp
начните с маленького тарифа в атласе. там апгрейды достаточно легко проходят
Андрей
Привет! Я вот не пойму. Если я создам документ картинки {url: '/img', id: '1', alt: 'alt'} схемой Image, то создастся коллекция images и в ней будет этот документ к примеру. А если я создам еще такой же документ и положу его в другой документ, то этот документ новосознанный картинки будет лежать в и другом документе и в коллекции images ?
Roman
или возьмите монгу в германии, помоему в атласе в ес есть бесплатный тариф там
Спасибо за совет! Зарегал новую учетку на немецком сервере. Задержка запросов упала с 140-160ms до 55-70ms.
Araik
Можно делать update с опцией upsert
Araik
тогда при наличии документа, он будет обновлять документ, при отсутствии добавлять
yopp
Привет! Я вот не пойму. Если я создам документ картинки {url: '/img', id: '1', alt: 'alt'} схемой Image, то создастся коллекция images и в ней будет этот документ к примеру. А если я создам еще такой же документ и положу его в другой документ, то этот документ новосознанный картинки будет лежать в и другом документе и в коллекции images ?
Документ это как строчка в таблице. По сути сама строчка это ассоциативный массив. Вы можете добавить в этот ассоциативный массив ключ, у которого значение будет другой ассоциативный массив. Или вы можете добавить в таблицу новую строку
yopp
Добавить индекс с uniq constrain
yopp
На те поля, по которым вы хотите избегать дубликатов
Anonymous
Ребят привет. подскажите плиз. обезательно ли делать авторизацию на mongod на linux, или можно не авторизироваться? вопрос по поводу безопасности
Anonymous
у меня сейчас без авторизации mongodb://localhost:27017/mydb
Anonymous
Обязательно
логин и пароль будет достаточно? просто там много видов авторизации
Anonymous
Да, достаточно
а скажи пожайлуста может ли кто нибудь без авторизации как то воздействовать на бд из вне?
yopp
Для администрирования и для приложений по возможности используйте разные учетные записи с разными паролями
yopp
а скажи пожайлуста может ли кто нибудь без авторизации как то воздействовать на бд из вне?
Да, конечно. Без авторизации у любого подключения будут полные права
yopp
И можно будет сделать всё что угодно
yopp
Даже если монга будет слушать на локальном интерфейсе, это не панацея, так как любое ПО на этом-же хосте имеет доступ к локальному интерфейс у
yopp
ну на локалке она
А не важно. В вашу локалку может попасть вредоносно ПО, которое найдёт монгу и в лучшем случае просто удалит все данные и будет вымогать денег. А в худшем это все куда-то утечёт
yopp
Это невозможно без индекса или внешнего механизма проверки уникальности всего документа
Sergey️
Монга в докере решила начать жрать CPU как не в себя 100%+ Из запросов только findOne, 300к документов. В db.currentOp ничего долгого не вижу, логи отправляются в devnull Как лечить?)
yopp
Монга в докере решила начать жрать CPU как не в себя 100%+ Из запросов только findOne, 300к документов. В db.currentOp ничего долгого не вижу, логи отправляются в devnull Как лечить?)
Какая версия? Логи по-моему можно вне зависимости от куда направлен вывод просмотреть через https://docs.mongodb.com/manual/reference/command/getLog/
yopp
4.2.3?
Sergey
Studio 3T
Платное, да?
Sergey️
Платное, да?
есть триалка
Sergey️
4.2.3?
4.2.0
yopp
4.2.0
Обновитесь до 4.2.3
yopp
Плюс у вас там 750к соединений. Это действительно так?
yopp
И connectionsCreated 34
Sergey
А кто-то встречал инструмент (бесплатный), который позволяет делать из Монго Дашборды? Не такие сложные, как Графана и Прометей?