yopp
у временных рядов обычно время является самым весомым аргументом в пользу «горячести»
Nick
уникальный ключ ID-K-N. id - постоянно, k меняется периодически, n номер докав пределах id-k если я делаю шард ключ ID-DATE и часть данных улетает в другую зону, то монга нормально сможет выбрать по связке ID-K-N ?
yopp
если дата в постфиксе то балансировку по дате не сделать
Nick
вот это и остановило меня
Nick
прост подумал может всетаки чтото упустил и хотя бы сейчас можно будет переделать
yopp
а какой порядок устройств?
Nick
200к
Nick
20кк событий в сутки
yopp
а что переделать?
Nick
все)
Nick
типа я уже подумываю переделать то что сейчас есть, но пока точно не придумал как
yopp
ну если есть возможность шард-ключ поменять, то ключ типаа {time: 1, k: 1, n: 1}
yopp
у вас горячие последние N дней?
Nick
есть необходимость помимо хранения передавать в смежные системы, поэтому в зависимости от вида ошибок и ее доступности данные могут не остывать неделями
Nick
самый большой промежуток был около 2 с половиной недель
yopp
а если ошибок нет?
Nick
то полчаса-час
yopp
т.е. горячие всего 1.6м документов?
Nick
гдето так
yopp
а какой read:write рейт?
yopp
документ прилетел и всё? или он может обновляться?
Nick
может, поэтому и полчаса, если не прилетел дубль или еще чтото, то он отсылается и фактически охлаждается. дубли событие не очень редкое
yopp
т.е. по сути документы потом никак не используются?
Nick
было бы хорошо условно все что больше месяца тупа скидывать кудато, но пока не было желания разделать хранилище, собственно были большие проблемы по выборке из монги по типу запрос отрабатывает полчаса на получение нескольких тыщ горячих доков
Nick
да
yopp
hot/warm/cold
Nick
вот сейчас для этого и делаю вторую коллекцию, т.к. даже тупо индексы в память не влезают
yopp
дату в префикс, в постфикс какие-то нормально распределённые айдишники
yopp
которые в запросах учавствуют
yopp
cold всё что больше месяца
yopp
в hot последние несколько часов
yopp
в warm пока есть ошибки
Nick
я просто чую что сама структура данных немного не правильна под мою задачу, т.к. делалось с небольшим заделом на будущее как обычно и само собой в наличии преждевременные оптимизации. нужно думать
yopp
:)
Nick
:)
rs3 : { "rs0" : 0, "rs3" : 73568 }
Nick
вот это "rs0" : 0 меня беспокоит, как монге сказат ьчто все ок и ей нужно дропнуть инфу
yopp
это что значит вообще?
Vova
$unset если я правильно понял что нужно
Nick
количество доков на шардах, db.runCommand({count: "aaa",
Nick
это что значит вообще?
{ "shards": { "rs2": 0, "rs3": 70119 }, "n": 70119, "ok": 1 } вот так наверное понятнее будет
yopp
тебя беспокоит что 70к документов осталось?
Nick
наоборот, что в rs2 0, т.к. данный чанк должен быть полностью на rs3
Nick
я взял count по диапазону чанка
Nick
походу понял это бага монги, она почемуто игнорит то что в $lt передается верхняя граница и она не должна включатсья в поиск
Nick
натравил балансер на эту коллекцию в логах появилась такая дичь mongod: SHARDING [conn273068] Refreshing chunks for collection docs_hot based on version 584|232||5bab860e1195cf944681375d mongod: SHARDING [CatalogCacheLoader-4511] Refresh for collection docs_hot took 3 ms and found version 584|232||5bab860e1195cf944681375d mongod: SHARDING [conn273068] can't accept new chunks because there are still 840 deletes from previous migration
Max
надо теперь ждать, пока наудаляет то, что смигрировало
Max
сам сталкивался не единожды и, как обычно, очень невовремя :)
Nick
просто единственное что нашел в инетах, помимо описанной баги в жире монги, что люди ребутали шарды и тогда собственно курсоры самособой отваливались
Fantasy
а как можно в монго искать сразу по 2+ коллекциям? не по связанным сущностям, а просто независимые коллекции. и там и там есть допустим поле "name" и вот по ним искать. киньте пример или ссылку в доку)
yopp
два запроса сделать
Fantasy
ну а если это поиск в приложении с пагинацией, то склеивать их руками?
yopp
да
yopp
а как так случилось что у вас несколько коллекций по которым надо пагинацию делать?
Fantasy
просто на UI текстовое поле, в котором можно найти несколько типов сущностей (представленные разными коллекциями), допустим, кредит, вклад, и.т.д.
yopp
тогда да, руками склеивать
yopp
ну или сделать ещё одну коллекцию, куда складывать что-то по чему ищут и ссылку на документ
yopp
но это уже попытка поисковый движок переизобрести
Іван 🤙
ребята питонисты, кто пользовался асинхронным драйвером для монги??? вот нашел мотор https://github.com/mongodb/motor или мб другой посоветуете?\
Oleg
я тут линукс установил. какую версию монго качать?
Oleg
минт
Oleg
19
Nick
ничего не качай, используй менеджеры пакетов
Nick
да
Nick
или чтото подобное
Oleg
а что делать, если я ошибся с командой?
Oleg
ничего не будет?
Ivan
а что делать, если я ошибся с командой?
Не хочу быть грубым, но ты точно уверен, что это надо в группе по БД обсуждать?
Oleg
нет.
Nick
тогда тебе надо будет все переставить, либо разобраться в том что сломается
Oleg
замечательная перспектива...
Nick
всегда есть выход проще - нанять человека, котоырй все это сделает
Мечтатель
ничего не качай, используй менеджеры пакетов
Там старые версии. Нужно репы подрубать
Мечтатель
я не то скачал?
Будем надеяться что то