172 похожих чатов

Может стоит оптимизировать ненужную нагрузку? в плане — если вместо 100

апдейтов можно сделать один, или вообще один INSERT сделать — то так и поступить?

возвращаясь к вчерашнему разговору — не пытаемся ли мы тут натянуть технический долг на возможности базы и/или железа?

26 ответов

21 просмотр

Или хотя бы не в один поток...

ну вотя. вам реальный кейс и расписал. Это нужная нагрузка. Считайте что куча девайсов пишут хартбит(свое состояние) постоянно. Инсертом заменить можно, но через 24 часа база кончиться ))) Ну понятно что в той или иной степерни, можно частично решать железом, купить х5 сервер, ядра с большей частотой диски выдающие в 100 раз больше перфонмас - и наверно будет чуть лучше. Но мы говорим про целесообразность. На одном среднем (не дешевом) железе база для моего, специального патеррна нагрузки выдает вот такой плохой результат. Конечно по хорошему - надо логически шардировать и сделать много белких баз. Но иногда это можно, иногда сложно и не целосообразно а иногда вообще не возможно

Виктор-Егоров Автор вопроса
Jamal Sale
ну вотя. вам реальный кейс и расписал. Это нужная ...

угу. т.е. мы уже уходим в детали реализации и, как это часто бывает, можно что-то подшаманить и станет лучше. это не чистый кейс же. понятно, что вы можете дать нагрузку, которую база не вытянет. устроить перегруз на пустом месте — проще простого же…

Виктор Егоров
угу. т.е. мы уже уходим в детали реализации и, как...

Как-будто нагрузку ДБА создают... Мы только имеем, что имеем, и страдаем от этого. А уже есть ли инструментарий, как проблему пофиксить, или нет, зависит, в том числе, и от СУБД...

Виктор Егоров
угу. т.е. мы уже уходим в детали реализации и, как...

ну акционеры и руководство обычно не оценивают закупку серверов на млн$, как «что-то подшаманить». Я повторюсь что в описанном выше кейсе - кроме как шардировать и распилить базу на много мелких - другого целесообразного рещения нет

Jamal Sale
ну вотя. вам реальный кейс и расписал. Это нужная ...

здесь архитектура базы должна быть построена под такую нагрузку. Это типичный случай append-only и постгрес справится не хуже оракла. А вот с десятками тысяч случайных апдейтов от десятка до нескольких сотен строк одной таблицы с миллиардами записей - уже нет

Jamal Sale
ну акционеры и руководство обычно не оценивают зак...

Ещё нанять спецыалиста по постгресу (хотя бы временно).

Виктор-Егоров Автор вопроса

а почему бы не поставить перед посгресом что-то (kafka) с пред-агрегацией всех апдейтов и подачей в постгрес готового результата за временной промежуток?

потому что это могут быть тысячи клиентов и время ответа системы каждому регламентировано sla

Виктор-Егоров Автор вопроса
Nikita Malakhov
потому что это могут быть тысячи клиентов и время ...

вы говорите про общий случай, Jamal говорил про Golden-Gate репликацию из Oracle в Postgres и я отвечал именно на его частный случай

Виктор Егоров
а почему бы не поставить перед посгресом что-то (k...

Да все можно сделать, просто одно можно сделать быстро и не напрягаясь, а с другим и с бубном поплясать надо будет, но все равно сделать. :)

Виктор Егоров
а почему бы не поставить перед посгресом что-то (k...

накапливать батч - можно было бы (репликакция кстати так и делает, я тестировал и батчем по 1к строк и по 5-10к строк), но это сильно не помогает. Но это не решает в общем то проблему. Представьте у вас есть 10млн девайсов и бизнес требование - кажлдые 10 сек получать их стейт. То есть в сек вам нужно обновлять 1млн устройств. И разумеется они пишут в случайное время а не все сразу в одну миркосек. Накапливая батчи - вы просто не уложитесь никогда в подобные требования и девайсы будут обновлять не каждые 10 сек а намного намного реже

Nikita Malakhov
потому что это могут быть тысячи клиентов и время ...

ну да я примерно это и расписал, чуть подробней

Jamal Sale
накапливать батч - можно было бы (репликакция кста...

А вы уверены что вам ОЛТП нужно? А не носкуел какой нить?

Jamal Sale
накапливать батч - можно было бы (репликакция кста...

А там что-то ценное в этих стейтах есть? Я к тому, чего б это тупо в клик не писать? У него скорость записи будет в разы больше реляционок строчных... 🤔 Ну, и аналитику гонять из него тоже проще. Без апдейтов, разумеется. Он их не умеет

Виктор-Егоров Автор вопроса
Jamal Sale
накапливать батч - можно было бы (репликакция кста...

выглядит как проблема сайзинга под конкретные требования. и, также, следует рассмотреть другие БД, как коллеги советуют выше

Shuliar Honeybadger 🦡
А там что-то ценное в этих стейтах есть? Я к тому,...

Там не аналитика а real time платформа. Да и клик вообще апдейты плохи кушает. Еще хуже чем ПГ, но это другая тема ))

Виктор Егоров
выглядит как проблема сайзинга под конкретные треб...

Или хотя бы не в один поток этот миллион update запускать... Так-то в общем выглядит не так чтобы чрезмерно для пары сотен ядер.

Владимир Наумов
А вы уверены что вам ОЛТП нужно? А не носкуел како...

ну тоже вариант конечно. Но вы можете предложить другую БД для этого кейса (оракл не предлагать, в нем итак счас все работает хорошо) ?

Jamal Sale
ну тоже вариант конечно. Но вы можете предложить д...

Я пропустил определение базовой задачи. Вам надо собирать и хранить сосояние кучи объектов и строить аналитику по ним?

давайте хотя бы без аналитики, Бог с ней. просто иметь всегда стейт 10млн строк, которые обновляются с огромным апдейт-рейтом и делать селект по ключу/девайсу. Вот такая задача, чистый oltp

Владимир Наумов
ELK-стек гляньте

нет, ELK это вообще другая и медленная тема, и к тяжелым oltp не подходит. Lucen двидок эластика - жутко медленный, у меня есть опыт работы с базой на этом движке

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта