Алексей
Вообще раньше все ок было. Монга жила спокойно на 4гб. Потом было обновление нашей API в который часть запросов были переведены на aggregation. И началось. Видимо зря это было сделано (
yopp
добавьте памяти, делов то
AstraSerg
Serhio
Serhio
AstraSerg
В смысле криво было реализовано? Возможно.
да, непродуманные запросы. Посмотрите в сторону оптимизации, может переделать какие индексы
UPD могу конечно ошибаться, но раз такие симптомы, не плохо бв проверить, explain-ы погонять
yopp
AstraSerg
Алексей
скорее всего добавить памяти самый дешевый и простой выход в вашей ситуации
Это можно конечно. Но просто при размере базы чуть больше 1гб съедать 8гб оперативы чет как-то не очень перспектива. К тому же мне нужно именно проблему решить, а не просто сделать так чтоб сейчас по быстрому работало. Я думаю все таки переписать с aggregation на обычные запросы и затестить.
yopp
это вполне реальная перспектива
Алексей
Спасибо за ответы)
yopp
переписать обратно это десятки человекочасов, лишние 8 или 16 гигабайт памяти того совершенно не стоят
yopp
использование памяти субд это не проблема
yopp
если у вас много трансформаций в AF, это нормально
yopp
монге нужен буффер для трансформированных документов
yopp
если вы хотите быстро что-то решить, то как уже сказали — ограничьте размер кеша WT. По-умолчанию это половина памяти. Вручную выставьте лимит в 3/8 например
Алексей
Хорошо. Я понял.
Andrey
Добрый день. Есть реплика сет из 3х нод и 2х арбитров. Упала одна реплика. Хочу запустить полную репликацию. Но опыта работы с репликами почти нет. Я правильно понял, что я должен вычистить содержимое директории с базами, стартануть ноду. После чего, запустится копирование на эту реплику, а затем долгий процесс индексации?
AstraSerg
AstraSerg
вот полезно ознакомиться: https://docs.mongodb.com/manual/reference/method/rs.add/
Andrey
Max
привет! первый раз создаю кластер на монгодб кластере - подскажите какую версию монги лучше выбрать 3.6 или 4 ? На что это влияет (цена/стабильность?)?
yopp
4
Max
ᅠ ᅠ ᅠ ᅠ
4
не подскажете, куда копать с моей ошибкой?
ᅠ ᅠ ᅠ ᅠ
yopp
¯\_(ツ)_/¯
yopp
возможно сокеты
yopp
может быть они у вас там текут, и в после N запроса тупо нехватает дескрипторов или что-то в этом духе.
ᅠ ᅠ ᅠ ᅠ
у меня на одном и том же месте при вставке вылетает это исключение
yopp
да, именно по этому
Nick
Nick
и кстати как насчет обновить драйвер?
ᅠ ᅠ ᅠ ᅠ
ᅠ ᅠ ᅠ ᅠ
не самый старый вроде бы
Nick
ну да
yopp
моё предположение что из-за database.getCollection("collection") у вас текут сокеты
ᅠ ᅠ ᅠ ᅠ
yopp
почитать внимательно документацию к драйверу
Nick
кстати как вариант, просто вынесите database.getCollection("collection") в переменную
yopp
возможно вы где-то неправильно его используете
Constantin
Nick
и уже ее используйте
ᅠ ᅠ ᅠ ᅠ
yopp
жава же
ᅠ ᅠ ᅠ ᅠ
Constantin
Nick
еще один момент, вроде выше упоминалось что какоето число доков вставляется, а потом все стопается, если так то сколько влезает и всегда ли одни и те же доки в одном и том же порядке вставляются?
Nick
кстати да в стектрейсе нет insertOne, походу надо запрашивать код в студию
ᅠ ᅠ ᅠ ᅠ
ᅠ ᅠ ᅠ ᅠ
пишу вот так https://ghostbin.com/paste/hxpep
ᅠ ᅠ ᅠ ᅠ
ошибка указывает на строчку Document found = collection.find().first();
yopp
в этот момент в логах монги что?
ᅠ ᅠ ᅠ ᅠ
Nick
текс, я помню этот код и этот случай. смотрю вы особо ничему не учитесь в плане работы с кодом
Nick
для начала вам нужно научитсья работать с обычными коллекциями, а уже когданить потом переходить на capped
Constantin
Вы уверены, что у find возвращает что-то?
Constantin
Чтобы делать .first()
Constantin
Вообще его можно делать, если .find ничего не нашел?
Nick
оффтоп по коду. в том куске что вы скинули до сих пор остался поиск и после этого вставка, хотя между этими соыбтиями уже в базе мог появиться такой же документ
личная претензия к названиям переменных - вы пишите на java - будьте добры следовать java naming convention и никакой отсебятины
4 уровень вложенность в if - дико увеличивает сложность чтения - нужно выносить код в функции либо упрощать
у вас есть абсолютно одинаковые объекты new Document - вынесите в переменную ипереиспользуйте
использовать курсор как итератор уже давно моветон есть for each
Constantin
Я не пишу на java, но похоже, что first — это метод курсора, и складывается впечатление, что он просто не может ничего вернуть
Constantin
Из-за того у вас может стрим упасть
Nick
ᅠ ᅠ ᅠ ᅠ
Nick
Ivan
какая версия?
3.6 Не могли бы вы подсказать далее про журнал?
yopp
yopp
в будущем указывайте полную версию
yopp
и платформу
Ivan
платформа это типа реплика или шард и т.п.?
Ivan
оу, открыл. Rhel
Ivan
сейчас скажу полную версию: v3.6.6, rhel
yopp
после перезапуска журнал очищается?
yopp
универсальный совет: попробуйте обновится до последней версии
Ivan
1) перезапуститься монга не смогла, т.к. журнал на отдельном разделе (о чём тоже вопрос, надо ли оно и какой размер ему.)
2) Спасибо.
Вообще в журнале что хранится? Какая-то корреляция с оплогом есть?