Dmitry
посоветуйте плиз хостинг кроме AWS с большим IOPS для монги
Dmitry
смотрю на vultr, но хз
Dmitry
думаю может реально съехать с aws
yopp
А бюджет какой?
Dmitry
Ну 300-400 баксов
Dmitry
Вообще любой если дешевле AWS
Dmitry
:)
yopp
Посмотри на ovh public cloud
Dmitry
Да я думаю уже может дедики брать а не облака
Dmitry
Если такие засады с io
Dmitry
А, вижу там есть
yopp
Могу записать в waiting list, для нашего решения, но боюсь что с вашим объёмом смыла пока нет. К нам будет выгодно идти с террабайтом и выше.
Dmitry
Да, пока ещё мало...да может и нет смысла дёргаться даже...как вырастим можно будет и съехать
Slava
а hetzner'овские vps сильно хуже чем ovh public cloud?
Denis
Если такие засады с io
А ты средствами монги мерил? Просто например mongoose если не дописать .lean() отдаёт монгус объект, который на больших объёмах замедляет общее время работы кода в 5-10 раз по сравнению с чистым JS объектом. Это я намекаю что возможно проблема где-то ещё может быть.
Dmitry
ну то есть код дергает запросы, монга начинает очень много читать
Dmitry
как я это вижу судя по статистике и графикам
Dmitry
ну и там на самом деле агрегации
Dmitry
в цикле
Dmitry
Denis
А, тогда да. Я думал ты померил просто грубо и вкатился
Denis
С CPU проблемы, угу
Dmitry
ну вот у меня с CPU все ок
Dmitry
и RAM полно
Dmitry
а диску плохеет
Denis
А индексирование проверял? Может есть что поправить
Dmitry
ну индексы работают..
Dmitry
вначале без индексов у меня запросы выполнялись по 5 минут
Dmitry
ну и в итоге ведь я читаю полные документы
Dmitry
то есть индекс помогает быстро его найти, но в итоге прочитать то его нужно все-равно :)
yopp
Денис мысль говорит. Сделай explain
Dmitry
ок, проверю
Dmitry
сейчас правда сделали клинап и порезали данные в 3 раза )
Dmitry
но скоро будет та же история так что посмотрю
Dmitry
хм, ну вроде IXSCAN везде
Dmitry
на что еще смотреть?
Denis
У тебя же update, он после обновляет индексы
Dmitry
не, у меня апдейты в другом месте, в самом тяжелом месте где начинаются проблемы с диском count & aggregate, внутри цикла 😩и они оба используют индексы
Dmitry
upsert() и все такое не критично грузят, и это другой сервис делает
Avral
Привет! Как в монге можно найти объект по значению, которое есть в списке у атрибута объекта?
Igor
https://docs.mongodb.com/manual/reference/operator/projection/elemMatch/ не?
Avral
https://webapi.steemdata.com/Accounts?where={%22id%22:%20174758} Нужно найти по posting. key_auths что бы этот ключ был там STM6a4GQKwLokWPz6wJHzC5yEfxcu9dkW1GXhcJCZCfsMmRj8sg9V
Avral
я с монгой никогда не работал, не получается почему то.. :(
Avral
получается делаю так: 'posting.key_auths': {'$elemMatch': {'$eq': 'STM6a4GQKwLokWPz6wJHzC5yEfxcu9dkW1GXhcJCZCfsMmRj8sg9V'}}
Avral
есть идеи?
yopp
Покажи документ в котором ты хочешь сматчить (не в чат, на gist.github.com или пастбине)
Avral
я ссылочку оставил
Avral
https://webapi.steemdata.com/Accounts?where={%22id%22:%20174758}
yopp
Вообще тебе не надо $eq.
yopp
https://docs.mongodb.com/manual/reference/operator/query/elemMatch/#single-query-condition
yopp
По ссылке 400
Avral
просто я использую $eq так как там обычный список со строками и числами вот он ['STM5fZi2pQsAQq4UvD8cyBtD5Hu9cJj52Q9i6cBsMFGvC8JfHmcz6', 1]
yopp
Ты можешь куда-то репоснуть пример документа? По ссылке на айпаде просто текст рендерится, видать там xml
Avral
там xml все верно, момент
Avral
<resource> <posting> <key_auths> ['STM6a4GQKwLokWPz6wJHzC5yEfxcu9dkW1GXhcJCZCfsMmRj8sg9V', 1] </key_auths> <weight_threshold>1</weight_threshold> </posting> </resource>
Avral
короткая версия xml документа
Avral
у меня есть ключ STM6a4GQKwLokWPz6wJHzC5yEfxcu9dkW1GXhcJCZCfsMmRj8sg9V
Igor
я там пятисоточку словил на одной из попыток сформировать монговский запрос, кстати
Igor
так что я бы не ручался, что там вообще такой запрос можно сделать
Igor
а 400 возвращается на одинарные кавычки
Igor
хочется странного [x]
yopp
Т.е. Тебе нужно найти документ, в котором поле posting.key_auths является массивом, а тебе нужно чтоб любой из эелементов полностью совпадал с какой-то строкой?
Avral
вот я почему и задумался, правильно ли я запрос строю или это просто у них апи падает со сложного запроса
yopp
Тебе не нужен eq
Igor
$elemMatch: "STM6a4GQKwLokWPz6wJHzC5yEfxcu9dkW1GXhcJCZCfsMmRj8sg9V"
Igor
так ведь будет?
Igor
(я просто сам ненастоящий сварщик)
yopp
Просто posting.key_auths: "foo"
Igor
круто
Igor
а elemmatch для вложенных объектов, получается, скорее?
yopp
Я же дал ссылку на документацию
Igor
сорри :(
yopp
Это частный случай, когда не нужно явно указывать условие совпадения.
Avral
{"posting.auth_key":%20"STM6a4GQKwLokWPz6wJHzC5yEfxcu9dkW1GXhcJCZCfsMmRj8sg9V"}
Avral
ничего не находит
yopp
Я в имени аттрибута ошибся
yopp
Там не auth_key, а key_auths
Avral
{"posting.key_auths":%20"STM6a4GQKwLokWPz6wJHzC5yEfxcu9dkW1GXhcJCZCfsMmRj8sg9V"} не находит