powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / акка или кафка?
25 сообщений из 192, страница 4 из 8
акка или кафка?
    #39978987
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Если 600 записей накапливать в буффере и скидывать в PostgreSQL раз в 0.1 sec, а то и раз в 0.2 sec. То это получается "батч" размером в 50-100 записей

О батче не говорил разве что ленивый. Но надо просто посмотреть что для системы такое провисание бизнес-операции
в пачке не приведет к неконсистентной логике со стороны БД которая может уже запросить сведенья по операции
(баланс посмотреть). Такое вполне возможно если представить что есть другая система которая ходит в БД но о батчах
ничего не знает ИЛИ часть ЭТОЙ системы которая еще не была адаптирована.

Вобщем мы в топике заняты любимым нашим делом. Придумыванием новых требований.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978988
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
andreykaT
Насчет инсертов. У меня может быть 2-3 инсерта. Где результат одного это данные (ФК) для другого. Причем в зависимости от типа данных это может быть как 1 инсерт так и 2-3-4

Я шизею дорогая редакция.

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

логика действительно проста. просто автор сего приложения на каком то этапе решил что данные надо сохранять в нескольких таблицах а не одной. поэтому да. для некоторых наборов данных кидаем всё в 2 таблицы для других в 3-4 таблицы. так сложилось. исторически. в смысле логики приложение никсколько не усложняется от этого. можно было бы в одну таблицу всё кидать. просто полей было бы много. или вообще монгу ибо реляций чуть больше 1й.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978990
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
забыл ник
Я тоже не понимаю смысла вопроса.
Если нагрузка на систему вырастатет, то сюрприз! надо ее переписывать. Как показывает практика если разница в объемах обработки увеличивается на порядок, то прежние архитектурные принципы уже не подходят, и их надо пересматривать.
Что у тебя за приложение и что оно делает совершенно непонятно, поэтому это тебе лучше знать. Что можно точно сказать - то все эти, вот тут подкрутим, там добавим, поменяем технологию, но не будем трогать основную логику - это развод для лохов, оно так не работает.
Можно ли построить систему на кафка и акка? Можно. Будет ли она лучше чем существующая? Да хз, смотря что надо.
Вообще по скупому описанию я бы смотрел в сторону CQRS и возможно двумя хранилищами, одно оптимизированное на инсерт, второе на селект. Но опять же непонятны условия fault tolerance, resilence, availability и eventual consistency, а без всего этого - как пальцем в небо

+1 к CQRS.

Но это надо обсуждать а уровне бизнес-постановки. Требования - сильно поменяются.

тоже склоняюсь к этому. и да. это требует пересмотреть ээээ требования.
...
Рейтинг: 0 / 0
акка или кафка?
    #39979017
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

О батче не говорил разве что ленивый. Но надо просто посмотреть что для системы такое провисание бизнес-операции
в пачке не приведет к неконсистентной логике со стороны БД которая может уже запросить сведенья по операции
(баланс посмотреть). Такое вполне возможно если представить что есть другая система которая ходит в БД но о батчах
ничего не знает ИЛИ часть ЭТОЙ системы которая еще не была адаптирована

Откуда может взяться неконсистентность со стороны БД ?

Или весь батч накатился, или весь батч откатился. До COMMIT'а данные все равно никто не увидит. Или увидят старый баланс или увидят новый баланс с учетом всего батча.

По исходному сообщению, у меня сложилось ощущение, что данные напоминают некий лог. Т.е. можно записать, можно записать с задержкой, в крайнем случае, можно даже и утерять.

Единственное, что не устраивает, скорость записи постгрескл, что и не удевительно. Т.к. 1-3 инсерта в отдельных транзакциях x 600 паралельных потоков - это мусор и помойка, а не нормальный потом данных для обработки СУБД. Написать на входе мультиплексор и системе явно должно получшеть на порядки (хотя х.з. как там сейчас работа с СУБД устроена). Подобные системы видел и сам делал.

Цифра 600 одновременных соединений в секунду - много
600 insert'ов - для практически любой СУБД на офисном железе, не много
600 сообщений/синхронизаций - для приложения на Java, вообще ничтожно мало. Как я сказал, даже раздумывать над типом коллекции смысла нет. ArrayList и synchronized

C кафка не сталкивался. Но подозреваю, все что сделает кафка в исполнении той же команды разработчиков, это из мусора сделает еще больше мусора, но в кластере ))) Но еще, конечно, принесет: экспиренс, запись в резюме и много удовольствия
...
Рейтинг: 0 / 0
акка или кафка?
    #39979036
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто сказал про 600 соединений в секунду? кто сказал про 600 параллельных потоков? точно я?
я сказал про 600 инсертов в секунду.
...
Рейтинг: 0 / 0
акка или кафка?
    #39979046
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А сколько потоков пишут в базу? И сразу следующей вопрос: а точно ли это база загибается, а не просто на уровне приложения идет ожидание?
...
Рейтинг: 0 / 0
акка или кафка?
    #39979059
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
кто сказал про 600 соединений в секунду? кто сказал про 600 параллельных потоков? точно я?
я сказал про 600 инсертов в секунду.
А кто же еще? у тебя в начальном посте написано: пользователи как хотят, так и бомбят базу, в среднем (сейчас) получается 600 вставок/коммитов в секунду и база ложится

PS. не нужно путать количество вставок в секунду и количество коммитов в секунду, тем более с участием FK. Со вставками в приличных системах речь действительно может идти про миллионы.
...
Рейтинг: 0 / 0
акка или кафка?
    #39979076
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
А сколько потоков пишут в базу? И сразу следующей вопрос: а точно ли это база загибается, а не просто на уровне приложения идет ожидание?

база. сам слик начинает писать варнингами типа ответ занял 1000 мс, ответ занял 10000 мс ответ занял 100000мс и т.п. ))
...
Рейтинг: 0 / 0
акка или кафка?
    #39979079
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
SpringMan
А сколько потоков пишут в базу? И сразу следующей вопрос: а точно ли это база загибается, а не просто на уровне приложения идет ожидание?

база. сам слик начинает писать варнингами типа ответ занял 1000 мс, ответ занял 10000 мс ответ занял 100000мс и т.п. ))

А если из стека технологий выкинуть slick и работать на уровне JDBC?

Хотя-бы для 1 конкретного hot-sql.
...
Рейтинг: 0 / 0
акка или кафка?
    #39979086
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Профайлинг и администрирование на уровне "бог"

IMHO
...
Рейтинг: 0 / 0
акка или кафка?
    #39979097
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Профайлинг и администрирование на уровне "бог"
Это конечно ржака-ржакой, однако, в современной жизни имеет место быть, я, вот, одно время думал почему бы не сменить род деятельности и не пойти в сторону оптимизации производительности - тема по себе довольно прикольная и кроме всего прочего кого-то "сверху" нет, т.е. сидишь себе, копаешься в чем-то, если результаты есть - вот тебе медаль, если нет, то просто зп, однако то что творится в современном мире описать общепринятой лексикой просто невозможно: люди, которые занимаются нагрузочным тестированием ничем кроме нагрузочного тестирования фактически не занимаются, т.е. у них есть куча (платных) инструментов, которые потенциально могут показывать влияние того или иного изменения на производительность системы, однако никакие параметры (а уже тем более писать код) они не то что не умеют, а даже не могут, даже хуже того, они и в действительности нужные метрики собрать не могут, потому что ограничены в возможностях. Сейчас мир захватили какие-то хипстеры, которые вообще нихрена не умеют - как пример этому топику: вместо написания пары строк кода нужно всенеприменно куда-то встроить кафку, есть еще дебилы, которые вместо общепринятого мониторинга пихают куда не попадя всякие поделки в духе графаны.
...
Рейтинг: 0 / 0
акка или кафка?
    #39979099
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
!!!

Что?
...
Рейтинг: 0 / 0
акка или кафка?
    #39979104
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Не, ну можно конечно взять каффка, акка, какую нибудь NoSQL и радоваться (заниматься сексом) с ними полгодика, а то и год.... молодежно и "весело задорно" ( C )

Ну, нормально. Секс он не для стариков.


Leonid Kudryavtsev
Тут уже не 20% прирост, а думаю вполне можно ожидать прирост раз в 10.

Ну ты не знаешь как у него там всё устроено, может после этих insert'ов ему вернётся пачка id, а там еще 10 insert'ов, на каждом по 2 триггера, штук 5 вложенок сверху, а потом select по половине базе. Поможет ему в таком случае твой батч.
...
Рейтинг: 0 / 0
акка или кафка?
    #39979117
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
Leonid Kudryavtsev
Профайлинг и администрирование на уровне "бог"
Это конечно ржака-ржакой, однако, в современной жизни имеет место быть, я, вот, одно время думал почему бы не сменить род деятельности и не пойти в сторону оптимизации производительности - тема по себе довольно прикольная и кроме всего прочего кого-то "сверху" нет, т.е. сидишь себе, копаешься в чем-то, если результаты есть - вот тебе медаль, если нет, то просто зп, однако то что творится в современном мире описать общепринятой лексикой просто невозможно: люди, которые занимаются нагрузочным тестированием ничем кроме нагрузочного тестирования фактически не занимаются, т.е. у них есть куча (платных) инструментов, которые потенциально могут показывать влияние того или иного изменения на производительность системы, однако никакие параметры (а уже тем более писать код) они не то что не умеют, а даже не могут, даже хуже того, они и в действительности нужные метрики собрать не могут, потому что ограничены в возможностях. Сейчас мир захватили какие-то хипстеры, которые вообще нихрена не умеют - как пример этому топику: вместо написания пары строк кода нужно всенеприменно куда-то встроить кафку, есть еще дебилы, которые вместо общепринятого мониторинга пихают куда не попадя всякие поделки в духе графаны.

а причем тут графана. ну хотят графану пусть шатают графану. приложению то пофиг. может вкарячил своего прометея оно его и гребет. а можешь и не корячить.

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

подскажи о добрый человек, куда мне дописать пару строчек чтоб оно работало не на 600 запросов а хотя бы на 6000? ведь это же просто. как в стековерфлоу - ктрл-ц ктрл-в и всё работает. ведь это же так просто исходя из твоих слов?
...
Рейтинг: 0 / 0
акка или кафка?
    #39979118
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Leonid Kudryavtsev
Не, ну можно конечно взять каффка, акка, какую нибудь NoSQL и радоваться (заниматься сексом) с ними полгодика, а то и год.... молодежно и "весело задорно" ( C )

Ну, нормально. Секс он не для стариков.


Leonid Kudryavtsev
Тут уже не 20% прирост, а думаю вполне можно ожидать прирост раз в 10.

Ну ты не знаешь как у него там всё устроено, может после этих insert'ов ему вернётся пачка id, а там еще 10 insert'ов, на каждом по 2 триггера, штук 5 вложенок сверху, а потом select по половине базе. Поможет ему в таком случае твой батч.

нету вложенок никаких. всё тупо как топор. можно прилагу как бенчмарк использовать вполне.

к инсертам примешивается некоторое кличество селектов ну примерно в 1-2хкратном размере и всё. причем часть этих селектов вполне можно вынести на какой-нибудь редис.
...
Рейтинг: 0 / 0
акка или кафка?
    #39979125
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
а причем тут графана. ну хотят графану пусть шатают графану. приложению то пофиг. может вкарячил своего прометея оно его и гребет. а можешь и не корячить.
Люди, использующие графану, теряют связь с реальностью, их цель - красивые картинки, а правильная цель следующая: если метрики, снимаемые с приложения, нарушают пороги, то должен быть заведен инцидент с последующим расследованием. Твои 100 секунд на ответ - это вообще зашквар (читай про правило трех сигм)

andreykaT
я вот не хочу например возиться с оптимизацией. так как это надо быть на нее сильно заточенным. и заниматься только ей. нюансов не очень много но где их взять и как набить я хз да мне и не интересно. а тыкать пальцем в небо можно до бесконечности. ща я бабахну 100500 часов и впилю прослойку для батчинга а на выхлопе окажется шиш да моленько. потому что не все предусмотрели и ваши рассуждения на тему батчинга хороши для кейса А и совершенно бесполезны для кейса Б.
А чего, у вас в Финляндии тоже бомжи в IT работают?

andreykaT
подскажи о добрый человек, куда мне дописать пару строчек чтоб оно работало не на 600 запросов а хотя бы на 6000? ведь это же просто. как в стековерфлоу - ктрл-ц ктрл-в и всё работает. ведь это же так просто исходя из твоих слов?
Отключай синхронный комит в postgresql и наступит "счастье". По импакту это будет то же самое что ты накрутишь со всеми своими кафакми а акками, но при этом будет на виду, без всяких маскировок.
...
Рейтинг: 0 / 0
акка или кафка?
    #39979126
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
вадя
!!!

Что?
+100500 в сжатом виде
...
Рейтинг: 0 / 0
акка или кафка?
    #39979128
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
andreykaT,

Не помогут тебе кафки. Всё прётся в базу, рано или поздно она опять ляжет по этой или другой причине. Можно накачивать твою бд стероидами, но ты уже понял, что проще придумать что-то, чтобы этого не делать.

дядь ты вообще видимо не понимаешь что такое каффка) каким образом там что упрется в базу то?

в его случае это раешается батчингом без каких то плясок с бубном - а вообще раз такая ситуация у него то генерировать id нужно не в бд а на бэке и класть в кэш и далее в кафку - тогда и база не лопнет и id получит мгновенно

пс.у нас есть сервис с нагрузкой раз в 10 больше чем его 600 инсертов в секунду - батчитнг работает отлично и база постгрес через жука
...
Рейтинг: 0 / 0
акка или кафка?
    #39979129
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT


подскажи о добрый человек, куда мне дописать пару строчек чтоб оно работало не на 600 запросов а хотя бы на 6000? ведь это же просто. как в стековерфлоу - ктрл-ц ктрл-в и всё работает. ведь это же так просто исходя из твоих слов?

если хочешь можно в тимс я тебе покажу решение на 6000 инсертов - но его писал не я ,могу только код показать) - но там батчинг
...
Рейтинг: 0 / 0
акка или кафка?
    #39979130
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
в его случае это раешается батчингом без каких то плясок с бубном - а вообще раз такая ситуация у него то генерировать id нужно не в бд а на бэке и класть в кэш и далее в кафку - тогда и база не лопнет и id получит мгновенно

пс.у нас есть сервис с нагрузкой раз в 10 больше чем его 600 инсертов в секунду - батчитнг работает отлично и база постгрес через жука
после твоего отношения к id - твои слова близки к нулю
...
Рейтинг: 0 / 0
акка или кафка?
    #39979131
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT

подскажи о добрый человек, куда мне дописать пару строчек чтоб оно работало не на 600 запросов а хотя бы на 6000? ведь это же просто. как в стековерфлоу - ктрл-ц ктрл-в и всё работает. ведь это же так просто исходя из твоих слов?

Мне кажется что с тебя надо стрясти SQL-запрос. План. И статистика которую видит Постгрес.
И отчот Java Flight Recorder за проблемный период. И memory dump.

Да и еще. Самый пустяк. Исходные коды. А-то вдруг ты там Thread.sleep(1) вставил. Просто чтоб гонок
не было. Я такое видел. Да.
...
Рейтинг: 0 / 0
акка или кафка?
    #39979133
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
Отключай синхронный комит в postgresql и наступит "счастье". По импакту это будет то же самое что ты накрутишь со всеми своими кафакми а акками, но при этом будет на виду, без всяких маскировок.[/quot]
этот фокус пройдет с чистым jdbc?
жук тут не прокатит или любая другая имлементация JPA?
...
Рейтинг: 0 / 0
акка или кафка?
    #39979135
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
asv79
в его случае это раешается батчингом без каких то плясок с бубном - а вообще раз такая ситуация у него то генерировать id нужно не в бд а на бэке и класть в кэш и далее в кафку - тогда и база не лопнет и id получит мгновенно

пс.у нас есть сервис с нагрузкой раз в 10 больше чем его 600 инсертов в секунду - батчитнг работает отлично и база постгрес через жука
после твоего отношения к id - твои слова близки к нулю

вадя ты о чем)
...
Рейтинг: 0 / 0
акка или кафка?
    #39979137
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton


Да и еще. Самый пустяк. Исходные коды. А-то вдруг ты там Thread.sleep(1) вставил. Просто чтоб гонок
не было. Я такое видел. Да.

андреич по классике сделал - сначала thread.interapt() потом thread.sleep()
...
Рейтинг: 0 / 0
акка или кафка?
    #39979139
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79

этот фокус пройдет с чистым jdbc?
жук тут не прокатит или любая другая имлементация JPA?
ну чего ты дичь спрашиваешь-то, в доке же пишут:
https://www.postgresql.org/docs/12/wal-async-commit.html Asynchronous commit is an option that allows transactions to complete more quickly, at the cost that the most recent transactions may be lost if the database should crash. In many applications this is an acceptable trade-off.

andreykaT имеет желание сделать то же самое, но только через жопу.
...
Рейтинг: 0 / 0
25 сообщений из 192, страница 4 из 8
Форумы / Java [игнор отключен] [закрыт для гостей] / акка или кафка?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]