Aga
По одному нормально
и последний вопрос, для продакшна где будет тысячи запросов в секунду в БД, есть какие-то лайфхаки?
yopp
Но если что, я сижу в самолете и жду когда мы всё-же полетим.
Aga
Или просто поставить по инструкции голую монгу и юзать?
yopp
Вложиться в observability
yopp
Чтоб видеть где возникнут проблемы
Aga
yopp
Да, лайфхак заключается в наличии данных о состоянии кластера
yopp
Начать можно с Percona Monitoring
yopp
Наше наверное будет только через полгода готово
Aga
ух
Андрей
Покажите на примерах пожалуйста. Не понятно что вы хотите получить в итоге
Есть данные
{ "_id" : "1", "text" : "hello" } { "_id" : "2", "text" : "hello2", "parent" : 1 } { "_id" : "3", "text" : "hello3", "parent" : 2 } { "_id" : "4", "text" : "hello4", "parent" : 3 }
Я хочу получить при запросе объекта с text=hello4 получить объект
{ "id" : "4", "text" : "hello4", "parent" : 3, "parents":[3,2,1]}
Aga
Пару тысяч запросов в секунду монга потянет голая?
yopp
Может потянуть, а может не потянуть
Aga
Свечку поставлю))
yopp
на моем древнем эйре 2013 года монга может выжимать 23-25 тысячи запросов на вставку или около сотни мегабайт в секунду. Дальше уже в ссдшку упирается. Но это абстрактные документы в абстрактную коллекцию в вакууме
yopp
Про сотню я наверное вру, скорее всего побольше. Но документы очень маленькие: по сути три ключа
Nick
Пару тысяч запросов в секунду монга потянет голая?
настолько сильно зависит от данных, вида запросов, железа, да и как вообще приложуха их кидает, что здесь нельзя ответить однозначно. Так что настраивайте, имитируйте работу приложения, желательно даже чтоб сам софт был тот же что будет потом в проде и грузите извне, а там смотрите справляется с вашими тящами рпс или нет
Aga
Aga
Инстаграм через два дня упал, но потому же встал)
Aga
Будет даже приятно, что от большого трафика упали)
Roman
Привет!
Подскажите, пожалуйста, насколько плохая идея включения профилирования запросов с параметром (2) на продакшене?
Андрей
Есть данные
{ "_id" : "1", "text" : "hello" } { "_id" : "2", "text" : "hello2", "parent" : 1 } { "_id" : "3", "text" : "hello3", "parent" : 2 } { "_id" : "4", "text" : "hello4", "parent" : 3 }
Я хочу получить при запросе объекта с text=hello4 получить объект
{ "id" : "4", "text" : "hello4", "parent" : 3, "parents":[3,2,1]}
Есть идеи как сделать?
Bro
Bro
Bro
Bro
Насколько быстро?
Alexander
λ
AstraSerg
Поздравляю прекрасную половину нашего чатика! Верю, вы есть и спасибо вам за это :)
Slava
Sardor
Ребят, как можно написать на node.js, чтобы .updateOne() срабатывал, только если в коллекции нет документа со значениями, переданными первым аргументом (поиск)? upsert: false за это отвечает?
Veaceslav
Всем привет. Мужики подскажите плиз что я не правильно делаю,
Есть такой запрос: AlertModel.find({status: {status: 'sended'}})
Вот только ничего не может найти в базе... Хотя вроде как должен
Veaceslav
Вот и Object в базе. Подскажите что не так с запросом ?
Заранее спасибо
Ilya
yopp
Nariman
Всем привет. Есть три сервера mongodb с обы4ной репликой + eсть java app в apache tomcat который записывает обы4ные логи в один MongoDB, при падении первои node-ы запись в DB берет на себя вторая node-а, но tomcat все еще пытается отправлять логи на node1. Мой вопрос: Как app правильным методом должен узнать о правильнои node ? Заранее благодарен
Denis
Denis
Nariman
Denis
И это будет работать автоматом ?
Точнее мне кажется лучше так делать
MongoClient mongoClient = new MongoClient(
new MongoClientURI(
"mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myReplicaSet"));
Да. Драйвер для подключения к монге коннектится к репликасету и попадет на мастера всегда
Nariman
То есть driver знает какая noda - активна какая в down-е а какая read only ?
Denis
Nariman
Nariman
Viktor
@dd_bb ^
Nariman
Nariman
Nariman
Да согласен но запицыва только log-и
AstraSerg
Stas
Привет. Подскажите как сделать выборку из коллекции бд?
Есть бд all, в ней есть коллекция users, db.all.users.find() ничего не выводит
AstraSerg
Сделайте use all потом db.users.find()
Stas
Большое спасбо)
AstraSerg
Да не за что. Если хотите углубиться в монгу, рекомендую https://unuversity.mongodb.org
RapidCodeLab
Привет, я пока только пробую, вопрос такой, допустим коллекция в 100М записей, по ней нужно сделать какие-то операции, при чем не по всей, а выборки по некторым полям, но в выборке тоже по миллионов 10-30 будет, как адекватно это сделать?
RapidCodeLab
я так понял там курсор возвращяется а не все данные из коллекции?
RapidCodeLab
то есть можно по курсору фигачить
AstraSerg
Так же как и другие выборки, find. Да, конечно курсор возвращается.
RapidCodeLab
то есть память всей коллекцией не сожрется, плохо понимаю, сорри. вот из постгреса если сделать выборку, он весь результа в память приложению отдает, без limit
RapidCodeLab
то есть если не юзать limit
AstraSerg
RapidCodeLab
limit/offset только, если я правильно понял
RapidCodeLab
select не возвращяет курсор же там
AstraSerg
Лимит не о том
AstraSerg
RapidCodeLab
select * where условие, с индлексами на полях, очень медленно работает
AstraSerg
Если у вас питон, попробуйте померять память при помощи memit
RapidCodeLab
по 40-50 сек, на 2М базе
RapidCodeLab
у меня golang
Nick
ну так посмотрите там что предлагается
Nick
и запомните - если вы выбираете все данные, то это всегда долго
RapidCodeLab
там скан всей таблицы
RapidCodeLab
RapidCodeLab
постгрес просто липнет