yopp
25.10.2018
19:35:08
а ещё и стоимость его обслуживания, простоя и вот этого всего
Bro
25.10.2018
19:35:27
ну в принципе да
но вот у нас щаз реплика на 3х машинах. дешевле коробки взять где много памяти и толстые ссд диски
я сейчас несколькими БД уже больше терабайта съел. боюсь атлас бы не поятнул такие
Google
Bro
25.10.2018
19:37:07
ну за относительно низкий прайс
наверное 2 варианта ок для облачных решений. нет денег - нет нагрузки. много денег - есть нагрузка.
yopp
25.10.2018
19:39:12
атлас будет около тыщи стоить на такой конфигурации, без учёте трафика
Bro
25.10.2018
19:39:13
на другом проекте на амазоне монга. но там база около 30Гб всего
yopp
25.10.2018
19:39:18
если на обычных дисках
Bro
25.10.2018
19:39:29
у нас ссд
вообщем посмотрев что там на амазоне получается и с коробками на колокейшене. коробки мне нравятся больше
yopp
25.10.2018
19:40:18
коробки надо содержать, почти ежедневно
Bro
25.10.2018
19:41:21
это да
девопс постоянно что-то делает
yopp
25.10.2018
19:42:10
ну вот, а это минимум тыщи полторы-три баксов в месяц на девопса, только зарплаты
Bro
25.10.2018
19:42:15
через salt рулит всей кучей коробок. я не знаю что это, только ansible юзал, вроде примерно то же?
Constantin
25.10.2018
21:26:08
Google
Constantin
25.10.2018
21:26:35
Ну, а так лепить все из говна и палок в облаке сложнее, а с первым ростом, может оказаться еще и непосильно дорого
В сериале Кремниевая долина в последней серии прошлого сезона как раз на эту тему была история, когда Amazon все деньги спалил к херам, даже глазом не моргнув, хотя оно может и быть не надо
Выстрелили на продукханте, и словиди продуктхант эффект, и получили счет приличный в конце месяца, а доходов сильно меньше, так как не всех удалось сконвертировать даже в бесплатных пользователей по разным причинам
yopp
25.10.2018
21:42:14
вообще делать продукт надо после того как есть пользователи, а не до
хороший техдиректор найдёт как готовые продукты между собой скрепить скотчем
Bro
25.10.2018
21:51:18
yopp
25.10.2018
21:51:30
но это всё после того как все убедились что проблема есть на рынке и потенциальное решение готовы купить даже на словах. потому что иначе разработка это просто выкинутые деньги на ветер.
разработку должны оплачивать клиенты.
например с балансировщиком я не буду никакого продукта делать, до момента пока не будет с десяток клиентов, которые дадут денег за первый месяц. все мои текущие разработки это исключетльно проверка технологической гипотезы, что то что я хочу продавать, реально можно сделать. это мой личный академический интерес, чтоб мозг не засыхал.
потому что потратить полгода на разработку продукта, который потом никому не нужен, это вобщем-то ошибка №1. наверное 90% компаний именно по этому и умирают, прожигая огромную дыру в карманах фаундеров
Bro
25.10.2018
21:51:31
только не техдир наверное а фундер
серваков 20+ вроде все четко фурычит. мне прям нравится. у меня несколько коробок под задачи с 128Gb памяти, чтоб я так жил на амазоне.
yopp
25.10.2018
21:53:20
клиенты денег несут? :)
Bro
25.10.2018
21:54:59
там конечный продукт являться базой данных.
yopp
25.10.2018
21:55:06
эт не важно
важно: несут ли или не несут денег.
Nik
26.10.2018
06:11:41
а что в explain по find?
Обычный IXSCAN. Я по курсору могу сделать count и он терпимо по скорости отрабатывает. Внутри unix timestamp.
Главная проблема в том, что рабочие запросы к базе не больше 300 ms должны выполняться в этот момент. А удаление сильно нагружает сервера и в диск база начинает упираться.
А что профитнее: bulkwrite удаление 1000 элементов и sleep или по одному с небольшим слипом между ними?
Maxim
26.10.2018
07:56:27
Всем привет. Подскажите какой индекс для такого запроса нужен?
db.drops.find({ date: { $gt: 1538320801723 } }).sort({ itemPrice: -1 })
в коллекции drops порядка 120 миллионов записей за пару лет накопилось
и такой запрос нужно раз в минуту выполнять хотя бы
выполняется примерно 250ms
Пробовал индексы date_1_itemPrice_-1, itemPrice_-1_date_1, пробовал два отдельных индекса
Google
Maxim
26.10.2018
08:00:00
Nick
26.10.2018
08:19:39
по логике нужен индекс {date:1 , itemPrice:1}, но все проще првоеряется через explain
Zaur
26.10.2018
08:25:10
Если в существующую коллекцию указать уникальное индексируемое поле, монга сразу начнёт её индексировать?
Maxim
26.10.2018
08:27:32
Nick
26.10.2018
08:27:54
Maxim
26.10.2018
08:28:38
Nick
26.10.2018
08:28:51
так это норм
Maxim
26.10.2018
08:29:09
то есть я уперся в возможности btree?)
Nick
26.10.2018
08:29:11
с чего вы решили что быудет лучше на коллекции в 100кк?
Maxim
26.10.2018
08:29:28
влажные фантазии :)
Nick
26.10.2018
08:30:08
есть еще другой момент, что по нагрузке на железо в моменты запроса?
и да сделайте explain c executionStats
Maxim
26.10.2018
08:30:48
каждую минуту скачет
ой, нет, не это
каждый час выполняется
Nick
26.10.2018
08:31:33
что синее, что зеленое?
где waittime?
Google
Maxim
26.10.2018
08:31:46
Nick
26.10.2018
08:32:19
нагрузка на диски мониторится?
Maxim
26.10.2018
08:32:23
да
с диском все ок, nvme raid
тут просто вопрос в том, что хотелось бы каждую минуту выполнять этот запрос
и он очень сильно грузит cpu, нарузка возврастает в 4-5 раз
Nick
26.10.2018
08:33:34
вы хотите сказат ьу вас всегда больше 500iops
Maxim
26.10.2018
08:34:11
за 10 минут
Nick
26.10.2018
08:34:53
а кто вам генерит1.5крпс?
это нормально?
Maxim
26.10.2018
08:35:04
в нашем юзкейсе это ок
много данных собираем с разных источников
на проц нагрузка небольшая
в среднем 1/2 от одного ядра жрет
чтения мало, в основном запись
Nick
26.10.2018
08:36:17
ок, выполните explain и куданить на пастебин например
yopp
26.10.2018
11:26:29
Google
yopp
26.10.2018
11:30:02
лучший результат — 200ms
explain({“executuonStats”:1})
Время будет зависеть от «ширины» выборки. Чем больше документов будет попадать в выборку, тем медленнее это будет.
Alexander
26.10.2018
16:13:04
вопрос: можно ли во время аггрегации после unwind и всех нужных мне действий как-бы отменить unwind?
т.е. собрать все данные обратно в один документ массива?
Nick
26.10.2018
16:15:32
group
И там чтонить по типа аддТуСет
Alexander
26.10.2018
16:17:34
ща гляну, спс
а, там немного не то
через него надо тогда прогонять все данные же
а мне сгрупировать только по одному значению посути
Nick
26.10.2018
16:28:13
Укаже в качестве _id поле по которому группировать
Если вам надо вообще все по в один большой список, то в качестве _id задайте константу какуюнить
Alexander
26.10.2018
16:32:13
наверное мне больше подойдет $mergeObjects
хотя не
я не хочу все параметры прописывать :(
Nick
26.10.2018
16:33:47
Давайте проще, приведите пример того что вы сейчас получаете и что нужно получить
Alexander
26.10.2018
16:34:29
там еще массив в массиве, да
Nick
26.10.2018
16:35:53
А можео первую картинку более ясно сделать и желательно с форматированием
Alexander
26.10.2018
16:37:55