@MongoDBRussian

Страница 73 из 342
Nick
29.03.2017
10:37:18
причем треубется хранение

т.к. эти даныне отсылаются в некий сервис, и нужно фиксирвоать факт доставки илбо ошибки и перепосылать

короч, нужно гдето хранить состояние, вот и пришлось заюзать монгу, т.к. доки и так монге хранятся

в результате у меня у агрегата составной id : {docId,year,month,day,hour, type}

Google
Nick
29.03.2017
10:42:34
у type 10 занчений фиксированных, так что я первоначально сделал шард индекс над hashed _id_docIDd

yopp
29.03.2017
10:42:59
ужас какой

я бы пересмотрел логику

Nick
29.03.2017
10:43:38
думаю этим и займусь.

yopp
29.03.2017
10:44:07
хранить данные надо так, как ты их потом достаёшь

т.е. идти от запросов

AlexGott
29.03.2017
15:56:54
Люди а киньте ссыль на русскую книжку по сабжу плз, начальный уровень.

Igor
29.03.2017
16:03:00
http://www.pvsm.ru/download/mongodb-ru.pdf

AlexGott
29.03.2017
16:19:22
http://www.pvsm.ru/download/mongodb-ru.pdf
Огромное спасибо.

Igor
29.03.2017
16:19:44
резисты должны помогать друг другу (:

yopp
30.03.2017
13:18:14
Latest: 3.4.3 (Mar 28, 2017), Stable: 3.2.12 (Feb 1, 2017) 3.4.3: https://docs.mongodb.com/manual/release-notes/3.4/#mar-28-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

Это, никто не хочет написать нативный монговский драйвер для crystal?

Есть возможность изучить новый язык и глубоко изучить протокол монги. Там ничего в целом сложного, но куча мороки

Google
yopp
30.03.2017
13:22:44
Не биндинги, имено нативный

Я даже готов проспонсировать!

Можно вообще взять и попробовать рубишную версию портировать.

Sergey
30.03.2017
13:25:59
По-моему кроме тебя на Crystal никто не пишет

Sergey
30.03.2017
13:31:00
нормально ли делить один replica set между разными микросервисами?

AlexGott
30.03.2017
19:21:03
У кого нет звонков в ТГ?

Алексей
30.03.2017
19:27:15
не тематичненко. велкам с таким вопросами на талк каналы. благо они есть на любой вкус.

Nick
31.03.2017
08:25:32
возможно ктото вкурсе но при апдейте одного поля в документе перезаписывается весь док? а при добавлении длинного поля? и где грань, если она есть

Nick
31.03.2017
09:08:45
понять на сколько дорого обновление полей

Nick
31.03.2017
09:24:13
ну интересно мне понять какого рода работа происходит на уровне хранения документа, происходит ли перед этим полная вычитка документа, его изменение, и сохранение измененной верси

Там по-моему аппендится новая версия поля. Не ?
хотелось бы линк на доку, а то чтот не нашел

Nick
31.03.2017
09:26:04
тогда WT, причина в попытках меньше жрать диска

yopp
31.03.2017
09:26:26
ну вот что мешало с этого и начать-то?

Nick
31.03.2017
09:26:29
только сейчас мне не от чего оттталкиваться

yopp
31.03.2017
09:26:45
последняя вещь от которой надо отталкивать — реализация хранения

Google
Nick
31.03.2017
09:26:48
для этог ои нужно хотя бы понять как идет работа с документом на низком уровне

yopp
31.03.2017
09:26:51
оно тебе не надо, ты спать плохо будешь

не нужно

ты уже знаешь что именно упирается в диск?

Nick
31.03.2017
09:27:54
я знаю, что выжираю диск, а производительность недостаточно большая

при использовании индексов

yopp
31.03.2017
09:28:18
как ты это выяснил?

почкему у тебя индексы на диске?

Nick
31.03.2017
09:30:41
индексы в памяти, но они не помогают, т.к. у меня обновление данных это 25% запросов по куче документов за раз, 25% обновлений по id, гдето 10% инсертов, остальное агрегация на мапредьсах. и все это задыхается на 2 шардах над двумя 10ми рейдами

и мне нужно понять какого рода операции делаются во время апдейтов

ибо это считай 80% моих запросов с учетом мержа от мап редьюса

yopp
31.03.2017
09:31:58
ох

Nick
31.03.2017
09:32:43
природа данных документная, поэтому не реляционки

yopp
31.03.2017
09:33:01
ты сейчас пытаешься диагностировать простуду через колоноскопию

Nick
31.03.2017
09:33:54
возможно, но это не отменяет факта, что я до сих пор не знаю как происходит апдейт документа

yopp
31.03.2017
09:33:58
я на 97% уверен что тебе надо не в кишках ковырятся, а взять в руки explain и настроить нормальный монтиоринг, чтоб понять _что именно_ и _когда_ и _как_ выжирает диск

тебе не надо этого знать

сейчас у тебя недостаточно улик, чтоб точно сказать что является причиной

Nick
31.03.2017
09:34:38
эксплейн мне говорит что норм индексы юзаются

yopp
31.03.2017
09:35:08
окей, у тебя slowquery анализируется?

Google
yopp
31.03.2017
09:35:13
что он тебе говорит?

«это задыхается на 2 шардах». как именно задыхается?

«выжирает диск»: тикетов нормальное количество или не хватает? из чего рейд? чего не хватает чтения или записи?

Nick
31.03.2017
09:36:28
да, анализируются, сейчас ничего не пишет

yopp
31.03.2017
09:36:48
какой трешхолд стоит?

Nick
31.03.2017
09:36:56
100мс дефолтный

yopp
31.03.2017
09:36:57
что знаичит «задыхается»?

Nick
31.03.2017
09:37:25
задыхается - это субъективно через nmon 100% busy рейт

yopp
31.03.2017
09:39:27
?

yopp
31.03.2017
09:40:56
тикеты это система ограничения количества одновременных запросов к хранилищу

оно актуально для любого типа хранилища

ptchol
31.03.2017
09:41:34
На тему апдейта по-моему он инплейс апдейт делает с новой версией поля. Для того и пэддмнг фактор задирали. Или у меня инсульт

yopp
31.03.2017
09:41:48
нет padding в wt

и никогда не было

ptchol
31.03.2017
09:42:24
оно актуально для любого типа хранилища
Обычные диски раньше дохнут чем дефолтные значения. Не ?

yopp
31.03.2017
09:42:27
padding нужен был для того чтоб монга не искала куда записать документ, когда после обновления он стал больше чем был. и это было в mmapv1

т.е. это запас по размеру

монга не kv сторадж, документ, я напоминаю, это просто блоб bson

ptchol
31.03.2017
09:45:30
You do not have to worry about document movement, padding etc. with WiredTiger. New writes initially get written to files in unused regions and then incorporated in with the rest of the data in the background later. WiredTiger, during an update, will actually write a new version of documents rather than overriding existing data the way a mmapv1 does in many cases. (Check the video from MongodDB free online courses)

Google
yopp
31.03.2017
09:46:17
я сейчас не уверен, но насколько я помню из беглого изучения втыкания wt в монгу, вопросами того что куда на диске поедет, занимается уже именно wt. так как там CoW, у тебя всегда _новая версия_ пишется. но никаких отдельных оптимизаций, типа дедуплекации страниц, я в wt не стречал

ковырятся в кишках wt глупо, потому что это ничего не даст

банально нет ни одной ручки

Nick
31.03.2017
09:47:21
собствено чего я и боялся, если сам док большой а обновляемое поле маленькое, то получаем вычитку всего дока и запись его

чтобы флаг проставить

yopp
31.03.2017
09:47:35
ох

ты упорно смотришь слону в анал, вместо того, чтоб посмотреть ему в глотку.

у меня есть кластер где write only workload, там 40% создание документов и 60% обновление

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

Nick
31.03.2017
09:51:16
вот я к этому и пришел, что флаги использовать это крайне херовая идея в моем случае

yopp
31.03.2017
09:51:42
ты пока не представил никаких достаточных улик, подтверждающих твою гипотезу

возьми вот это https://github.com/y8/mongo_collection_exporter подними прометея и графану и посмотри структуру нагрузки

Nick
31.03.2017
09:52:46
спасибо, гляну

yopp
31.03.2017
09:53:19
ты увидишь что именно происходит и кто выгружается или вгружается на диск

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

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