Alexander
И сколько максимально можно иметь шард?
yopp
yopp
но даже 50 это огромный лимит. разумных кейсов где его выгрести можно буквально по пальцам
yopp
количество шардов не ограничено
yopp
Tonych
Tonych
Tonych
видимо что-то не так делаю
yopp
https://docs.mongodb.com/manual/tutorial/deploy-shard-cluster/#sharding-deploy-sharded-cluster
yopp
всем привет, в базе есть запись типа такой
{ "_id" : ObjectId("5d94607394db53257d0f8d4d"), "url" : "https://www.instagram.com/433/", "description" : "Check out my Instagram profile with posts about sports!", "title" : "Do you like sports?", "paid_views" : 1000, "user_id" : "5d8e9951469c530de8f1faf127e737baac6fee751cd24", "image" : "", "approved" : true, "created_at" : 1570005107, "view_count" : 16828, "click_count" : 12, "user_view_count" : 2078, "user_click_count" : 7, "last_user_values_update" : 1570014002, "type" : "instagram", "admin" : false, "status" : "completed" }, мне нужно получить все записы которые approved = true и status $nin completed, stop.
делаю такой запрос db.promote_ads.find({approved: true, status: {$nin : ["completed", "stop"]} }) и какое то время он работает корректно, но потом начаниет отдавать записи в которых статус completed или stop, кто то сталкивался с таким?
заранее спасибо
какая версия монги? реплика? как читаете?
Alexander
yopp
2.6 не поддерживается уже 3 года
yopp
я вам настоятельно рекомендую распланировать обновление минимум до 3.6
yopp
В атлас завезут Auto-Scale: https://www.mongodb.com/blog/post/mongodb-atlas-compute-autoscaling-now-in-public-beta
Гена
Всем привет, столкнулся с таким, что монга не высвобождает оперативную память. И забивает ее до тех пор пока не ляжет
Есть какие-то решения кроме баунса?
yopp
yopp
Монга не будет отдавать системе память
yopp
Сколько у вас данных в монге?
yopp
Сколкьо из этого индексы?
Гена
не много. гигов на 35
оперативы 46гб
Гена
в нормальном состоянии есть 17гб оперативы иногда 25
yopp
На этом хосте есть другие сервисы кроме монги?
Гена
нет
Гена
и проблемы только с этим шардом
yopp
yopp
Сколько активных соединений? Сколько запросов в минуту? Какие это запросы?
yopp
Это primary шард?
Гена
yopp
На хосте только mongod?
yopp
Или mongos тоже?
Гена
Что в логах?
Ничего свех такого. Просто в какой-то момент не дает писать
Гена
yopp
yopp
Монга корректно видит доступный ей объём оперативной памяти? Вы не меняли настройки cacheSize?
Гена
Повышеали с 6 до 12
yopp
Зачем?
yopp
И почему «повышали», если у вас 46гб оперативной памяти?
yopp
монга по-умолчанию должна выделять 23Гб
Гена
а почему она не высвобождает место?
yopp
потому что она не должна этого делать
yopp
yopp
в нормальных условиях прогретая монга должна использовать минимум 23Гб памяти
yopp
плюс ещё памяти на соединения, буферы для сортировок и агрегаций
Гена
заметил что бд локал растет
уже 5гб
yopp
это оплог
Саня, блин
Всем привет, я один не могу на атлас зайти?
Саня, блин
Вот это выдает весь день: A server error occurred. Please try again in a minute.
Alex
Хз были проблемы
Alex
Но сейчас отпустило вроде. Час назад коннектился
Alex
Что в морду Клауда что на сервер
Alex
Пни саппорт
Саня, блин
Окей
Саня, блин
Только написал в чат, все заработало..
Alex
Магия
Гена
это оплог
Короче говоря. База разрослась и ей не стало хватать кэша. Плюс какие то супер огромные обращение к дискам около 140к секторов в сек на чтение и почти столько же на запись
Гена
Ну и все это надо реплицировать
Гена
В итоге монга сьедает всю оперативу, лагает сервак, не даёт новым коннектам зайти
Гена
А потом «потрачено»
Anonymous
Друзья, подскажите, пересекающиеся индексы и должны фэйлить в таких условиях или таки можно что-то подкрутить? compound индексы делать не могу, т.к. запросы очень разноплановые. :( Суть проблемы: есть коллекция (300ГБ, 1млрд++ доков, 1 сервер). поля не особо уникальные, уникальны их сочетания.... поля например: фамилия, имя, отчество, год, месяц, день, ещё что-нибудь.... индексы построены по каждому из полей . если идешь запетрищенко василий петрович 2000 12 31, есно ищет за секунду и меньше. а вот "василий петрович 2000 12" выполняется бесконечно. хотя реально васильпетровичей с др 2000.12" немного. а вот каждого из аттрибутов по отдельности явно миллионы....
Anonymous
монговцы что-то недокрутили или так прямо с любой СУБД будет?
Anonymous
что-то в голову не приходит как выкрутиться.... индексов/полей на самом деле 20 штук 😭 все комбинации в виде compound не перечислишь. надо искать по любому полю отдельно и вместе с другими
Nickolay
Сократи кол-во индексов, 20 это много
Anonymous
😂 совет не очень. Если я оставлю допустим 4 индекса: имя отчество год месяц и повторю, 100% ничего не изменится, т.к. проблема совсем в другом.
Anonymous
ещё и перестанет быстро искать по ФИО + ДР
Nick
Друзья, подскажите, пересекающиеся индексы и должны фэйлить в таких условиях или таки можно что-то подкрутить? compound индексы делать не могу, т.к. запросы очень разноплановые. :( Суть проблемы: есть коллекция (300ГБ, 1млрд++ доков, 1 сервер). поля не особо уникальные, уникальны их сочетания.... поля например: фамилия, имя, отчество, год, месяц, день, ещё что-нибудь.... индексы построены по каждому из полей . если идешь запетрищенко василий петрович 2000 12 31, есно ищет за секунду и меньше. а вот "василий петрович 2000 12" выполняется бесконечно. хотя реально васильпетровичей с др 2000.12" немного. а вот каждого из аттрибутов по отдельности явно миллионы....
Эксплейн запускать пробовали? И ограничен ли минимальный набор полей, типа обязателен год и фамилия?
Andrey
подскажите пожалуйста. запустил праймари (после того как repair выполнил) mongod --replSet MONGOSERVER --dbpath /home/mongodb1/mongodb
а мне ругается
REPL_HB [replexec-2] Error in heartbeat (requestId: 7987) to ххх.ххх.ххх.ххх:27017, response status: Unauthorized: not authorized on admin to execute command { replSetHeartbeat: "MONGOSERVER", configVersion: 2, hbv: 1, from: "PRIMARYIP:27017", fromId: 0, term: 79, $replData: 1, $clusterTime: { clusterTime: Timestamp(1569303206, 1), signature: { hash: BinData(0, C885A47834CDFCFFCD73012740BC3BC96FB54AC2), keyId: 6700105722849394689 } }, $db: "admin" }
Andrey
ну и база админ не нужна там
Alex
Всем привет
Alex
есть кто шарит в race contition тут?
Vova
Serhii
Всем привет, подскажите пожалуйста, есть две коллекции (_id, name, lastName and userId, test: [], test1: []) - нужно сделать хитренький запрос который вернет один обьект в котором будет _id, name, lastName, test, test1(из другой коллекции) или лучше просто сделать несколько запросов и смержить два обьекта?
Alex
START TRANSACTION;
SELECT balance, id FROM users WHERE id = ?
в общем делаю запрос, так не работает, убираю старт тразакций - работает
Alex
что делать
yopp
подскажите пожалуйста. запустил праймари (после того как repair выполнил) mongod --replSet MONGOSERVER --dbpath /home/mongodb1/mongodb
а мне ругается
REPL_HB [replexec-2] Error in heartbeat (requestId: 7987) to ххх.ххх.ххх.ххх:27017, response status: Unauthorized: not authorized on admin to execute command { replSetHeartbeat: "MONGOSERVER", configVersion: 2, hbv: 1, from: "PRIMARYIP:27017", fromId: 0, term: 79, $replData: 1, $clusterTime: { clusterTime: Timestamp(1569303206, 1), signature: { hash: BinData(0, C885A47834CDFCFFCD73012740BC3BC96FB54AC2), keyId: 6700105722849394689 } }, $db: "admin" }
https://docs.mongodb.com/manual/core/security-internal-authentication/#inter-process-auth
yopp
И пожалуйста, не надо сюда постить большие блоки текста. gist.github.com. Надо наверное на play.db-ai.co добавить возможность просто текст пастить
yopp
Друзья, подскажите, пересекающиеся индексы и должны фэйлить в таких условиях или таки можно что-то подкрутить? compound индексы делать не могу, т.к. запросы очень разноплановые. :( Суть проблемы: есть коллекция (300ГБ, 1млрд++ доков, 1 сервер). поля не особо уникальные, уникальны их сочетания.... поля например: фамилия, имя, отчество, год, месяц, день, ещё что-нибудь.... индексы построены по каждому из полей . если идешь запетрищенко василий петрович 2000 12 31, есно ищет за секунду и меньше. а вот "василий петрович 2000 12" выполняется бесконечно. хотя реально васильпетровичей с др 2000.12" немного. а вот каждого из аттрибутов по отдельности явно миллионы....
Использовать полнотекстовый поиск
yopp
Ваша задача одинаково плохо будет решаться в любом хранилище
Andrey
Извините