Mike
Mike
yopp
Не туда извиняетесь ;)
Сергей
а если каждому обьекту нужно дополнительное свойство время загрузки данных в бд я должен во время того как делаю инсерт в бд засунуть свойство по ид?
Сергей
Сергей
подскажите пожалуйста как получить данные с монго
Max
Привед. есть необходимость вырубить монгу в докере и поставить на хосте как сервис. если я просто покажу новой монге директорию от старой это будет работать?
Успішний Андрій
Почему когда я пытаюсь создать индекс для ttl chat.createIndex({ 'createdAt': 1 }, { expireAfterSeconds: 21600 }), я получаю ошибку nhandledPromiseRejectionWarning: MongoError: Index with name: createdAt_1 already exists with different options?
Почему если я прописываю chat.dropIndex('createdAt') перед попыткой создать этот индекс, я получаю ошибку MongoError: index not found with name [createdAt]?
Suworow
а что будет если спросить getIndexes()?
Suworow
(про то что оно пишет "createdAt_1 already exists", а не createdAt я пока молчу)
Успішний Андрій
а что будет если спросить getIndexes()?
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "mongochat.chats"
},
{
"v" : 2,
"key" : {
"expireAt" : 1
},
"name" : "expireAt_1",
"ns" : "mongochat.chats",
"expireAfterSeconds" : 20
},
{
"v" : 2,
"key" : {
"createdAt" : 1
},
"name" : "createdAt_1",
"ns" : "mongochat.chats",
"expireAfterSeconds" : 10
}
]
Dmitriy
Успішний Андрій
Suworow
Успішний Андрій
Сергей
проблема с асинхроностью .find
Сергей
Сергей
Сергей
один раз загружается как нажимаю обновить ломается приложение
Сергей
а все
Сергей
удивлен но сам решил
Сергей
хорошо
Ivan
Спасибо =)
Nick
Max
Может подскажете - состояние реплики пишется в базу или оно сессионное? Поможет ли рестарт контейнера вернуть mongod из other в primary?
Nick
Max
В таком состоянии уже несколько дней, через роутер нормально работает чтенте/запись, но попасть в шелл и подиагностить/переконфигурировать не удаётся.
Max
Mongodump тоже не коннектится.
yopp
Max
Состояние динамическое, зависит от настроек и текущей топологии. У вас реплика или шард?
На текущий момент 3 докер контейнера на первом хосте - mongod с данными, mongod config srv с "заделом" под будущий шард и mongos router. из мира доступен только mongos. Я недостаточно разобравшись, будучи в шелле mongod сделал rs.init и add mongod с другого хоста, но т.к. их было два, кворум не прошел и была ошибка недоступности или не корректного конфига реплики. в итоге первый mongod стал other, второй вроде тоже. попытка сделать его primary с force не удалась, добавление третьего в роли арбитра тоже. я сейчас не очень помню детали, завтра продолжу разбираться.
Max
такое вот legacy мне досталось)
yopp
Самый простой способ это перезапустить самую «свежую» ноду в stand-alone, сделать резервную копию admin базы и удалить ее. После чего настроить реплику по новой
yopp
Не используйте mongos и конфиг сервер в такой топологии, если у вас ноды не запущены в режиме shardsrv
Max
yopp
Либо настраивайте сразу шард
yopp
Вы писали что «их было два»
yopp
Но не суть важно. Если нода одна, то перезапустить без replset, сделать дамп и удалить local базу (не admin, перепутал)
Max
т.к. нет опыта с монгой и нет актуального бэкапа ( до меня их вообще не делали), то разрабы несколько ссу** переживают и не дают с пинка перезагружать докеры, поэтому жду выделения окна и буду разбираться дальше
yopp
После чего реплику можно будет настроить по новой
yopp
Она клиентов сейчас не обслуживает, как я понимаю?
Max
yopp
Если вы в неё можете и писать и читать, то mongodump должен работать. Потому что он просто тупо открывает курсор в каждую коллекцию и пишет на диск прочитанные документы
yopp
yopp
Если удалить local базу, то сбросятся настройки репликации
yopp
А значит нода будте в non initialized state и вы сможете её корректно настроить
Max
Max
yopp
А что в случае с force происходит?
Max
А что в случае с force происходит?
чтоб я помнил) хотел заняться этим завтра днём, на свежую голову. первые пару месяцев, разгребаю конюшни, каждый день весело) возможно я просто не так её запускал, но он ругался на аргумент. хотя делал по ману.
Max
@dd_bb завтра в течении дня у вас будет время на ответы?
Max
окно то мне в любом случае раньше 21го не дадут, но хоть первичную инфу соберу и подиагностирую.
Max
@dd_bb в любом случае спасибо за ответы, становится понятнее куда копать дальше.
D
Здрасьте. Скажите, а монга до сих пор кушает память размером с себя? Можно ли запустить базу (с примерно 50 тыщ рпм) размером 300 гигов, на машине с 64 гигами без боли? Я не работал с ней уже несколько лет, такого рода инфа плохо ищется.
Светомеч
yopp
Здрасьте. Скажите, а монга до сих пор кушает память размером с себя? Можно ли запустить базу (с примерно 50 тыщ рпм) размером 300 гигов, на машине с 64 гигами без боли? Я не работал с ней уже несколько лет, такого рода инфа плохо ищется.
Если вы не используете MMAPv1, и не крутите ручку с размером Кеша в WiredTiger, то вероятнее всего размер используемой памяти стабилизируется на какой-то отметке.
Но кроме использования памяти под кэш для данных, есть ещё память которая используется для обработки запросов: буфферы курсоров, буфферы для сортировок и агрегаций, сетевые буфферы и т.д.
Размер этих структур никак не ограничивается, так как они являются критически важными для обработки запросов и реальное потребление памяти будет зависеть ещё и от вас, а именно от того какие именно запросы и в каких количествах у вас выполняются.
D
yopp
Вторая часть обычно имеет существенно меньший эффект, чем размера кэша для данных. Но если у вас есть какие-то тяжелые запросы с точки зрения memory complexity, например большие сортировки (по-моему до 32мб на курсор) или тяжёлые агрегации (до 100мб на пайплайн), то очевидно что 1000 параллельных запросов будут требовать значительного объёма памяти
D
частые запросы не агрегатные, агрегатные с огромными сортировками тоже есть, но редкие.
yopp
Я сомневаюсь что я сможете ботами получить какую-то близкую к реальности картину
D
монга умеет работать с коллекцией не загружая ее в память целиком?
yopp
Самый простой способ это записать реальный флоу с системы и проиграть его на тестовом столе, так как реальное потребление будет в первую очередь от распределения запросов во времени
yopp
Не понимаю ваш вопрос
D
в ранних версиях ей это вроде бы требовалось, от того она и жрала жадно память
yopp
Всё равно не понимаю ваш вопрос :)
D
ну она не могла сделать скан по коллекции или поиск по индексу, если они не загружены в оперативку
D
то есть по диску, частями, с временными файлами, как это делает постгрес
yopp
В любом хранилище данные с диска не возможно прочитать мимо памяти
yopp
Просто потому что так устроена вычислительная архитектура