@MongoDBRussian

Страница 320 из 342
Vova
02.10.2018
11:54:43
AstraSerg
02.10.2018
11:55:43
Пасюк Лошадкин
02.10.2018
11:57:10
Google
yopp
02.10.2018
12:07:50
elemMatch всегда только 1 возвращает
а, да, вам два надо. можно через $filter выражение aggregate([ { $addFields: { strings: { $filter: { input: "$strings", as: "item", cond: { $in: [ "$$item", ["1", "2"] ] } } } } } ])

А как их закрывать?
Как в сбербанке: «Где открывали, там и закрывайте» ;) Изучите документацию к своему драйверу

Пасюк Лошадкин
02.10.2018
12:14:19
К драйверу "хероку")

Боты то там

yopp
02.10.2018
12:15:18
ваши боты вероятно написаны на каком-то языке, этот язык используя какой-то драйвер ходит в монгу

Constantin
02.10.2018
12:30:47
А как их закрывать?
Выключите все ваши приложения, подключенные к базе и проверьте

Уменьшилось число коннектов или нет

Перед этим я еще советую проверить авторизацию, все ли с ней хорошо

Какая вероятность того, что вас могли расковырять и прямо сейчас куча плохих ботов что-то делает с вашей базой?

yopp
02.10.2018
12:31:55
в атласе и так авторизация по-умолчанию

не нужно сложных теорий строить, с вероятностью 90% это где-то в приложении проблема

либо в деплое

в зависимости что за тариф на хероку, там может так быть, что несколько контейнеров с приложениями запускаются

Google
AstraSerg
02.10.2018
12:54:34
не нужно сложных теорий строить, с вероятностью 90% это где-то в приложении проблема
В данном случае я бы всё таки предостерег нашего уважаемого Алиса, так как подход «Кому я нужен» чреват боком :)

Banschikov
02.10.2018
13:52:11
да
Подскажите, а как можно посмотреть чему равно это значение в самой монге?

Banschikov
02.10.2018
14:14:52
db.serverStatus().wiredTiger.cache["maximum bytes configured"]
его можно передать как аргумент при запуске? Где то видел инфу по этому поводу, но что то не могу найти

yopp
02.10.2018
14:16:28
mongod --help

Banschikov
02.10.2018
14:16:54
mongod --help
ок чекну

Nick
02.10.2018
14:24:04
@dd_bb подскажи, есть шардирвоанный кластер, count() с условием выдает что на одном из шардов есть доки, на остальных нет. Но find их не видит, ни черег стандартный шел, ни через софтовый драйвер если цеплятсья через mongos. Если прицепитсяь напрямую к репликасету, то там find выдает данные

yopp
02.10.2018
14:24:40
кто-то записал данные мимо mongos?

Nick
02.10.2018
14:24:50
что за хрень может быть и как лечится. версия 3.4.14

нет, только через него

yopp
02.10.2018
14:25:40
проверь что есть чанки которые покрывают такие документы

Nick
02.10.2018
14:25:41
данные записаны на прошлой неделе, для заливки и обработки через стандартны жавадайвер

yopp
02.10.2018
14:26:05
и что чанк указывает на тот шард, на котором на самом деле находятся документы

Nick
02.10.2018
14:26:07
это в конфиг.chunks?

yopp
02.10.2018
14:26:15
да, где-то там

потому что если видно в shard-local и не видно через mongos — значит проблема где-то на уровне карты шарда

проверь что монгосы видят все шарды ещё

Nick
02.10.2018
14:27:49
спасибо за наводку, была первоначальная разбивка на чанки и их миграция скриптом, пока не было данных

yopp
02.10.2018
14:28:26
ну легко могли ошибиться в настройке драйвера, могли что-то нахимичть с чанками

Google
yopp
02.10.2018
14:28:59
может быть с топологией проблемы: не все ноды друг другу видны

Alexey
02.10.2018
14:29:17
Привет, народ. А расскажите про борьбу с jumbo чанками. Скажем, есть jumbo чанки...есть ли способ посмотреть их размеры?

yopp
02.10.2018
14:30:00
берём чанк с флагом jumbo. берём диапазон ключа этого чанка, делаем find с этим диапазоном и считаем размер bson :)

Alexey
02.10.2018
14:31:41
эм...а как считается размер bson?)

Object.bsonsize?

Constantin
02.10.2018
14:32:24
invzbl3
02.10.2018
14:35:43


The mongodb+srv option will fail if there is no available DNS with records that correspond to the hostname identified in the connection string. In addition, use of the +srv connection string modifier automatically sets the ssl option to true for the connection. You can override this behavior by explicitly setting the ssl option to false with ssl=false in the query string. https://docs.mongodb.com/manual/reference/connection-string/#dns-seedlist-connection-format

?

Nick
02.10.2018
14:36:31
потому что если видно в shard-local и не видно через mongos — значит проблема где-то на уровне карты шарда
допустим я нашел, что док находит в чанке, который по мнению монгоса находится на другом шарде, какие действия?

Alexey
02.10.2018
14:37:01
а вот такой вопрос...Для того, чтобы перенести эти jumbo чанки на другие шарды надо на конфигсерверах поднять chunkSize, в этом случае надо помечать jumbo как "уже не jumbo" или монга сама их пометит при следующей попытке смигрить?

Пасюк Лошадкин
02.10.2018
14:39:41
если у вас каждый «бот» это отдельное приложение, проблема может быть и в случае с connection pool. например если ваш драйвер использует пул из 16 соединений, то на 7 приложений это уже 112 штук
Спасибо всем, кто помогал) вопрос решён. Этот ответ оказался верным, так как какой-то один мой неиспользуемый бот забивал все 100 подключений. Видимо, зациклился

Выключил ненужных - стало 7 коннектов

Так что всё-таки моя база никому не нужна)

Если у кого-то внезапно возникает такая ошибка, то это, видимо, из-за забитых коннектов

invzbl3
02.10.2018
14:42:24
Питон использую, да
а версия у вас 3.6+?

Пасюк Лошадкин
02.10.2018
14:42:32
3.6.1

invzbl3
02.10.2018
14:42:45
3.6.1
у меня тоже, не могу подключиться никак к нему

Google
invzbl3
02.10.2018
14:42:58
кидает исключение

до 3.6 нет +srv и таких проблем не возникало, а тут пишет, что нельзя

3.6.1
Вы кроме того, что прописываете client = pymongo.MongoClient("mongodb+srv://kay:myRealPassword@cluster0.mongodb.net/test") db = client.test что-то еще настраивали?

Пасюк Лошадкин
02.10.2018
14:46:06
Нет

invzbl3
02.10.2018
14:46:12


может еще что-то нужно

Пасюк Лошадкин
02.10.2018
14:46:32
может еще что-то нужно
А в чем проблема?

invzbl3
02.10.2018
14:46:47
проблема с подключением

пишет, что +srv не должно быть, хотя я использую 3.6.1 драйвер

Пасюк Лошадкин
02.10.2018
14:47:14
А, java Извини, но тут я бессилен

Знаю питон)

invzbl3
02.10.2018
14:47:55
А, java Извини, но тут я бессилен
у нас с подключением принцип по идее один и тот же

Пасюк Лошадкин
02.10.2018
14:48:15
Возможно Могу скинуть весь код подключения своего

Для сравнения

invzbl3
02.10.2018
14:48:26
Пасюк Лошадкин
02.10.2018
14:49:39
client=MongoClient(os.environ['database']) db=client.mydb users=db.users

В os.environ лежит ссылка такого вида: mongodb://egor5q:password@cluster0-shard-00-00-pgt7n.mongodb.net:27017,cluster0-shard-00-01-pgt7n.mongodb.net:27017,cluster0-shard-00-02-pgt7n.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true

Nick
02.10.2018
14:51:06
ну легко могли ошибиться в настройке драйвера, могли что-то нахимичть с чанками
эм, получается чтото веселое, на разных шардах есть доки принадлежащие одному чанку

Пасюк Лошадкин
02.10.2018
14:51:43
3 реплики? Это разве не старые версии так подключаются?
Вроде старые, но я всегда юзаю их - работает)

Google
yopp
02.10.2018
14:51:49
искать как так вышло

вероятность заливки данных мимо монгоса повышается

Nick
02.10.2018
14:52:38
а не было с балансером чтонит ьсвязанное что он не домигрировал бы данные?

yopp
02.10.2018
14:53:37
всё может быть, но я ставлю на заливку мимо

потому что балансировка там многоступенчатая

балансер сейчас в каком состоянии?

invzbl3
02.10.2018
14:54:07
то есть я Вас правильно понимаю, Вы используя драйвер 3.6+ прописали подключение старого образца?

client=MongoClient(os.environ['database']) db=client.mydb users=db.users

В os.environ лежит ссылка такого вида: mongodb://egor5q:password@cluster0-shard-00-00-pgt7n.mongodb.net:27017,cluster0-shard-00-01-pgt7n.mongodb.net:27017,cluster0-shard-00-02-pgt7n.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true

Nick
02.10.2018
14:54:40
балансер сейчас в каком состоянии?
сейчас балансит вторую коллекцию, его отключал на время первой разметки.

Nick
02.10.2018
14:55:27
сейчас балансит вторую коллекцию, его отключал на время первой разметки.
там чанки здоровые по гигу, он их почти по часу перекидывает

Пасюк Лошадкин
02.10.2018
14:55:46
Но это не столь важно

Попробуй оба варианта, один должен заработать обязательно

invzbl3
02.10.2018
14:56:15
Но это не столь важно
важно, потому что могут возникнуть проблемы потом с несовместимостью

Попробуй оба варианта, один должен заработать обязательно
со старым 3.4 работает как и у Вас, с новым нет +srv вообще никак

Nick
02.10.2018
14:57:17
действия УПС
допустим даже была лажа, или касячк монги, всетаки старая уже, вопрос как мне починить данные? пока вижу только напрямую цепляться к шардам и оттуда данные тянуть и заново их заливать

Пасюк Лошадкин
02.10.2018
14:57:21
Nick
02.10.2018
14:57:45
печальбеда

Страница 320 из 342