
Bo0m4ik
26.09.2018
14:53:20
mongos

yopp
26.09.2018
14:54:04
это не балансер, это роутер. но всё сложнее.
шардирование требует специального реплика сета для хранения карты данных и конфигурации и mongos

Bo0m4ik
26.09.2018
14:54:19
наверное надо опять почитать
спасибо!

Google

yopp
26.09.2018
14:54:25
и одного и более реплика сета
каждый реплика сет будет хранить кусок данных

Bo0m4ik
26.09.2018
14:55:01
а мастер так же один останется?

yopp
26.09.2018
14:55:13
в каждой реплике будет свой праймари

Bo0m4ik
26.09.2018
14:57:37

AstraSerg
26.09.2018
15:01:41

invzbl3
26.09.2018
16:38:45
ребят, объясните мне, пожалуйста, что делать, если у меня в процессе вставки методом insertOne() в строчке Document found = database.getCollection("collection").find().first(); вылетает ошибка https://ghostbin.com/paste/rx9rs?
я посмотрел решение с учетом ошибки com.mongodb.MongoSocketReadException: Prematurely reached end of stream здесь https://stackoverflow.com/questions/42150578/mongodb-com-mongodb-mongosocketreadexception-prematurely-reached-end-of-strea, но как решить проблему у себя не пойму
если у меня подключение к кластеру вообще


AstraSerg
26.09.2018
16:48:20
Извините, не в курсе. Джавайские стактрейсы повергают в уныние :)

Ivan
27.09.2018
08:46:49
Привет!
Что ведёт к росту файлов журнала?
Монга в реплике, не мастер.

Google

Ivan
27.09.2018
08:49:58
и есть ли какие-то рекомендации к размеру раздела под journal? Может быть в % от базы? Я не нашёл

Kolya
27.09.2018
09:08:54
Ребят, а кто подскажет, если у меня в БД лежит строка и в ней число, и я сделаю поиск с $gte, монга приведет типы и сравнит как число?

Nick
27.09.2018
09:10:51

Kolya
27.09.2018
09:11:06

Nick
27.09.2018
09:14:23
но если вы знаете все варианты типов, то можете использовать$or например вот так
db.getCollection('t1').find({
$or:[
{ddd:"-1"},
{ddd:-1}
]
})

Алексей
27.09.2018
09:34:14
При запросе через aggregation теряется курсор. Ошибка "cursor not found". У реплика сета настройка SecondaryPreferred . Если поставить Primary, то все ок. Подскажие пожалуйста что за фигня?

Kolya
27.09.2018
09:36:44

yopp
27.09.2018
09:37:18

Алексей
27.09.2018
10:51:09
Если шлётся 20-30 aggregation запросов в секунду достаточно жирных с lookup, group, sort, cond. Это может стать причиной того что монга съедает всю доступную оперативную память? Я понимаю что очень общий вопрос без конкретики, но все-таки.
Или можно по другому сформулировать. aggregation запросы требовательны к памяти?

AstraSerg
27.09.2018
10:52:17

yopp
27.09.2018
10:53:24
ту часть, которую монга использует для кешированния данных вы можете подкрутить, если у вас wt
другую часть не можете
но и смысла нет

Алексей
27.09.2018
10:54:38

yopp
27.09.2018
10:54:57
вот видите, формулировака проблемы уже изменилась :)
отключите oom для монги
если кроме монги на этой ноде есть другие сервисы, их лучше вынести куда-то ещё. или монгу подвинуть на ноду, где ей не надо бороться за память

Google

yopp
27.09.2018
10:56:18
если такой возможности нет, попробуйте на 1/4 уменьшить размер кеша для WT
но это уже может иметь последствия в виде увеличения latency у запросов

Ivan
27.09.2018
10:57:25

Алексей
27.09.2018
10:57:26
Тем более там данных-то мало. Но съедает 8гб .
db.stats()
{
"collections" : 8,
"views" : 0,
"objects" : 6214295,
"avgObjSize" : 187.630542804936,
"dataSize" : 1165991544.0,
"storageSize" : 664494080.0,
"numExtents" : 0,
"indexes" : 20,
"indexSize" : 348192768.0,
"fsUsedSize" : 25555324928.0,
"fsTotalSize" : 210999894016.0,
"ok" : 1.0
}

Serhio
27.09.2018
10:57:30
yopp а чем плох вариант ограничить размер памяти отдельной ручкой?

yopp
27.09.2018
10:57:39
потом эта ручка ограничивает кеш wt
я не уверен что память для сортировок и прочего туда входит

Алексей
27.09.2018
10:58:59
отключите oom для монги
А это нормальная практика? Мне админы говорили что лучше так не делать. На ноде кроме монги важных сервисов нет.

Serhio
27.09.2018
10:59:41

yopp
27.09.2018
11:00:35
Тем более там данных-то мало. Но съедает 8гб .
db.stats()
{
"collections" : 8,
"views" : 0,
"objects" : 6214295,
"avgObjSize" : 187.630542804936,
"dataSize" : 1165991544.0,
"storageSize" : 664494080.0,
"numExtents" : 0,
"indexes" : 20,
"indexSize" : 348192768.0,
"fsUsedSize" : 25555324928.0,
"fsTotalSize" : 210999894016.0,
"ok" : 1.0
}
одна аггрегация может использовать толи 64 толи 128 мегабайт памяти под свои цели
30 агрегаций в секунду по 128 мегабайт, это уже близко к 4 гб

Алексей
27.09.2018
11:02:13
Вообще раньше все ок было. Монга жила спокойно на 4гб. Потом было обновление нашей API в который часть запросов были переведены на aggregation. И началось. Видимо зря это было сделано (

yopp
27.09.2018
11:02:30
добавьте памяти, делов то

AstraSerg
27.09.2018
11:02:49

Serhio
27.09.2018
11:02:57

yopp
27.09.2018
11:03:33

Алексей
27.09.2018
11:03:40

Serhio
27.09.2018
11:03:52

Google

AstraSerg
27.09.2018
11:04:22
В смысле криво было реализовано? Возможно.
да, непродуманные запросы. Посмотрите в сторону оптимизации, может переделать какие индексы
UPD могу конечно ошибаться, но раз такие симптомы, не плохо бв проверить, explain-ы погонять

yopp
27.09.2018
11:04:52

Serhio
27.09.2018
11:05:54

AstraSerg
27.09.2018
11:06:01

Алексей
27.09.2018
11:10:07

yopp
27.09.2018
11:10:31
это вполне реальная перспектива

Алексей
27.09.2018
11:11:10
Спасибо за ответы)

yopp
27.09.2018
11:11:13
переписать обратно это десятки человекочасов, лишние 8 или 16 гигабайт памяти того совершенно не стоят
использование памяти субд это не проблема
если у вас много трансформаций в AF, это нормально
монге нужен буффер для трансформированных документов
если вы хотите быстро что-то решить, то как уже сказали — ограничьте размер кеша WT. По-умолчанию это половина памяти. Вручную выставьте лимит в 3/8 например

Алексей
27.09.2018
11:15:21
Хорошо. Я понял.

Andrey
27.09.2018
12:10:41
Добрый день. Есть реплика сет из 3х нод и 2х арбитров. Упала одна реплика. Хочу запустить полную репликацию. Но опыта работы с репликами почти нет. Я правильно понял, что я должен вычистить содержимое директории с базами, стартануть ноду. После чего, запустится копирование на эту реплику, а затем долгий процесс индексации?

AstraSerg
27.09.2018
12:21:01
вот полезно ознакомиться: https://docs.mongodb.com/manual/reference/method/rs.add/

Andrey
27.09.2018
13:20:33

Maxim
27.09.2018
14:22:21
привет! первый раз создаю кластер на монгодб кластере - подскажите какую версию монги лучше выбрать 3.6 или 4 ? На что это влияет (цена/стабильность?)?

yopp
27.09.2018
14:26:12
4

Google

Maxim
27.09.2018
14:28:41

invzbl3
27.09.2018
14:54:37
4
не подскажете, куда копать с моей ошибкой?

yopp
27.09.2018
14:55:18
¯\_(ツ)_/¯
возможно сокеты
может быть они у вас там текут, и в после N запроса тупо нехватает дескрипторов или что-то в этом духе.

invzbl3
27.09.2018
14:56:00
у меня на одном и том же месте при вставке вылетает это исключение

yopp
27.09.2018
14:56:12
да, именно по этому

Nick
27.09.2018
14:56:55
и кстати как насчет обновить драйвер?

invzbl3
27.09.2018
15:01:49
не самый старый вроде бы

Nick
27.09.2018
15:03:02
ну да

yopp
27.09.2018
15:03:21
моё предположение что из-за database.getCollection("collection") у вас текут сокеты

invzbl3
27.09.2018
15:03:41

yopp
27.09.2018
15:03:59
почитать внимательно документацию к драйверу

Nick
27.09.2018
15:04:17
кстати как вариант, просто вынесите database.getCollection("collection") в переменную