yopp
вынеси запросы на отдельный сервер, с кучей памяти и явно в клиенте выбирай сервер для исполнения
yopp
(в смысле отдельная реплика)
yopp
с нулевым приоритетом
Aleksey
ну мне иногда странно когда на базу идет нагрузка на коллекцию из 50 элементов. а запросов туда идет ацкий ад сколько
yopp
коллекция из 50 элементов будет 100% висеть в памяти
yopp
и работать это будет ровно как твой редис
Aleksey
будет висеть да.
Aleksey
может я просто не знаю чего. но когда у мен ятот раз была беда с одним отсутствующем индексом у меня ацццки все висело.
Aleksey
я зачем то в этот момент решил что лучше меньше запросов в монгу.
Slava
всем привет. подскажите пожалуйста в какую сторону копать, если сервер с монгой отжирает более 90% CPU, а вернее это проблема сервера или кривых запросов? Используем монгу 3.2.7, праймари сервер, это хетцнеровская виртуалка CX50 (4 vCores, 16GB RAM, 400GB SSD).
yopp
Вангую кривые запросы. влючить профайлер, посмотреть что в slowqueries
Slava
да, slowqueries есть над чем поработать, спасибо.
Roman
@dd_bb а вот чем ты свои монги бэкапишь?
yopp
@dd_bb а вот чем ты свои монги бэкапишь?
hidden member и там уже по обстоятельствам
yopp
https://docs.mongodb.com/manual/tutorial/enable-authentication/
yopp
Там по шагам всё
yopp
УИИИИИИ https://jira.mongodb.org/browse/SERVER-19758
yopp
Resolution: Fixed Fix Version/s: 3.5.5
yopp
В 3.6 будет наконец стата по аггрегациям нормальная
yopp
Слушайте, я же вот не ебусь в глаза. https://docs.mongodb.com/manual/reference/method/sh.updateZoneKeyRange/#compound-shard-key Там есть (вызывающий теоретические вопросы, но мы это опустим) такой пример: sh.updateZoneKeyRange( "exampledb.collection", { a : MinKey, b : 1 }, { a : MaxKey, b: 10 }, "alpha" ); sh.updateZoneKeyRange( "exampledb.collection", { a : MinKey, b : 10 }, { a : MaxKey, b: 20 }, "beta" );
yopp
mongos> sh.updateZoneKeyRange( ... "foobar.rangefail", ... { a : MinKey, b : 1 }, ... { a : MaxKey, b: 10 }, ... "cold" ... ); { "ok" : 1 } mongos> sh.updateZoneKeyRange( ... "foobar.rangefail", ... { a : MinKey, b : 10 }, ... { a : MaxKey, b: 20 }, ... "hot" ... ); { "code" : 178, "ok" : 0, "errmsg" : "Zone range: { a: MinKey, b: 10.0 } -->> { a: MaxKey, b: 20.0 } on hot is overlapping with existing: { a: MinKey, b: 1.0 } -->> { a: MaxKey, b: 10.0 } on cold" }
yopp
mongos> db.runCommand("buildInfo")["version"] 3.4.3
yopp
При этом в протоколе такого примера нет, в js тестах такого примера нет, в cpp тестах такого примера нет.
Sergey
а где можно подробнее почитать, как "Secondary members copy the oplog from their sync from source"? https://docs.mongodb.com/manual/core/replica-set-sync/#replication
оказывается, на гитхабе у них подробно всё описано https://github.com/mongodb/mongo/wiki/Replication-Internals
yopp
Вот суки
yopp
Лучше бы спеки нормально отредактировали: https://github.com/mongodb/specifications
yopp
The CollectionCloner then just runs find and getMore requests on the sync source repeatedly until it fetches all of the documents.
yopp
А кто-то помнит, в mmap у курсора как изоляция обеспечивалась при getmore?
yopp
В WT с CoW всё понятно, курсор открылся в одной сессии, сессия видит только свою версию дерева страниц. Пока открыта сессия, страницы не попадают в GC.
yopp
https://codewithintent.com/how-to-secure-mongodb/ /cc @stefanthegreat
yopp
Если у вас ещё не задеплоена аутентификация в монгу — идите и задеплойте.
Sergey
ещё есть такие?
Alex
Тысячи их
redbeard
ога, незадеплоенных
yopp
А, да, если вы считаете что раз у вас монга в мир не смотрит, значит это не для вас. Именно для вас.
yopp
https://codewithintent.com/how-to-secure-mongodb/ /cc @stefanthegreat
советы, кстати говно, лучше читать https://docs.mongodb.com/manual/tutorial/enable-authentication/
Dmitrii
Всем привет, подскажите пожалуйста как реализовать систему диалогов в mongo?
yopp
А причём тут монга?
CC-BY-SA-4.0/Docker-ce30.0
Я абсолютно не понял вопрос.
Dmitrii
я хочу на монге реализовать систему сообщений с потдержкой диалогов, и не очень бы хотелось хранить отдельно коллекцию дталогов и коллекцию сообщений, думаю может кто знает правильное решение этого вопроса
yopp
это звучит как норкоманский бред :)
yopp
"listDatabases"
Aleksey
а это для шаред хостингов было
Aleksey
что бы на одну муську можно было 5 сотен джумл поставить
yopp
нет, вообще не нужно
Aleksey
монга тут не причем
yopp
https://docs.mongodb.com/manual/
yopp
почитай, у монги очень хорошая документация и нормальные туториалы
Aleksey
и даже крутые видяшки с обучением
yopp
в университете?
CC-BY-SA-4.0/Docker-ce30.0
А я думал документация для этого...
yopp
ты сначала покури, а потом задавай практические вопросы
Slava
привет. подскажите насколько далеко или близко от правды вот такая фраза(коллега выпалил): если индекс в документе создается на поле, которое всегда содержит разные значения, то вставка документа в коллекцию будет намнго медленне, чем если создать индекс на поле значения которого не всегда разные. В доке по индексам WT ничего похоже не удалось найти.
Dmitrii
проверь на правктике, за одно и нам расскажешь
Alexander
народ, а монга умеет искать в связанных документах? к примеру, есть коллекция заказов, у которой есть ссылка на владельца заказа и исполнителя заказа (обе сущности ссылаются на коллекцию контрагентов) как мне получить к какой группе контрагентов относится исполнитель (поле group_id у коллекции контрагентов)?
Alexander
а точнее сделать выборку по заказам, у которых покупатели относятся к определенной группе
Slava
вот, я тоже самое сказал, что это хрень какая-то, а коллека аргументировал, что так как значения всегда разные у нас будет большая глубина дерева
yopp
Кек
yopp
И?
Slava
а если у нас значение не всегда разные, тот тут глубина маленькая и вставка будет быстрее
yopp
А какая разница какая глубина дерева?
Slava
якобы, чем глубже дерево, тем "дольше" будет вставлятся новый элемент в него
yopp
Почему?
Slava
вот внятный ответ он чет не смог дать
yopp
Даже если там есть разница, на фоне всего остального она будет совершенно не заметна. Но сделай бенч, да.
yopp
Вообще неселективный индекс — плохо.
Alex
ну тут вопрос что надо быстрая вставка или быстрое чтение имхо
yopp
потому что io будет дороже чем вся эта история с балансировкой дерева
yopp
парсинг и анализ bson
yopp
и вот это всё
yopp
а дерево это пройтись по X указателям
Alex
да это понятно
yopp
ну и в случае если указатель на странице которая не в памяти, сходить на диск
Alex
можно закопаться и опять что при неселективном индексе это чем то будет напоминать Seq scan в RDBMS