yopp
это не фича монги
yopp
это фича драйвера. все вопросы к драйверу
yopp
в монге нет схем, напоминаю
yopp
я перестал понимать что они нахуевертили с авторизацией.
Denis
ну вот судя из документации mongoose можно только синхроно, но она какая-то очень маленькая, забыл указать что mongoose
yopp
я тут поиграю в jonanc и скажу: ¯\_(ツ)_/¯, обращайтесь к авторам ;)
yopp
скорее всего туда надо замыкание какое передать. если ты хочешь чтоб у тебя в нескольких замыканиях была идентичная дата, то это скорее к js вопрос, а не к драйверу
yopp
но вообще я бы забил совершенно. разница там будет в пределах мс
yopp
я знаю очень мало кейсов где это может играть хоть какую-то роль
Denis
ну вот тоже думаю всё же вторым путём это сделать, так чище будет, а первый вариант как раз подразумевал замыкание
yopp
не знаю как там в ноде это принято, но в рубях я бы просто сделал один метод типа def current_<name>_time; @current_<name>_time ||= Date.now.utc;end;
yopp
и из замыкания бы его дёргал
Denis
в жс любая ф-ция это замыкание
yopp
ты не понял идеи
yopp
думаю что на протипной поеботе это вообще решается как-то элементарно типа object['foobar'] ||= Date.now
yopp
но идея в том, чтоб сделать у объекта метод/переменную, которая устанавливается один раз
yopp
lazily
Denis
хм, писал телегу, пока писал въехал
Denis
да
Denis
с ejdb кстати кто-нибудь работал? nw.js просто предлагает его как вариант для локал стораджа
Denis
но надо будет ебаться со сборкой под платформы
Denis
интересно просто стоит ли оно того или можно взять какой-нибудь PouchDB который будет как бы на 'фронте'
Denis
вообще если кто знает какие удобные NoSQL обертки для фронта, буду рад услышать
yopp
не очень понятно какую проблему ты пытаешься решить
Denis
Просто проект состоит из вебморды и nw.js обертки с оффлайн фичами. Веб это mean stack, а проблема стоит в выборе хранилища для nw.js которое ему нужно для оффлайн работы. Удобно было бы что-то на подобии монги
Oleg
ребят всем привет
Oleg
подскажите я правильно понимаю, что жто не оч круто
Oleg
db.currentOp()
Oleg
"desc" : "rsSync", "threadId" : "140500350007040", "active" : true, "opid" : 7, "secs_running" : -1404615, "microsecs_running" : NumberLong("11480286677028"), "op" : "none", "ns" : "local.oplog.rs",
Oleg
"secs_running" : -1404615
Oleg
это жопэ получается?
Oleg
это реплика сет и это примари
yopp
это жопэ получается?
вполне мог overflow у счётчика случится %)
yopp
на самом деле посмотри в rs.status()
yopp
если нет лага, то всё норм
yopp
монга какой версии?
Oleg
просто у меня мониторинг постоянно жалуется что на серваке цпу ядрышки жрутся. там только эта монга примари. вот и птыаюсь понять мониторинг пздит или монга реал грузит. монга 3.2.4
Oleg
вроде статус впорядке
Oleg
примари секондари арбитр
Oleg
ну монго жрет канеш. но у меня 4 ядра, Load_avg 1m < 1.5
Oleg
считаю норм для 4 ядер
yopp
ну тогда поправь мониторинг чтоб он тоже так считал
yopp
а вообще надо на iowait смотреть. и на io в целом
Oleg
ну у меня в том то и дело что графит видит как будето по одному ядру загружается переодически типа [BEACON] CRITICAL <CPU LOAD IS TOO HIGH> server_prod.cpu-0.cpu-user failed. Current value: 95.3% [BEACON] CRITICAL <CPU LOAD IS TOO HIGH> server_prod.cpu-2.cpu-user failed. Current value: 93.7%
Oleg
io да печален
yopp
ну если io печален, значит пришло время изучить что тупит
yopp
скорее всего индексов нет, а если есть — они неэффективные или в память не влазят
yopp
Могу посмотреть (не раньше следующей недели). 120€/hr, контракт, все дела.
Oleg
))) понял спасибо
Oleg
)
yopp
можешь сам попробовать разобраться. https://github.com/y8/mongo_collection_exporter
yopp
прикрутить к прометею и смотреть на коллекции
Oleg
а у меня не sharded
Oleg
оно будет работать?
yopp
да
yopp
просто реплики в shards воткни и всё
yopp
я арбитрами не пробовал, может что-то сломаться
yopp
если сломается — заведи ишшуй
Oleg
))) окай
yopp
вместа арбитра лучше воткнуть скрытую реплику для бекапов. она тоже голосует если что
yopp
Latest: 3.4.4 (Apr 21, 2017), Stable: 3.2.12 (Feb 1, 2017) 3.4.4: https://docs.mongodb.com/manual/release-notes/3.4/#apr-21-2017 3.2.12: https://docs.mongodb.com/manual/release-notes/3.2/#feb-1-2017 Пришло время обновлятся до 3.4.1+: https://aphyr.com/posts/338-jepsen-mongodb-3-4-0-rc3
yopp
С выходом новой версии монги, как лучше поступать Прикрепить новое сообщение и отправить уведомление – 9 👍👍👍👍👍👍👍 53% Прикрепить новое сообщение и не отправлять уведомление – 8 👍👍👍👍👍👍 47% 👥 17 people voted so far.
Alexey
привет всем а расскажите про правильный выбор ключа шардирования. Вот скажем, если у меня ключ по date или по _id, который постоянно возрастает, то звпись всегда будет идти на один и тот же шард?
yopp
да
Alexey
к примеру, есть в базе id клиента, который что-то добавляет в базу, есть date, есть _id Правильно ли я понимаю, что в случае client_id чанки будут создаваться на том шарде, где находится этот чанк с совпадающим ID, а если по полю возрастающей date, то всегда на одном?
yopp
чанки не «создаются»
yopp
они делятся
yopp
у тебя есть первый чанк {MinKey, MaxKey}
yopp
он будет на primary shard
yopp
дальше когда он начнёт расти, он будет делится на более мелкие
yopp
после чего балансер будет их растаскивать по другим шардам
yopp
если у тебя ключ всегда близок к MaxKey, то вероятнее всего у тебя всё это будет происходить на одном и том-же шарде
yopp
что не имеет никакого смысла в среднем
yopp
более того, под большой нагрузкой чанк может и не поделится
yopp
и будешь ты сидеть с этим jumbo chunk, который никуда не может дется.
Alexey
ок, то есть, в случае, условного client_id поделился чанк, уехал на другой шард. Запись следом за ним переместится? туда где есть данные с нужным client_id?
yopp
блин, надо уже написать статью про то как шардинг устроен
yopp
никто не понимает как это работает!
yopp
чанк это просто диапазон твоего shard key. это само по себе не является данными!