Nikita
Так а зачем всё это мероприятие? Всё плохо в MongoDB Inc.?
yopp
Так а зачем всё это мероприятие? Всё плохо в MongoDB Inc.?
Затем, что монга создавалась ради Atlas и они защищают свой продукт
yopp
Nothing personal, just business. У монги всё шикарно, это лучшее документное хранилище на рынке.
Nikita
Ну, они выбрали путь в никуда, а это плохо.
Nikita
Что стоит конкурентам форкнуть старую версию, которая под AGPL? По мне так смена лицензии, это проявление слабости компании.
yopp
Вы акционер?
yopp
Это не место для споров о лицензии.
yopp
Вам как разработчику совершенно фиолетово
yopp
Бизнес имеет право делать все что он хочет, монга это коммерческая база данных, которая торгуется на бирже и отлично продаётся.
Nikita
Так сообщество о MongoDB в целом.
Nikita
А не разработка only.
yopp
Так сообщество о MongoDB в целом.
Если у вас есть какие-то конкретные вопросы — задавайте. Обсуждать что вы думаете про лицензирование тут не стоит.
Viktor
Вам как разработчику совершенно фиолетово
Как рядовому да, как условному техдиру нет, т.к. завтра ребятам из монги завтра может захотеться больше денег и они снова сменят лицензию.
Nikita
Если у вас есть какие-то конкретные вопросы — задавайте. Обсуждать что вы думаете про лицензирование тут не стоит.
Вопрос такой - не станет ли MongoDB полностью платной, через пару лет? Т.к. смена лицензии - тревожный звонок.
Viktor
Но бомбить по поводу текущей лицензии я не вижу смысла
Viktor
Это к психотерапевту
Все также про оракл шутили
yopp
Измениение было нацелено на решение конкретной проблемы. Тот факт что у вас есть какие-то отрывочные сведения и вы пытаетесь по ним построить картину заговора рептилоидов это ¯\_(ツ)_/¯
Nikita
Не умрёте ли вы от рака через пару лет?
Да ты болен на голову. Печально, что здесь такой админ.
Viktor
товарищ @dd_bb, посоветуй чем экспортить данные профайлинга из монги в прометей? (желательно с уже готовым пресетом для дашборда)
yopp
Да ты болен на голову. Печально, что здесь такой админ.
Если вы не умеете оценивать риски и хотите быть параноиком это ваше решение. Если вы везде видите больных на голову это тоже к психотеропевту. До свиданья
Гена
Добрый день коллеги Есть вопрос, может кто сталкивался с этим. У клиента 5 монгосов в шардированном кластере. 3 монгоса на одном ДатаЦентре и 2 на другом. Но как только приложения переключаются на 5 монгосов, то падает перфоманс и выпадают шоюки в лог монгоса что на 2 Датацентре Error sending response to client: HostUnreachable: Connection was closed. Ending connection from <IP>:32940 (connection id: 158) А в логе приложения 2019-09-09 13:04:03.039 [-,e*******][http-nio-11040-exec-2] ERROR r.l.o.p.web.error.RestErrorHandler - Exception receiving message; nested exception is com.mongodb.MongoSocketReadException: Exception receiving message ..... Caused by: javax.net.ssl.SSLException: Invalid TLS padding data ..... Caused by: javax.crypto.BadPaddingException: Invalid TLS padding data
Гена
Версия монги 4.0.4
Serhii
Народ, обьясните тугодуму как работает pipeline в lookup. Мне нужно отфильтровать все вложеные документы еще по двум полям. Как такое сделать?
Евгений
добрый день. подскажите пожалуйста, есть монга, сохранение в нее 100к записей происходит за ~60c (в самой базе в этой таблице уже порядке 100м записей). можно ли как-то затюнить это, или пора шардировать? (и с какого момента вообще пора начинать шардировать ее)?
Anonymous
Вопрос больше по нереляционным БД чем по монге. Я слышал мнение, что те кто хотели мультидокументные транзакции в монгодб просто не понимают как правильно денормализовывать данные и пользоваться ими. Вопрос как пользуюясь только single document acid достигается консистентность системы? Вы сохраняете типа изменение в документе и какой-то event, который потом обработается в другой транзакции типа eventual consistency? Или как то по другому?
Joseph
Вечер добрый , есть список от 0001 - XXXX можно ли с помощью молги заполнять пропуски , что бы не делать такую обработку const labels = await getAllLabels(); for (const { title } of labels) { const num = parseInt(title, 10); if (num) { if (newTitle !== num) { break; } newTitle = num + 1; } }
Joseph
yopp
Вопрос больше по нереляционным БД чем по монге. Я слышал мнение, что те кто хотели мультидокументные транзакции в монгодб просто не понимают как правильно денормализовывать данные и пользоваться ими. Вопрос как пользуюясь только single document acid достигается консистентность системы? Вы сохраняете типа изменение в документе и какой-то event, который потом обработается в другой транзакции типа eventual consistency? Или как то по другому?
2 phase commit для связанных изменения и идемпотентность операций. Больше особо вариантов нет. Транзакции это просто инструмент, который в ряде случаев ощутимо упрощает жизнь. С ними денормализация сложных документов стала более доступной опцией, так как при наличии требований к изоляции связанных изменений теперь не надо придумывать извращений. В целом, не так много задач когда гарантии целостности абсолютно критичны.
yopp
ссд
Большие документы?
Евгений
потом упало
Евгений
Большие документы?
10 полей жсоны
Евгений
маленькие
Евгений
делаю через спринг saveall по 100к
yopp
Это облако или железка? Много ли индексов? Что с нагрузкой?
Aleksandr
Или, наоборот, идет не вставка, а файндАндУпдате по неиндексированному полю
Anonymous
А что у вас за задачи?
Корпоративные бизнес-приложения
yopp
Корпоративные бизнес-приложения
А какие конкретно задачи у вас требуют гарантий?
yopp
Самый простой способ: сделать так чтоб гарантии были не нужны
yopp
Тогда будет весело и легко
yopp
Если гарантии нужны, будет медленно, долго и очень дорого
Евгений
Мб тогда индексы?
видимо. пойду ковырять
yopp
А ещё обновитесь до 4.0.12, чисто на всякий случай
Гена
Проверьте что TLS на всех монгосах корректно настроен и что между монгосами и приложениями нет сетевых ошибок
Между многосами все ок. Приложения крутятся в докер контейнерах на других серверах. Самое забавное что при тех же конфигурациях и 3Цодовости все работает на Препрод среде
yopp
Монгосы между собой никак не взаимодействуют. Они чекинятся в CSRS и устанавливают соединения с другими data bearing нодами в кластере
Гена
Разве не странно что коннект проходит а потом отваливается ? Словно на респонсе
yopp
Я сомневаюсь что это проблема в монге, скорее всего проблема где-то между. Особенно если проблема случается когда добавляется другой ДЦ. Но 4.0.4 это очень старая версия, попробуйте обновится до .12 и посмотреть.
Гена
Я вас понял. Спасибо
yopp
Проверьте качество линка до проблемного дц , посмотрите нет ли ошибок в статистике интерфейса. Потом убедитесь что посредине не стоит никаких сетевых фильтров или ещё каких улучшаторов трафика.
Гена
Спасибо.
Andrei
Всем привет. Подскажите пожалуйста, валиден ли такой aggregation pipeline на update? [ { "$project":{ "_id_str":{ "$toString":"$_id" } } }, { "$project":{ "_aoi_name":{ "$concat":[ "localhost:5000", "/collections/", "$properties.vdp:AOIName", "/items/", "$_id_str" ] } } }, { "$addFields":{ "links":[ { "rel":"self", "href":"$_aoi_name" } ] } } ]
Andrei
Могут ли два $project идти подряд и так, чтобы один юзал результат другого
Yurii
Могут ли два $project идти подряд и так, чтобы один юзал результат другого
можно, но твой второй project видет только те поля, что есть в первом. Соответственно, у тебя есть только $_id_str. Если тебе надо до всех существующих полей добавить новое или обновить какие-то существующие - юзай $addFields
Евгений
Мб тогда индексы?
слушай, а разве индексы влияют на скорость записи? у меня просто их нет, если добавлять, то по какому полю? по _id?
yopp
слушай, а разве индексы влияют на скорость записи? у меня просто их нет, если добавлять, то по какому полю? по _id?
Да, влияют. Индекс по _id есть всегда. Это «первичный» уникальный индекс, который связывает записи в document storage со значениями поля _id через внутренний recordId Любой индекс это ещё одно KV хранилище. Как следствие добавляя индекс на одну вставку надо будет добавлять больше ключей, а это больше транзакций в память и больше дисковых операций.
Евгений
мне может как то помочь добавление новых индексов или только ухудшит ситуацию?
Евгений
yopp
Какой запрос в монгу при этом генерируется?
yopp
В разница во времени вставки 4 раза, а в количестве документов в 1000 раз. Вставка это примерно O(logN), log(100k) = 3, log(100m) = 8, 8/3 = 2,66. Это без учёта коэффициента по io timing. В принципе в пределах нормы.
yopp
😐
Посмотрите на утилизацию ресурсов в монге и попробуйте в несколько потоков писать.
Aleksandr
Привет. Подскажите. Есть коллекция с комментариями. У комментов есть поле parent, которое либо null - коммент первого уровня, либо равен id родитесльского коммента. Можно ли одним запросом получить db.find({ parent: null }) и к каждому комменту посчитать, количество его детей (ответов). Или сделать это как-то иначе, чем пройтись циклом и для каждого сделать запрос db.countDocuments({ parent: comment._id }).
Гена
Монгосы между собой никак не взаимодействуют. Они чекинятся в CSRS и устанавливают соединения с другими data bearing нодами в кластере
Добрый день. Сейчас тестировали подключение приложения через два проблемных монгоса на 2ом ДЦ и ошибки Error sending response to client: HostUnreachable: Connection was closed не появлялись НО Caused by: javax.net.ssl.SSLException: Invalid TLS padding data сыпались в приложение и в 2 раза выросло время ответа