Alexander
mongod на PRIMARY (1) перестал отвечать
Один из SECONDARY (2) стал PRIMARY (2). При этом (1) в rs.status() отображался как PRIMARY
На (1) mongod был перезапущен, перешёл в RECOVERY
Через некоторое время (1) стал PRIMARY. (2) остался PRIMARY. И так уже продолжительное время.
Alexander
rs.stepDown() на (2): "errmsg" : "Could not acquire the global shared lock within the amount of time specified that we should step down for
yopp
Alexander
Ну я захожу с mongo shell и они говорят оба PRIMARY. Ну и rs.status() то же показывает.
yopp
А что isMaster говорит?
Alexander
true
Alexander
Извне не могу зайти на set
yopp
На обоих?
Alexander
На обоих true, да
yopp
Вы уверенны что они в одном реплика сете?
Alexander
Alexander
Перезапустил (2), теперь он ROLLBACK
yopp
Логично, да
Alexander
И на сет заходит
yopp
Проверьте что в роллбэке нет нужных вам данных и добавьте арбитра.
Alexander
Alexander
yopp
В dbPath ноды которая сделала rollback будет папка rollbacks
Alexander
Раньше не было такого
yopp
Alexander
3.6.2
Alexander
Alexander
Данные тут - не моя сфера
Alexander
В крайнем случае - потеряются просто. Так? Ничем больше это не грозит?
Alexander
А что делать, если данные нужны? Их импортировать как-то нужно?
yopp
Да
Alexander
Просто там bson какой-то
Alexander
А как импортировать, если что?
Alexander
В общем, не очень хорошо монга работает с двумя PRIMARY )
Сейчас соединения проходят.
Alexander
Спасибо!
Gor
тут есть сейчас динозавтры-монстры-сеньоры mongo ?
yopp
yopp
Gor
Вы вопрос задайте
не вопрос: у кого то в поточных или недавних задачах были задача нарисовать выборку с групировкой по delta числового поля. пример есть Н (очень много, m+) записей с полем цена. надо сгрупировать выборку с групировкой по цене +-Х. Результат должен минимум содержать диапазон групировки, сколько записей в него попадают.
Gor
задача больше из маркетинговых
yopp
Aggregation Framework с $group по полю с ценой и output в новую коллекцию
Gor
вот только хотел сказать что там диапазоны явно надо задавать
Gor
а когда они не явны
yopp
Если задача одноразовая. Если задача многоразовая, то менять схему и сразу хранить в бакетах по цене
Gor
во, бакеты групируют то какраз по заданым шагам диапазона
yopp
Начните с проблемы
Gor
ахх. вообщем я чего пишу. если у кого есть из поточных или столкнетесь - у меня есть решение. можно помочь с доведением его до PR в монгу.
yopp
Ничего не понятно :)
yopp
Что значит «поточных»?
yopp
Какую проблему вы пытаетесь решить?
Gor
текущие в ТОДО что поставили в задачи что надо решить
yopp
Что вы пробовали, что получилось, что не получилось?
yopp
Но зачем
Gor
пишу сообщить что кто с таким столкнулся - есть решение, но код надо тестами покрыть (тут какраз ваши проблемы оттестить) и оформить красиво помочь чтоб в монго PR кинуть
Gor
и заодно набрать голосов чтоб в след версию включили
yopp
Ужас какой
yopp
Вы может расскажете про то что вы сделали?
Gor
извини если сумбурно.
Gor
щя попробую
yopp
Я не понимаю ни практическую проблему которую вы описываете, ни причины по которой надо патчить монгу
Gor
вообшем аля $bucket но с плавающей групировкой, когда задаешь "групировать по дистанции " где указываешь delta
Gor
так понятнее?
yopp
Нет
Gor
хм
Gor
еще раз попробую
Gor
есть база (большая) - соответственно проблема с агрегатором с последуюшим unwing
Gor
в ней пусть будут продажи за Н лет
Gor
маркетлог хочет делать разные выборки с разным шагом цены
Gor
из серии а все продажи с шагом в 1000 рублей, сколько продаж было с отбивкой по месяцам
Gor
как то так понятно?
Gor
он посмотрел, не - на нализ не то, давай с 500рублей шагом
Gor
мало того, не просто шагом а еще хочу чтоб на каждую группу считало среднее
Gor
тоесть вот с диапазона с 1 до 500 было 30000 продаж с средней ценой 263рубля. с 500 до 100 - 60000 с средней ценов 800рублей и так далее
Gor
из этого вывода можно сделать оценку максимально эффективной ценовой группы за период + колебания в течении года
Gor
как то так @dd_bb понятнее?
Gor
запрос будет вот таким чтоб получить такие данные
Gor
[
{
$match: {ТУТ Условия выборки, Аля диапазон времени}
},
$cluster: {
groupBy: "$price",
delta: 500,
output: {
count: { $sum: 1},
PriceMax: { $max: "$Price"},
PriceMin: { $min: "$Price"},
PriceAvg: { $avg: "$Price"}
}
}
}
]
Gor
ну и пример вывода:
Gor
{
count: 30000,
PriceMax: 750,
PriceMin: 250,
PriceAvg: 333
},
{
count: 60000,
PriceMax: 2000,
PriceMin: 1500,
PriceAvg: 1888
}
Gor
при этом легко пробелы могут быть между, если нет записей
yopp
Я наверное в задаче что-то не понимаю. Чем это отличается от boundaries: [0, 500, 1000]?