|
акка или кафка?
|
|||
---|---|---|---|
#18+
такая задача. есть приложенька. как обычно слева юзеры посередке бэк справа постгрес. логика приложения проста - юзер приходит с данными, бэк по ним что-то там считает-собирает с разных источников - выдает ответ юзеру и параллельно сохраняет результат в базу если вдруг когда-нибудь юзер захочет эти данные пересмотреть. с некоторых пор у приложения появились затыки по производительности. а именно - по связке база-бэк. база дохнет и быстро. ну много данных много запросов много инсертов. при этом сами бэк-приложения бодрячком. так как в большинстве пользвоательских сценариев в сохраненные коллекции данных юзеры ходят редко я особо не вижу проблемы например, связку бэк-база сделать асинхронной. типа - юзер пришел с данными, бэк их принял в обработку, сформировал ответ - выплюнул юзеру а потом когда-нибудь позже сбросил результат в базу. можно даже со значительным лагом. итого, как я вижу асинхронку тут? мы сформировали ответ, и один экземпляр бросили клиенту, второй экземпляр - в очередь. перед базой стоит что-то что эту очередь планомерно выгребает и складывает результаты в базу. и здесь опции указанные выше - мы юзаем кафку. там ясно понятно работает. мониторится замечательно. но.. как то новый инструмент. либо вариант два - мы юзаем акку (приложение на плее там акка уже под капотом) но акка это не совсем очередь все же на мой взгляд. итого я пока имею по одному плюсу для каждого подхода и по одному минусу: +акка: она уже есть, минимум накладных расходов на рефакторинг. -акка: без понятия как мониторить очередь или че там, без понятия как ее тротлить если база дохнет. без понятия как сбросить очередь куда-нибудь если сервис в ребут ушел (данные не особо критичные, но терять их не очнеь желательно все-равно) +кафка: полноценная очередь, все смотрится мониторится, кучи настроек, ничего не теряется вроде как. -кафка: надо тащить новый инструмент, надо делать рефак глубже. а на выходе все ее плюшки в противовес акки может и не понадобятся вовсе :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 14:03 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Сколько инсертов в минуту? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 15:00 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton Сколько инсертов в минуту? 600 в секунду и всё заваливается. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 15:28 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 andreykaT,у нас это реализовано через отельный сервис в микросервистой архитектуре сервис 1- общается с клиентом + бизнес логика сервис 2 - общается с сервис 1 и бд естественно сообщения между сервис1 и сервис 2 происходят по кафке ,которую ты можешь настроить так чтобы твоя база не падала например в пиковое время это всё равботает до тех пор пока тебе клиенту скажем не надо вернуть айдиху сущности которую назначает база. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 15:29 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 andreykaT пропущено... это всё равботает до тех пор пока тебе клиенту скажем не надо вернуть айдиху сущности которую назначает база. а зачем клиенту в реал тайме id сущности? ты же сам сказал что сервис твой обрабатывает запрос - отдает клиенту и пишет в бд а потом там когда то надо если выдаст запись ну и в чем проблема реализовать две очереди? одна на запись ,другая на выдачу? можно вообще два сервиса поднять запись/выдача - будут работать раздельно клиенту возможно нужен айди чтоб создать новую сущность которая имеет связь с ранее созданной и сохраненной. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 16:48 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 andreykaT клиенту возможно нужен айди чтоб создать новую сущность которая имеет связь с ранее созданной и сохраненной. ну так в чем проблема кидай в кэш и в бд пиши в твоей схеме айди не будте получен пока его не отдаст бд. что в кэш кидать будем? сущность без айди по которому к ней можно было бы обратиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 16:56 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT mayton Сколько инсертов в минуту? 600 в секунду и всё заваливается. А там commit нужен через каждую вставку? 600 в секунду это не очень много. На tpc тестах 2010 года например oracle показывал 250 000 в секунду. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 18:16 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
ну я хз. у меня в реальном трафике ж еще и селекты. селекты плюс инсерты инсерты где то треть. как обычно но там и парой тысяч не пахнет. железка неплохая. а ты про 250к говоришь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 20:19 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 andreykaT,тоода включай батчинг 600 запросов разбивай по 40 грубо говоря вместо 600 инсертов получишь 15 какой батчинг? я не с файлика данные копирую. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 20:20 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей. Ради Христа. Если ты просто хочешь внедрять, мать ее кафку или Акку - внедряй! Но не надо подводить под это основание бедный Postgres который ни в чем не виноват. Я тебя прошу ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 21:51 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton andreykaT пропущено... 600 в секунду и всё заваливается. А там commit нужен через каждую вставку? 600 в секунду это не очень много. На tpc тестах 2010 года например oracle показывал 250 000 в секунду. А подробности про 250000 в секунду можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 23:03 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
SpringMan mayton пропущено... А там commit нужен через каждую вставку? 600 в секунду это не очень много. На tpc тестах 2010 года например oracle показывал 250 000 в секунду. А подробности про 250000 в секунду можно? Кафка свободно держит, правда туда бабла немеряно было влито. Кластер стоял на сорока серверах. Вот что пишет Амазон по этому поводу авторThat's a three broker cluster with 1-2 CPU (depending on the cloud) and 4GB RAM per instance. On Amazon Web Services, this plan handled about 135,000 messages per second while the same plan on Google Cloud Platform and Azure handled around 70,000. У меня есть даже статья в блоге как мы делали нагрузку https://vyatkins.wordpress.com/2016/07/30/velociraptor/ к слову сказать статья довольно древняя. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 23:33 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
SpringMan mayton пропущено... А там commit нужен через каждую вставку? 600 в секунду это не очень много. На tpc тестах 2010 года например oracle показывал 250 000 в секунду. А подробности про 250000 в секунду можно? Раньше я находил инфу о бенчмарках вот на этом ресурсе http://www.tpc.org/ К сожалению он сейчас в отключке и судьба его мне не известна. Собственно чорт с ним. Мы можем найти любой другой бенчмарк транзакций в секунду для трехзвенок где 2-3 звенья будут Java-Postgres или Java-ЛюбаяDBMS просто для сравнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 23:34 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Что там за железо чтоб тащить 250ксек? Майтон я все понимаю за постгрес но его потенциал роста вверх в моем случае исчерпан. Вот и чешу репу чтоб и два горошка скушать и на стул сесть ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 23:41 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
С учетом, что автору нафиг не нужна транзакционность (он ее и так уже похерил), то ожидать пару десятков тысяч инсертов в секунду - нормально практически для любой БД. Разумеется blob'ы и записи >килобайта в расчет не берем ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 23:43 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Sergunka SpringMan пропущено... А подробности про 250000 в секунду можно? Кафка свободно держит, правда туда бабла немеряно было влито. Кластер стоял на сорока серверах. Ну вот я могу поверить про кластер кафки или какой-нить касандры, которые держат 250000 в секунду. Вот с ораклом уже верится сложнее. В tpc бенчмарках видел цифры этих порядков. Но как я понимаю, там разговор про такое количество запросов в минуту и на серверах с 100+ ядер. Судя по 600 запросов в секунду, у andreykaT обычный сервак в районе SSD + 16 ядер ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 23:46 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
p.s. это, разумеется, если делать без всяких кафок, акк и прочих ненужных извращений ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 23:48 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT, я говорю сейчас своё ИМХО основываясь на твоём первом эмоциональном посте в котором нет практически ничего об архитектуре системы. Что за операции ты делаешь. Какой % select/dml там работает? Было ли кеширование? Были ли оптимизации? Что говорят статистики по базе? Какой самый горячий запрос? Хочешь кафку - да бери кафку. Ты просто сделаешь другую систему с другими свойствами где будут возможно другие требования по ACID. Более ослабленные наподобие CQRS. Без транзакций вообще. Или основываясь на слабом предположении о eventual consistency. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 23:49 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton где будут возможно другие требования по ACID Где там ACID ? Если топик стартер собирался заказчику говорить, что все хорошо, а потом ассинхронно писать в БД. ACID даже и не пахнет. Я уж не говорю про "данные не особо критичные, но терять их не очнеь желательно все-равно" ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 23:54 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton Собственно чорт с ним. Мы можем найти любой другой бенчмарк транзакций в секунду для трехзвенок где 2-3 звенья будут Java-Postgres или Java-ЛюбаяDBMS просто для сравнения. Вот для postgres-а нашел ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 00:00 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
SpringMan Sergunka пропущено... Кафка свободно держит, правда туда бабла немеряно было влито. Кластер стоял на сорока серверах. Ну вот я могу поверить про кластер кафки или какой-нить касандры, которые держат 250000 в секунду. Вот с ораклом уже верится сложнее. В tpc бенчмарках видел цифры этих порядков. Но как я понимаю, там разговор про такое количество запросов в минуту и на серверах с 100+ ядер. Судя по 600 запросов в секунду, у andreykaT обычный сервак в районе SSD + 16 ядер На самом деле кассандра столько не потянет так как сложно угадать пиковую нагрузку там может обычно в разы пик пойти. Т.е. архитектура обычно (покрайне мере у нас на платформе) буфер имплементирован на кафке и за кафкой идет кассандра. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 00:09 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
SpringMan mayton Собственно чорт с ним. Мы можем найти любой другой бенчмарк транзакций в секунду для трехзвенок где 2-3 звенья будут Java-Postgres или Java-ЛюбаяDBMS просто для сравнения. Вот для postgres-а нашел Примерно 450 000 tpm. На графике. Это транзакций в минуту. Значит в секунду это будет 450 000 / 60 = 7500. Но это достаточно эксклюзивная конфигурация. Там всё подстроено для симуляции этого теста. На реальном приложении будет помедленнее. Особенно с неидеальной сетью. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 00:16 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev С учетом, что автору нафиг не нужна транзакционность (он ее и так уже похерил), то ожидать пару десятков тысяч инсертов в секунду - нормально практически для любой БД. Разумеется blob'ы и записи >килобайта в расчет не берем ))) я попробую снять стату с базы. у меня в среднем летит 300 рест запросов что порождает 600-900 инсертов и какое то количество селектов (минимум 300). далее, не понял, при чем тут транзакционность? и откуда выводы что я ее похерил? атомарные операции (по логике атомарные) у меня выполняются внутри транзакций. это вроде как очевидная вещь о которой говорить и не следует. по поводу конфиги. у меня бд не ссд (я хз что еще оказывается не ссд бывает но так девопсы сказали) 24 ядра хз сколько оперативки. при озвучанных выше значениях начинает просто каждый последующий инсерт вставляться все дольше и дольше и так до 5-ти минут на простой инсерт! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 10:30 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev mayton где будут возможно другие требования по ACID Где там ACID ? Если топик стартер собирался заказчику говорить, что все хорошо, а потом ассинхронно писать в БД. ACID даже и не пахнет. Я уж не говорю про "данные не особо критичные, но терять их не очнеь желательно все-равно" то что в кавычках - поясняю. если пропадет 1% данных - то это не будет страшно. если пропадет 50% данных - то это плохо. асинхронно писать - потому что я не вижу особо выхода. либо вертикально скейлить бд, либо думать всякую фигню с репликами. либо переписывать код. всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 10:33 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Sergunka SpringMan пропущено... Ну вот я могу поверить про кластер кафки или какой-нить касандры, которые держат 250000 в секунду. Вот с ораклом уже верится сложнее. В tpc бенчмарках видел цифры этих порядков. Но как я понимаю, там разговор про такое количество запросов в минуту и на серверах с 100+ ядер. Судя по 600 запросов в секунду, у andreykaT обычный сервак в районе SSD + 16 ядер На самом деле кассандра столько не потянет так как сложно угадать пиковую нагрузку там может обычно в разы пик пойти. Т.е. архитектура обычно (покрайне мере у нас на платформе) буфер имплементирован на кафке и за кафкой идет кассандра. ну я по-сути хочу что-то такое же. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 10:39 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT далее, не понял, при чем тут транзакционность? и откуда выводы что я ее похерил? атомарные операции (по логике атомарные) у меня выполняются внутри транзакций. это вроде как очевидная вещь о которой говорить и не следует. Ох темнота... ты "клиенту" отдал данные и сказал: "вот теперь ты к этим данным ты можешь обращаться" (хоть в тот же момент, хоть время спустя) - и ты этот "контракт" обязан соблюсти (как ты его собираешься соблюдать никого не интересует - можешь хоть несколько уровней сделать). Ты когда базе говоришь "ты давай в таблицы вставляй (insert) и мне результат давай (commit)" - это точно такой же контракт, но в отличии от твоей поделки здесь совершенно понятно что в базе происходит, т.е. мы точно знаем кто нам враг: - конкуренция за блок таблицы - конкуренция за блоки индексов - частые коммиты можешь врубить в постгресе asynchronous commit (пусть DBA поржут), а можешь конкуренцию уменьшить. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 14:17 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
еще раз, причем тут тразакционность? спасибо за лекцию про конкурентный доступ к шареным ресурсам. но я спросил про другое. повторяю вопрос - причем тут транзакционность? в контексте того что я ее "похерил". жду подробностей. где когда при каких обстоятельствах я ее похерил? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 14:27 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT еще раз, причем тут тразакционность? спасибо за лекцию про конкурентный доступ к шареным ресурсам. но я спросил про другое. повторяю вопрос - причем тут транзакционность? в контексте того что я ее "похерил". жду подробностей. где когда при каких обстоятельствах я ее похерил? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 14:35 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT еще раз, причем тут тразакционность? спасибо за лекцию про конкурентный доступ к шареным ресурсам. но я спросил про другое. повторяю вопрос - причем тут транзакционность? в контексте того что я ее "похерил". жду подробностей. где когда при каких обстоятельствах я ее похерил? так я этого еще не сделал. я рассматриваю варианты. почему ты пишешь в прошедшем времени? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 14:50 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT так я этого еще не сделал. я рассматриваю варианты. почему ты пишешь в прошедшем времени? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 14:54 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT еще раз, причем тут тразакционность? спасибо за лекцию про конкурентный доступ к шареным ресурсам. но я спросил про другое. повторяю вопрос - причем тут транзакционность? в контексте того что я ее "похерил". жду подробностей. где когда при каких обстоятельствах я ее похерил? по твоей логике все эти акки кафки и прочее что не гарантирует доставку - фигня на постном масле и глупые выдумки. ничего кроме православной синхронки с гарантиями не существует. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 14:58 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT так я этого еще не сделал. я рассматриваю варианты. почему ты пишешь в прошедшем времени? какой код? там приложение простое как топор - получил данные обработал данные сохранил данные отдал клиенту результат обработки. вроде не рокетсаенз чтоб это рассматривать чем то фантастически нетривиальным. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 14:59 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT по твоей логике все эти акки кафки и прочее что не гарантирует доставку - фигня на постном масле и глупые выдумки. ничего кроме православной синхронки с гарантиями не существует. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:05 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT Андрей Панфилов пропущено... потому что ты даже самые очевидные (ну там действительно код пописать нужно) варианты не рассматриваешь, а вместо этого уже решил какую-то дичь использовать. какой код? там приложение простое как топор - получил данные обработал данные сохранил данные отдал клиенту результат обработки. вроде не рокетсаенз чтоб это рассматривать чем то фантастически нетривиальным. Так это в топике и есть самое интересное. Или ты думаешь что простой "топор" всегда без ошибок написан? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:07 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT какой код? там приложение простое как топор - получил данные обработал данные сохранил данные отдал клиенту результат обработки. вроде не рокетсаенз чтоб это рассматривать чем то фантастически нетривиальным. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:09 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT какой код? там приложение простое как топор - получил данные обработал данные сохранил данные отдал клиенту результат обработки. вроде не рокетсаенз чтоб это рассматривать чем то фантастически нетривиальным. клиенту ответ надо сразу отдавать. если можно подождать то зачем очередь. я так же могу подождать и ответа с базы. 3 минуты например :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:10 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT клиенту ответ надо сразу отдавать. если можно подождать то зачем очередь. я так же могу подождать и ответа с базы. 3 минуты например :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:13 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton andreykaT пропущено... какой код? там приложение простое как топор - получил данные обработал данные сохранил данные отдал клиенту результат обработки. вроде не рокетсаенз чтоб это рассматривать чем то фантастически нетривиальным. Так это в топике и есть самое интересное. Или ты думаешь что простой "топор" всегда без ошибок написан? чем проще - тем меньше шанса на ошибку. понятно что можно зарыться во всякие там оптимизации запросов индексы хитрые настройки бд и т.п. но это не решит радикально проблему. это просто чуть отодвинет наступления того момента когда от тебя потребуется это решить. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:13 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT mayton пропущено... Так это в топике и есть самое интересное. Или ты думаешь что простой "топор" всегда без ошибок написан? чем проще - тем меньше шанса на ошибку. понятно что можно зарыться во всякие там оптимизации запросов индексы хитрые настройки бд и т.п. но это не решит радикально проблему. это просто чуть отодвинет наступления того момента когда от тебя потребуется это решить. Ну ты блин даёшь! Может один create index... решит твою проблему еще лет на 10 с запасом для твоей системы. Ты даже и не попробовал? Хотя-бы в форум Postgres задавал вопрос по перформансу? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:15 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
это мой предыдущий шаг перед тем что я выше сказал. если не поможет. а скорее всего не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:24 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Какой самый горячий DML у тебя? Insert? Update? Щас я напишу HelloFuckenWorld приложение которое просто делает обновления для локальной таблички PG и замеряю показатели. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:36 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Есть требование по времени отклика для клиента? Проблема кажется сильно надуманной. Взяли запросы на вставку, сбатчивали (от слова batch), параллельно храним ID клиента (или поток, или AKA актор) которому нужно ответить, батч вставили в базу, если успешно - отослали всем клиентам подтверждение. Если клиент может подождать 0.2-0.5 секунды, лично я проблемы вообще не вижу. Всего-то добавляется два потока: один на таймере (например раз в 1/5-1/10 секунды), второй данные скидывает в базу и отсылает подтверждение. Только одно мне не понятно, зачем тут что-то еще, кроме стандартного Java и synchronized поверх банального ArrayList (т.к. 600 записей в секунду это не то, ради чего даже нужно задумываться о типе коллекции) PostgreSQL на любом офисном компьютере пару тысяч/десятков тысяч вставок в секунду вполне осилить может, если уметь его готовить IMHO & AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:40 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Проблема кажется сильно надуманной. Взяли запросы на вставку, сбатчивали (от слова batch), параллельно храним ID клиента (или поток, или AKA актор) которому нужно ответить, батч вставили в базу, если успешно - отослали всем клиентам подтверждение. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:42 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Он хочет перенести весь биллинг в аппликейшен. Опасная штука IMHO. У сырого апликейшена нет гарантий во Durability. Что Андрейка будет делать после перегрузки по Power? Или он возложет эту задачу на серверы JMS/MQ. Но у них тоже нет этих гарантий. Вернее они слабые. Слабее чем у DBMS. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 18:50 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT клиенту ответ надо сразу отдавать. если можно подождать то зачем очередь. я так же могу подождать и ответа с базы. 3 минуты например :) Выше вон говорят 250 тыщ норм и 600 - ниачем. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 18:54 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Я-бы посчитал теоретическую расчетную скорость транзакций для 100Мб и 1Гб сети при условии что наша каждая транзакция - это RPC (roundtrip сетевого пакета туда и обратно). Кто-то делал такие расчеты, господа? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 19:05 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT Выше вон говорят 250 тыщ норм и 600 - ниачем. oracleWhen a transaction commits, the following actions occur: - The database generates an SCN for the COMMIT. The internal transaction table for the associated undo tablespace records that the transaction has committed. The corresponding unique SCN of the transaction is assigned and recorded in the transaction table. See "Serializable Isolation Level". - The log writer process (LGWR) process writes remaining redo log entries in the redo log buffers to the online redo log and writes the transaction SCN to the online redo log. This atomic event constitutes the commit of the transaction . - Oracle Database releases locks held on rows and tables. Users who were enqueued waiting on locks held by the uncommitted transaction are allowed to proceed with their work. - Oracle Database deletes savepoints. - Oracle Database performs a commit cleanout. If modified blocks containing data from the committed transaction are still in the SGA, and if no other session is modifying them, then the database removes lock-related transaction information (the ITL entry) from the blocks. - Oracle Database marks the transaction complete. Вот если забить болт на то что у тебя 600 потоков вызывают бешеную конкуренцию (смотри видосик кстати про конкуренцию: ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 19:56 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Как мне батчи формировать. К меня может быть как 0-1 запрос в секунду так и 600 запросов. Придумывать костыли типа если вот сколько ол времени новых данных нет то скидываем то что есть и прочее уныние. Не. Да и особо не помню дикого прироста с переходом на батчинг кода это делал давно да вставлять стало быстрее но чуда не произошло. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 22:39 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton Какой самый горячий DML у тебя? Insert? Update? Щас я напишу HelloFuckenWorld приложение которое просто делает обновления для локальной таблички PG и замеряю показатели. Апдейтов практически нет. Инсерты онли. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 22:40 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT Как мне батчи формировать. К меня может быть как 0-1 запрос в секунду так и 600 запросов. Придумывать костыли типа если вот сколько ол времени новых данных нет то скидываем то что есть и прочее уныние. Не. Да и особо не помню дикого прироста с переходом на батчинг кода это делал давно да вставлять стало быстрее но чуда не произошло. У postgres-а есть еще COPY. Если за раз вставляется много записей, то с ним чудо может произойти. Если будет выбрано решение с кафкой, то ничего не мешает батчить/copy в базу и в нем ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 23:03 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton Он хочет перенести весь биллинг в аппликейшен. Опасная штука IMHO. У сырого апликейшена нет гарантий во Durability. Что Андрейка будет делать после перегрузки по Power? Или он возложет эту задачу на серверы JMS/MQ. Но у них тоже нет этих гарантий. Вернее они слабые. Слабее чем у DBMS. Так у меня не биллинг)) еще раз. Основная цель приложения - процессинг данных и возврат результата клиенту. Сохранение данных - это цель с наименьшим приоритетом. Не обязательно условно сразу. Требования к системам бывают разными. В моем случае они таковы. Не надо требовать то чего не требуется) Батчинг.. Ну вколочу я батчинг а он даст перформанс + 20% - это время в ведро. Плюс опять же. Мне надо будет из батча вытряхнуть все новые айди записей раздать их всем ожидающим по каким то там признакам причем я не уверен что батчи это умеют. Эээ да харош)) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 00:21 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT Мне надо будет из батча вытряхнуть все новые айди записей если делать "стандартно" это два обращения к базе - инсерт и селект через одно обращение - это только хранимка. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 08:30 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT Батчинг.. Ну вколочу я батчинг а он даст перформанс + 20% - это время в ведро. Если лить батчами, то в сравнении с твоими 600 вставками в секунду, throughput возрастет не на 20%, а на пару порядков (десятичных) + в базе лишней конкуренции не будет и оно сможет заниматься более нужными делами. Заниматься онанизмом с выяснением того что вставилось тоже не нужно: достаточно идентификаторы заранее генерить (ну там UUID или иметь пул идентификаторов из последовательности) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 08:40 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя чтобы вытянуть id - надо получать id после каждого инсерта, иначе получишь id только последней вставки. если делать "стандартно" это два обращения к базе - инсерт и селект через одно обращение - это только хранимка. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 08:50 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов в MySQL? да и в mssql и что в итоге? только последний id ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 09:43 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT Батчинг.. Ну вколочу я батчинг а он даст перформанс + 20% - это время в ведро. Если лить батчами, то в сравнении с твоими 600 вставками в секунду, throughput возрастет не на 20%, а на пару порядков (десятичных) + в базе лишней конкуренции не будет и оно сможет заниматься более нужными делами. Заниматься онанизмом с выяснением того что вставилось тоже не нужно: достаточно идентификаторы заранее генерить (ну там UUID или иметь пул идентификаторов из последовательности) Да. По ууид это единственное тут решение. Отвязываемся от базы и спим спокойно. Насчет батчинга. Еще раз. Я не файл ксв в базу импортирую. Я с живым и непредсказуемым трафиком работаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 09:48 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Насчет инсертов. У меня может быть 2-3 инсерта. Где результат одного это данные (ФК) для другого. Причем в зависимости от типа данных это может быть как 1 инсерт так и 2-3-4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 09:50 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT По ууид это единственное тут решение ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 09:52 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT Где результат одного это данные (ФК) для другого. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 09:53 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя да и в mssql и что в итоге? только последний id JDBC 4.1 Specification The method Statement.getGeneratedKeys, which can be called to retrieve the generated value, returns a ResultSet object with a column for each automatically generated value . The methods execute, executeUpdate or Connection.prepareStatement accept an optional parameter, which can be used to indicate that any auto generated values should be returned when the statement is executed or prepared. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 10:14 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT Насчет инсертов. У меня может быть 2-3 инсерта. Где результат одного это данные (ФК) для другого. Причем в зависимости от типа данных это может быть как 1 инсерт так и 2-3-4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 10:26 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, не надо путать драйвер и возможности субд ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 10:33 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT это всё равботает до тех пор пока тебе клиенту скажем не надо вернуть айдиху сущности которую назначает база. Это проблемы пацанов, у которых всё в бд. У них база не возвращает никаких id. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 10:37 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 а зачем клиенту в реал тайме id сущности? Понятно. Не можем == не нужно. Классика ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 10:38 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 все решение в одной строчке конфига Как, у вас, говнокодеров, всё просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 10:41 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
crutchmaster Понятно. Не можем == не нужно. Классика ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 10:42 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT, Не помогут тебе кафки. Всё прётся в базу, рано или поздно она опять ляжет по этой или другой причине. Можно накачивать твою бд стероидами, но ты уже понял, что проще придумать что-то, чтобы этого не делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 10:57 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT Придумывать костыли типа если вот сколько ол времени новых данных нет то скидываем то что есть и прочее уныние. Особой костыльности не вижу. В чем уныние тем более не понимаю. Не, ну можно конечно взять каффка, акка, какую нибудь NoSQL и радоваться (заниматься сексом) с ними полгодика, а то и год.... молодежно и "весело задорно" ( C ) IMHO andreykaT Батчинг.. Ну вколочу я батчинг а он даст перформанс + 20% - это время в ведро. Плюс опять же. Мне надо будет из батча вытряхнуть все новые айди записей раздать их всем ожидающим по каким то там признакам причем я не уверен что батчи это умеют. Эээ да харош)) Если 600 записей накапливать в буффере и скидывать в PostgreSQL раз в 0.1 sec, а то и раз в 0.2 sec. То это получается "батч" размером в 50-100 записей Тут уже не 20% прирост, а думаю вполне можно ожидать прирост раз в 10. Но опять таки, зависит от прямоты рук, структуры таблиц (индексы) и прочего. Повторюсь, несколько тысяч/десятков тысяч "простых" insert'ов в секунду почти любая СУБД выдержит на обычном офисном HDD. вадя чтобы вытянуть id - надо получать id после каждого инсерта, иначе получишь id только последней вставки. если делать "стандартно" это два обращения к базе - инсерт и селект через одно обращение - это только хранимка. Не совсем правда. Например в Oracle, батч-insert так же умеет делать и батч-returing. В PostgreSQL не уверен. Но написать хранимку, мне кажется это "не бином ньютона" и не обменять трехкомнатную квартиру на Земляном валу на 6 комнат, правда, рассеянных в полном беспорядке по всей Москве и при этом без использования пятого измерения )) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:18 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT Насчет инсертов. У меня может быть 2-3 инсерта. Где результат одного это данные (ФК) для другого. Причем в зависимости от типа данных это может быть как 1 инсерт так и 2-3-4 Я шизею дорогая редакция. И как это соотносится с начальным постом: Тот-же-авторлогика приложения проста - юзер приходит с данными, бэк по ним что-то там считает-собирает с разных источников - выдает ответ юзеру и параллельно сохраняет результат в базу если вдруг когда-нибудь юзер захочет эти данные пересмотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:19 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Есть подозрение, что проблема не в базе, а в hibernate головного мозга, на фоне прогрессирующих акка и каффка симптомов ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:25 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Я тоже не понимаю смысла вопроса. Если нагрузка на систему вырастатет, то сюрприз! надо ее переписывать. Как показывает практика если разница в объемах обработки увеличивается на порядок, то прежние архитектурные принципы уже не подходят, и их надо пересматривать. Что у тебя за приложение и что оно делает совершенно непонятно, поэтому это тебе лучше знать. Что можно точно сказать - то все эти, вот тут подкрутим, там добавим, поменяем технологию, но не будем трогать основную логику - это развод для лохов, оно так не работает. Можно ли построить систему на кафка и акка? Можно. Будет ли она лучше чем существующая? Да хз, смотря что надо. Вообще по скупому описанию я бы смотрел в сторону CQRS и возможно двумя хранилищами, одно оптимизированное на инсерт, второе на селект. Но опять же непонятны условия fault tolerance, resilence, availability и eventual consistency, а без всего этого - как пальцем в небо ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:25 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Есть подозрение, что проблема не в базе, а в hibernate головного мозга, на фоне прогрессирующих акка и каффка симптомов Приложение на слике ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:38 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
забыл ник Я тоже не понимаю смысла вопроса. Если нагрузка на систему вырастатет, то сюрприз! надо ее переписывать. Как показывает практика если разница в объемах обработки увеличивается на порядок, то прежние архитектурные принципы уже не подходят, и их надо пересматривать. Что у тебя за приложение и что оно делает совершенно непонятно, поэтому это тебе лучше знать. Что можно точно сказать - то все эти, вот тут подкрутим, там добавим, поменяем технологию, но не будем трогать основную логику - это развод для лохов, оно так не работает. Можно ли построить систему на кафка и акка? Можно. Будет ли она лучше чем существующая? Да хз, смотря что надо. Вообще по скупому описанию я бы смотрел в сторону CQRS и возможно двумя хранилищами, одно оптимизированное на инсерт, второе на селект. Но опять же непонятны условия fault tolerance, resilence, availability и eventual consistency, а без всего этого - как пальцем в небо +1 к CQRS. Но это надо обсуждать а уровне бизнес-постановки. Требования - сильно поменяются. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 14:02 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Who is слик ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 14:16 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Если 600 записей накапливать в буффере и скидывать в PostgreSQL раз в 0.1 sec, а то и раз в 0.2 sec. То это получается "батч" размером в 50-100 записей О батче не говорил разве что ленивый. Но надо просто посмотреть что для системы такое провисание бизнес-операции в пачке не приведет к неконсистентной логике со стороны БД которая может уже запросить сведенья по операции (баланс посмотреть). Такое вполне возможно если представить что есть другая система которая ходит в БД но о батчах ничего не знает ИЛИ часть ЭТОЙ системы которая еще не была адаптирована. Вобщем мы в топике заняты любимым нашим делом. Придумыванием новых требований. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 14:25 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev andreykaT Насчет инсертов. У меня может быть 2-3 инсерта. Где результат одного это данные (ФК) для другого. Причем в зависимости от типа данных это может быть как 1 инсерт так и 2-3-4 Я шизею дорогая редакция. И как это соотносится с начальным постом: Тот-же-авторлогика приложения проста - юзер приходит с данными, бэк по ним что-то там считает-собирает с разных источников - выдает ответ юзеру и параллельно сохраняет результат в базу если вдруг когда-нибудь юзер захочет эти данные пересмотреть. логика действительно проста. просто автор сего приложения на каком то этапе решил что данные надо сохранять в нескольких таблицах а не одной. поэтому да. для некоторых наборов данных кидаем всё в 2 таблицы для других в 3-4 таблицы. так сложилось. исторически. в смысле логики приложение никсколько не усложняется от этого. можно было бы в одну таблицу всё кидать. просто полей было бы много. или вообще монгу ибо реляций чуть больше 1й. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 14:25 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton забыл ник Я тоже не понимаю смысла вопроса. Если нагрузка на систему вырастатет, то сюрприз! надо ее переписывать. Как показывает практика если разница в объемах обработки увеличивается на порядок, то прежние архитектурные принципы уже не подходят, и их надо пересматривать. Что у тебя за приложение и что оно делает совершенно непонятно, поэтому это тебе лучше знать. Что можно точно сказать - то все эти, вот тут подкрутим, там добавим, поменяем технологию, но не будем трогать основную логику - это развод для лохов, оно так не работает. Можно ли построить систему на кафка и акка? Можно. Будет ли она лучше чем существующая? Да хз, смотря что надо. Вообще по скупому описанию я бы смотрел в сторону CQRS и возможно двумя хранилищами, одно оптимизированное на инсерт, второе на селект. Но опять же непонятны условия fault tolerance, resilence, availability и eventual consistency, а без всего этого - как пальцем в небо +1 к CQRS. Но это надо обсуждать а уровне бизнес-постановки. Требования - сильно поменяются. тоже склоняюсь к этому. и да. это требует пересмотреть ээээ требования. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 14:29 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton О батче не говорил разве что ленивый. Но надо просто посмотреть что для системы такое провисание бизнес-операции в пачке не приведет к неконсистентной логике со стороны БД которая может уже запросить сведенья по операции (баланс посмотреть). Такое вполне возможно если представить что есть другая система которая ходит в БД но о батчах ничего не знает ИЛИ часть ЭТОЙ системы которая еще не была адаптирована Откуда может взяться неконсистентность со стороны БД ? Или весь батч накатился, или весь батч откатился. До COMMIT'а данные все равно никто не увидит. Или увидят старый баланс или увидят новый баланс с учетом всего батча. По исходному сообщению, у меня сложилось ощущение, что данные напоминают некий лог. Т.е. можно записать, можно записать с задержкой, в крайнем случае, можно даже и утерять. Единственное, что не устраивает, скорость записи постгрескл, что и не удевительно. Т.к. 1-3 инсерта в отдельных транзакциях x 600 паралельных потоков - это мусор и помойка, а не нормальный потом данных для обработки СУБД. Написать на входе мультиплексор и системе явно должно получшеть на порядки (хотя х.з. как там сейчас работа с СУБД устроена). Подобные системы видел и сам делал. Цифра 600 одновременных соединений в секунду - много 600 insert'ов - для практически любой СУБД на офисном железе, не много 600 сообщений/синхронизаций - для приложения на Java, вообще ничтожно мало. Как я сказал, даже раздумывать над типом коллекции смысла нет. ArrayList и synchronized C кафка не сталкивался. Но подозреваю, все что сделает кафка в исполнении той же команды разработчиков, это из мусора сделает еще больше мусора, но в кластере ))) Но еще, конечно, принесет: экспиренс, запись в резюме и много удовольствия ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 15:02 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
кто сказал про 600 соединений в секунду? кто сказал про 600 параллельных потоков? точно я? я сказал про 600 инсертов в секунду. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 15:18 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
А сколько потоков пишут в базу? И сразу следующей вопрос: а точно ли это база загибается, а не просто на уровне приложения идет ожидание? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 15:27 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT кто сказал про 600 соединений в секунду? кто сказал про 600 параллельных потоков? точно я? я сказал про 600 инсертов в секунду. PS. не нужно путать количество вставок в секунду и количество коммитов в секунду, тем более с участием FK. Со вставками в приличных системах речь действительно может идти про миллионы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 15:39 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
SpringMan А сколько потоков пишут в базу? И сразу следующей вопрос: а точно ли это база загибается, а не просто на уровне приложения идет ожидание? база. сам слик начинает писать варнингами типа ответ занял 1000 мс, ответ занял 10000 мс ответ занял 100000мс и т.п. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 16:06 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT SpringMan А сколько потоков пишут в базу? И сразу следующей вопрос: а точно ли это база загибается, а не просто на уровне приложения идет ожидание? база. сам слик начинает писать варнингами типа ответ занял 1000 мс, ответ занял 10000 мс ответ занял 100000мс и т.п. )) А если из стека технологий выкинуть slick и работать на уровне JDBC? Хотя-бы для 1 конкретного hot-sql. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 16:08 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Профайлинг и администрирование на уровне "бог" IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 16:18 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Профайлинг и администрирование на уровне "бог" ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 16:53 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Не, ну можно конечно взять каффка, акка, какую нибудь NoSQL и радоваться (заниматься сексом) с ними полгодика, а то и год.... молодежно и "весело задорно" ( C ) Ну, нормально. Секс он не для стариков. Leonid Kudryavtsev Тут уже не 20% прирост, а думаю вполне можно ожидать прирост раз в 10. Ну ты не знаешь как у него там всё устроено, может после этих insert'ов ему вернётся пачка id, а там еще 10 insert'ов, на каждом по 2 триггера, штук 5 вложенок сверху, а потом select по половине базе. Поможет ему в таком случае твой батч. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 17:03 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов Leonid Kudryavtsev Профайлинг и администрирование на уровне "бог" а причем тут графана. ну хотят графану пусть шатают графану. приложению то пофиг. может вкарячил своего прометея оно его и гребет. а можешь и не корячить. я вот не хочу например возиться с оптимизацией. так как это надо быть на нее сильно заточенным. и заниматься только ей. нюансов не очень много но где их взять и как набить я хз да мне и не интересно. а тыкать пальцем в небо можно до бесконечности. ща я бабахну 100500 часов и впилю прослойку для батчинга а на выхлопе окажется шиш да моленько. потому что не все предусмотрели и ваши рассуждения на тему батчинга хороши для кейса А и совершенно бесполезны для кейса Б. подскажи о добрый человек, куда мне дописать пару строчек чтоб оно работало не на 600 запросов а хотя бы на 6000? ведь это же просто. как в стековерфлоу - ктрл-ц ктрл-в и всё работает. ведь это же так просто исходя из твоих слов? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 17:36 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
crutchmaster Leonid Kudryavtsev Не, ну можно конечно взять каффка, акка, какую нибудь NoSQL и радоваться (заниматься сексом) с ними полгодика, а то и год.... молодежно и "весело задорно" ( C ) Ну, нормально. Секс он не для стариков. Leonid Kudryavtsev Тут уже не 20% прирост, а думаю вполне можно ожидать прирост раз в 10. Ну ты не знаешь как у него там всё устроено, может после этих insert'ов ему вернётся пачка id, а там еще 10 insert'ов, на каждом по 2 триггера, штук 5 вложенок сверху, а потом select по половине базе. Поможет ему в таком случае твой батч. нету вложенок никаких. всё тупо как топор. можно прилагу как бенчмарк использовать вполне. к инсертам примешивается некоторое кличество селектов ну примерно в 1-2хкратном размере и всё. причем часть этих селектов вполне можно вынести на какой-нибудь редис. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 17:38 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT а причем тут графана. ну хотят графану пусть шатают графану. приложению то пофиг. может вкарячил своего прометея оно его и гребет. а можешь и не корячить. andreykaT я вот не хочу например возиться с оптимизацией. так как это надо быть на нее сильно заточенным. и заниматься только ей. нюансов не очень много но где их взять и как набить я хз да мне и не интересно. а тыкать пальцем в небо можно до бесконечности. ща я бабахну 100500 часов и впилю прослойку для батчинга а на выхлопе окажется шиш да моленько. потому что не все предусмотрели и ваши рассуждения на тему батчинга хороши для кейса А и совершенно бесполезны для кейса Б. andreykaT подскажи о добрый человек, куда мне дописать пару строчек чтоб оно работало не на 600 запросов а хотя бы на 6000? ведь это же просто. как в стековерфлоу - ктрл-ц ктрл-в и всё работает. ведь это же так просто исходя из твоих слов? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 17:59 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
crutchmaster вадя !!! Что? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 17:59 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
crutchmaster andreykaT, Не помогут тебе кафки. Всё прётся в базу, рано или поздно она опять ляжет по этой или другой причине. Можно накачивать твою бд стероидами, но ты уже понял, что проще придумать что-то, чтобы этого не делать. дядь ты вообще видимо не понимаешь что такое каффка) каким образом там что упрется в базу то? в его случае это раешается батчингом без каких то плясок с бубном - а вообще раз такая ситуация у него то генерировать id нужно не в бд а на бэке и класть в кэш и далее в кафку - тогда и база не лопнет и id получит мгновенно пс.у нас есть сервис с нагрузкой раз в 10 больше чем его 600 инсертов в секунду - батчитнг работает отлично и база постгрес через жука ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:00 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT подскажи о добрый человек, куда мне дописать пару строчек чтоб оно работало не на 600 запросов а хотя бы на 6000? ведь это же просто. как в стековерфлоу - ктрл-ц ктрл-в и всё работает. ведь это же так просто исходя из твоих слов? если хочешь можно в тимс я тебе покажу решение на 6000 инсертов - но его писал не я ,могу только код показать) - но там батчинг ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:03 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 в его случае это раешается батчингом без каких то плясок с бубном - а вообще раз такая ситуация у него то генерировать id нужно не в бд а на бэке и класть в кэш и далее в кафку - тогда и база не лопнет и id получит мгновенно пс.у нас есть сервис с нагрузкой раз в 10 больше чем его 600 инсертов в секунду - батчитнг работает отлично и база постгрес через жука ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:03 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT подскажи о добрый человек, куда мне дописать пару строчек чтоб оно работало не на 600 запросов а хотя бы на 6000? ведь это же просто. как в стековерфлоу - ктрл-ц ктрл-в и всё работает. ведь это же так просто исходя из твоих слов? Мне кажется что с тебя надо стрясти SQL-запрос. План. И статистика которую видит Постгрес. И отчот Java Flight Recorder за проблемный период. И memory dump. Да и еще. Самый пустяк. Исходные коды. А-то вдруг ты там Thread.sleep(1) вставил. Просто чтоб гонок не было. Я такое видел. Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:07 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов этот фокус пройдет с чистым jdbc? жук тут не прокатит или любая другая имлементация JPA? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:11 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя asv79 в его случае это раешается батчингом без каких то плясок с бубном - а вообще раз такая ситуация у него то генерировать id нужно не в бд а на бэке и класть в кэш и далее в кафку - тогда и база не лопнет и id получит мгновенно пс.у нас есть сервис с нагрузкой раз в 10 больше чем его 600 инсертов в секунду - батчитнг работает отлично и база постгрес через жука вадя ты о чем) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:13 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton Да и еще. Самый пустяк. Исходные коды. А-то вдруг ты там Thread.sleep(1) вставил. Просто чтоб гонок не было. Я такое видел. Да. андреич по классике сделал - сначала thread.interapt() потом thread.sleep() ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:17 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
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 имеет желание сделать то же самое, но только через жопу. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:17 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT причем часть этих селектов вполне можно вынести на какой-нибудь редис Можно вопрос: а каким образом, это вообще может сказаться на производительности ? PostgreSQL не все равно, откуда пришли запросы, на которых он "лег" ? подскажи о добрый человек, куда мне дописать пару строчек чтоб оно работало не на 600 запросов а хотя бы на 6000? ведь это же просто. как в стековерфлоу - ктрл-ц ктрл-в и всё работает. ведь это же так просто исходя из твоих слов? Oracle - действительно просто, в init.ora надо добавить fast = true, к сожалению PostgreSQL значительно отстал в развитии сначала определяют, чего именно не хватает СУБД и что конкретно потребляет ее ресурсы ищут запросы, которые генерируются чаще всего и дольше всего выполняются, их пытаются ускорить, есть например, такая вещь, как индекс ))) и они даже бывают разные ))). Смотрять план запросов если есть подозрение, что "тяжелые" это insert и commit, смотрять статистику по записи на диск и время ожидания фонового процесса сброса грязных буферов и лог врайтера, насколько часто и безболезненно проходят чекпоинты (терминология у меня хромает, но postgresql вроде один в один Oracle 8i). Чем грязных буферов больше, а сбросов/чекпоинтов меньше, тем быстрее работает думают, можно ли проапгрейдить железо или поменять параметры (для Oracle например размер redo log buffer и время до чекпоинтов / размер redo log файлов, с PostreSQL сложнее и не настолько явное влияние оказывает afaik) если диски HDD, то крайне осмысленно/желательно вынесение redo log на отдельные диски и вынесение на отдельные диски redo log archive, что бы при архивирование redo log была минимальная конкуренции с текущими транзакциями и так далее и тому подобное зная, что конкретно "плохо", можно уже думать, как это плохо убрать IMHO п.с. под PostgreSQL есть еще такая вещь, как Vacuum, но ее ни разу не пытался тюнить / настраивать, не сталкивался ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:19 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 mayton Да и еще. Самый пустяк. Исходные коды. А-то вдруг ты там Thread.sleep(1) вставил. Просто чтоб гонок не было. Я такое видел. Да. андреич по классике сделал - сначала thread.interapt() потом thread.sleep() Еще Thread.yield() такой был. Типа уступить лыжню. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:19 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev терминология у меня хромает, но postgresql вроде один в один Oracle 8i ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:24 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton asv79 пропущено... андреич по классике сделал - сначала thread.interapt() потом thread.sleep() Еще Thread.yield() такой был. Типа уступить лыжню. короче что мы выяснили ? давайте подведем итоги) 1.человек -сеньер из епам != реальный сьньер 2.в финляндии кодируют бомжи 3.памфилов всем утер нос ( !точно) по асинхроности комитов - ведь тогда же надо распаралелить и инсерты или бд их сама там распаралелит? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:24 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev andreykaT причем часть этих селектов вполне можно вынести на какой-нибудь редис Можно вопрос: а каким образом, это вообще может сказаться на производительности ? PostgreSQL не все равно, откуда пришли запросы, на которых он "лег" ? если у тебя 100500 повторяющихся запросов которые удовлетворились тем что нашли в редисе то они прости за банальность тупо до постгреса не дойдут и не отъедят его перформанс. или ты что то другое меня спрашиваешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:25 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev п.с. под PostgreSQL есть еще такая вещь, как Vacuum, но ее ни разу не пытался тюнить / настраивать, не сталкивался Я думаю что Вакуум Андрейке не мешал. Его работа - периодична. Можно настроить на maintenance окна в ночное время. У нашего друга - проблема была постоянна. И под нагрузкой. Хотя единоразовая акция вакуумирования - могла хотя-бы просто отбросить гипотезу о том что мешает быстрый рост основной таблицы фактов вследствие частых updates. Здесь Oracle действительно был-бы лучше т.к. ему пофиг на частые updates. В отличие от. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:26 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов 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 имеет желание сделать то же самое, но только через жопу. ну по итогу ты так и не ответил - поддерживается ли это жпа) то что компромис между потерей данных и производительностью это и так понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:26 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 mayton пропущено... Еще Thread.yield() такой был. Типа уступить лыжню. короче что мы выяснили ? давайте подведем итоги) 1.человек -сеньер из епам != реальный сьньер 2.в финляндии кодируют бомжи 3.памфилов всем утер нос ( !точно) по асинхроности комитов - ведь тогда же надо распаралелить и инсерты или бд их сама там распаралелит? 1. а кто тут сеньор из епам? 2. гагой смешной чувак из твери с зарплатой в 30 тыщ. 3. возможно. осталось получить две строчки кода которые поднимут производительность в 100 раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:28 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT а причем тут графана. ну хотят графану пусть шатают графану. приложению то пофиг. может вкарячил своего прометея оно его и гребет. а можешь и не корячить. andreykaT я вот не хочу например возиться с оптимизацией. так как это надо быть на нее сильно заточенным. и заниматься только ей. нюансов не очень много но где их взять и как набить я хз да мне и не интересно. а тыкать пальцем в небо можно до бесконечности. ща я бабахну 100500 часов и впилю прослойку для батчинга а на выхлопе окажется шиш да моленько. потому что не все предусмотрели и ваши рассуждения на тему батчинга хороши для кейса А и совершенно бесполезны для кейса Б. 1. 100 секунд на ответ - это повод заводить инцидент. не понимаю, причем тут зашквар или ты без багов сразу в прод пишешь? 2. может и бомжи. всякие. человека-программиста, разбирающегося во многих тонкостях, как увеличить перф по различным технологиям, чуть выше уровня "а проверьте индексы" я в своей скромной карьере видел только РАЗ. я сейчас рассуждаю про действиетльно серьезные умения а не какие-то там банальности типа тех же индексов или хиберовских н+1. но может у вас в мельбурне каждый первый и швец и жнец и на дуде игрец и хибер улучшает и оракл дба, и в монгу может и амазон кинезис перформит наравне с кафкой и т.п. у вас там всё с ног на голову. согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:33 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT asv79 пропущено... короче что мы выяснили ? давайте подведем итоги) 1.человек -сеньер из епам != реальный сьньер 2.в финляндии кодируют бомжи 3.памфилов всем утер нос ( !точно) по асинхроности комитов - ведь тогда же надо распаралелить и инсерты или бд их сама там распаралелит? 1. а кто тут сеньор из епам? 2. гагой смешной чувак из твери с зарплатой в 30 тыщ. 3. возможно. осталось получить две строчки кода которые поднимут производительность в 100 раз. Эй. А вот с этого момента - стоп! Обсуждать личности и их зарплаты мы не будем. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:33 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 дядь ты вообще видимо не понимаешь что такое каффка) каким образом там что упрется в базу то? Да, ты всё правильно понял, там индекс раздаёт ид из базы => все ждут базу. Если у него будет кафка, то это ничего не изменит, все также будут ждать базу, просто еще кафка сбоку. Какой я тебе дядя, ты на 10 лет меня старше. asv79 если хочешь можно в тимс я тебе покажу решение на 6000 инсертов 6к инсертов можно хоть на микроволновке сделать. Даже Mysql в лохматом году давал 50к при разворачивании дампа. Там не всё так просто, мало инфы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:34 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов (пользователи MS Windows тут особо рады кмк) В венде есть симлинки и хардлинки, я не знаю, насчёт ограничений, правда. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:36 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
mayton andreykaT пропущено... 1. а кто тут сеньор из епам? 2. гагой смешной чувак из твери с зарплатой в 30 тыщ. 3. возможно. осталось получить две строчки кода которые поднимут производительность в 100 раз. Эй. А вот с этого момента - стоп! Обсуждать личности и их зарплаты мы не будем. ну почему бомжей же обуждаем финских? хотелось бы поговорить про тверских небомжей с лухарилайф на 30к? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:38 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
crutchmaster asv79 дядь ты вообще видимо не понимаешь что такое каффка) каким образом там что упрется в базу то? Да, ты всё правильно понял, там индекс раздаёт ид из базы => все ждут базу. Если у него будет кафка, то это ничего не изменит, все также будут ждать базу, просто еще кафка сбоку. если ид генерить не на уровне базы. я об этом. т.е. тебе ид особо и не нужен по факту становится и ответ базы в разумных пределах уже роли играть не будет. главное чтоб он был в принципе. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:39 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 ну по итогу ты так и не ответил - поддерживается ли это жпа) то что компромис между потерей данных и производительностью это и так понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:39 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
crutchmaster asv79 дядь ты вообще видимо не понимаешь что такое каффка) каким образом там что упрется в базу то? Да, ты всё правильно понял, там индекс раздаёт ид из базы => все ждут базу. Если у него будет кафка, то это ничего не изменит, все также будут ждать базу, просто еще кафка сбоку. . мы давно поняли проблему автора,в его случае вариком был бы батчинг ,у нас такое стоит на проде и обрабатываются в 10 раз болье запросов- но на счет того чтобы сразу доствать id я не уверен,но без очередей кладем) проблема автора в неправильной архитектуре приложения - так как если бы приложение было построено правильно- такого бы просто не наступило.Любое решение будет по сути костылем.Ну а там далее бомжи из финки подлатают где надо) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:40 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов asv79 ну по итогу ты так и не ответил - поддерживается ли это жпа) то что компромис между потерей данных и производительностью это и так понятно напомню, моя цель - отвязаться от базы в принципе. забыть про нее. представить это отдельным от основного функционала сервисом. понизить уровень ее важности и влияния. пусть она пишет как хочет и сколько хочет. главное не влияет на основные процессы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:42 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT mayton пропущено... Эй. А вот с этого момента - стоп! Обсуждать личности и их зарплаты мы не будем. ну почему бомжей же обуждаем финских? хотелось бы поговорить про тверских небомжей с лухарилайф на 30к? слушай ты сам про бомжей написал)я тебя лишь поддержал) про меня то что говорить я общепризнанный тверской it бомжара) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:42 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов asv79 ну по итогу ты так и не ответил - поддерживается ли это жпа) то что компромис между потерей данных и производительностью это и так понятно ну ты бы так и сказал сразу) что без разницы ждбс или жук- можно отключиь синхронный комит и база перестанет падать на 600 инстертах ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:44 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT 3. возможно. осталось получить две строчки кода которые поднимут производительность в 100 раз. в config.sys добавить: fast_insert = true no_lock_mode = true в autoexec.bat smartdrv.exe c+ ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:46 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 andreykaT пропущено... ну почему бомжей же обуждаем финских? хотелось бы поговорить про тверских небомжей с лухарилайф на 30к? слушай ты сам про бомжей написал)я тебя лишь поддержал) про меня то что говорить я общепризнанный тверской it бомжара) у тебя всё впереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:47 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev andreykaT 3. возможно. осталось получить две строчки кода которые поднимут производительность в 100 раз. в config.sys добавить: fast_insert = true no_lock_mode = true в autoexec.bat smartdrv.exe c+ што это? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:47 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
crutchmaster Андрей Панфилов (пользователи MS Windows тут особо рады кмк) В венде есть симлинки и хардлинки, я не знаю, насчёт ограничений, правда. Я вот совсем недавно с кафкой столкнулся - они оказывается наркоманы еще те: https://stackoverflow.com/questions/40369238/which-directory-does-apache-kafka-store-the-data-in-broker-nodes The default log.dir is /tmp/kafka-logs which you may want to change in case your OS has a /tmp directory cleaner. т.е. вот *удакам не то что не хватило мозгов написать пару строк кода, что если у них log.dir смотрит в /tmp, то при запуске сразу слать всех нахер, так они еще и расположение по-умолчанию умудрились в /tmp вкорячить. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:48 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT напомню, моя цель - отвязаться от базы в принципе. забыть про нее. представить это отдельным от основного функционала сервисом. понизить уровень ее важности и влияния. пусть она пишет как хочет и сколько хочет. главное не влияет на основные процессы. если ты хочешь отвязаться от бд,это жпа и вопрос твой тогда немного по другому должен был звучать но вообще очень странно - я еще раз повторю у нас есть сервис который кушает до 6000 рестов - все это успешно кладется в бд с обыычнм хибером и батчингом вообще я у коллег это спросил - они удивились такому вопросу ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:49 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
[quot Андрей Панфилов#22166769] crutchmaster пропущено... Я вот совсем недавно с кафкой столкнулся - они оказывается наркоманы еще те: что именно тебя в ней не устроило) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:53 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 проблема автора в неправильной архитектуре приложения - так как если бы приложение было построено правильно- такого бы просто не наступило. Верно подмечено, кэп. asv79 мы давно поняли проблему автора,в его случае вариком был бы батчинг ,у нас такое стоит на проде и обрабатываются в 10 раз болье запросов Да не факт. Без кода перед глазами сказать сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:53 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов В БД исполнение этого контракта просто нереально дорого - что Oracle, что MSSQL, что PostgreSQL Протестую насчет слов "нереально дорого" AFAIK в Oracle и в PostgreSQL запись идет только в redo.log и то, чисто _последовательно_. Т.е. на офисном HDD можно вполне получать сотни мегабайт редо логов в секунду. Разумеется, теоретически и если не будет конкуренции и дергания головок. Те же самые грязные блоки вполне остаются грязными и на диск скидываются по остаточному принципу (в фоне), т.е. достаточно хорошо буферизуются и кешируются в buffer cache. То, что действительно "нереально дорого", это переключение redo log'ов и checkpoint (в терминологии Oracle 8i), когда состояние нужно жестко фиксировать на диске и процесс может растянутся на значительное время: сбросить все грязные блоки на диск, переключить redo log, начать архивирование предыдущего редо лог и так далее imho & afaik ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:57 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev AFAIK в Oracle и в PostgreSQL запись идет только в redo.log и то, чисто _последовательно_. Т.е. на офисном HDD можно вполне получать сотни мегабайт редо логов в секунду. Разумеется, теоретически и если не будет конкуренции и дергания головок. Те же самые грязные блоки вполне остаются грязными и на диск скидываются по остаточному принципу (в фоне), т.е. достаточно хорошо буферизуются и кешируются в buffer cache. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:08 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT у тебя всё впереди. я не хочу в финку и не хочу в епам) в финку не хочу ,потому что там холодно и куча алкашей- по сути я и так сейчас в финке) а в епам не хочу - потому что против изучения английского говно языка- мой мозг не воспринимает это убожество и никогда не воспримет если у вас есть иностранные клиенты потрудесь найти переводчика -если у вас нет денег на переводчика - наверное вам не нужны иностранные заказчики я до сих пор не понимаю харазмента прогера по языковому барьеру недавно собесился в екб- заказчики китай собес был с китайцами + переводчик и я прошел) так что засуньте вы себе свой инглишь подальше и поглубже . а тех литература успешно переводится гугл ботом давно в 2020 году давно уже пора прекрать вот это все что касается языка- пусть человек говорит и воспринимает инфу на том языке- на котором ему удобно в этом плане епам конечно остал от других бодишопов ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:08 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT я вот не хочу например возиться с оптимизацией. так как это надо быть на нее сильно заточенным. и заниматься только ей. нюансов не очень много но где их взять и как набить я хз да мне и не интересно. а тыкать пальцем в небо можно до бесконечности Вам русским по белому сказали: "Убирайте конкурентность". И даже добавили: "Сделайте мультиплексор". Не хочется - ну так проблемы шерифа индейцев не колышат. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:14 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 в 2020 году давно уже пора прекрать вот это все что касается языка- пусть человек говорит и воспринимает инфу на том языке- на котором ему удобно Не вопрос. Оплачивай переводчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:16 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
епам вот это такое человек собесер - спрашивает меня можно ли юзать трай без кетч) я говорю можно ,но ты назови юзкейс) и он не смог)тоесть это сеньер (наверняка) который не знает что можно юзать трай файнали) но зато он по англ говори быстро с акцентом мутко) вот такие люди там потом роняют систему осаго) ну как бы руководство выводов не сделало- тех знания 0 - главно шпрехень зе инглешь) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:18 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
crutchmaster asv79 в 2020 году давно уже пора прекрать вот это все что касается языка- пусть человек говорит и воспринимает инфу на том языке- на котором ему удобно Не вопрос. Оплачивай переводчика. сейчас практически все компании их имеют) у вас нет? берите дураков из епам- они круто базарят по англ) но нули во всем остальном) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:19 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 у вас нет? У меня обычная гос шаражка и переводчик тут нужен только с бухгалтерского. asv79 сейчас практически все компании их имеют) Инглиш нужен не за этим, а чтобы в перспективе свалить с бодишопа и работать с заказчиками напрямую без кишечных паразитов. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:22 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT ну почему бомжей же обуждаем финских? хотелось бы поговорить про тверских небомжей с лухарилайф на 30к? я выхожу в эту пятницу на 120 мидлом+ квартальная премия так что вроде я и не бомж уже) осталось 3 месяца пройти испыталки) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:23 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov andreykaT я вот не хочу например возиться с оптимизацией. так как это надо быть на нее сильно заточенным. и заниматься только ей. нюансов не очень много но где их взять и как набить я хз да мне и не интересно. а тыкать пальцем в небо можно до бесконечности Вам русским по белому сказали: "Убирайте конкурентность". И даже добавили: "Сделайте мультиплексор". Не хочется - ну так проблемы шерифа индейцев не колышат. у меня прилетело ну пусть 100 запросов. мне надо их собрать в кучу и сделать батч. мне надо сохранить батч. мне надо из батча выдрать айди и какой то признак чтоб понять кому он принадлежит. мне надо это вернуть клиенту. самый простой вариант что? правильно кэп, очередь! очередь с одним кансамером. выгребаем из нее с периодом икс то что пришло и кидаем в базу. полученное из базы возвращаем назад по другой очереди и раскидываем клиентам. или что? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:23 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 andreykaT ну почему бомжей же обуждаем финских? хотелось бы поговорить про тверских небомжей с лухарилайф на 30к? я выхожу в эту пятницу на 120 мидлом+ квартальная премия так что вроде я и не бомж уже) осталось 3 месяца пройти испыталки) молодец. а ты боялся и говорил что твой потолок 60. или че там. я тебе говорю - бей на 150. ну ок. 120 это хотя бы не 60 и даже не 30 :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:24 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
crutchmaster asv79 у вас нет? У меня обычная гос шаражка и переводчик тут нужен только с бухгалтерского. asv79 сейчас практически все компании их имеют) Инглиш нужен не за этим, а чтобы в перспективе свалить с бодишопа и работать с заказчиками напрямую без кишечных паразитов. так не получится - зарубежные партнеры будут искать компании с именем - наверняка тебя не будет в их числе ,а будут епамы,люксофты и прочие галеры с рабами ,умеющими пару слов по английски) пс. у нас в рф рынок настолько ненасыщен что тут даже на кворке можно 2-3 млн зарабатывать в мес имея команду из 2-3 человек я не пойму людей рвущихся в сторону запада,когда тут мастадотны нефтяные за ролик платят 10 млн ,что равно бюджету какой то ино компании ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:28 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT у меня прилетело ну пусть 100 запросов. мне надо их собрать в кучу и сделать батч. мне надо сохранить батч. мне надо из батча выдрать айди и какой то признак чтоб понять кому он принадлежит. мне надо это вернуть клиенту. самый простой вариант что? правильно кэп, очередь! очередь с одним кансамером. выгребаем из нее с периодом икс то что пришло и кидаем в базу. полученное из базы возвращаем назад по другой очереди и раскидываем клиентам. или что? Ой жесть какая... я нужный код напишу за пару минутчасов, а очередь мне будут пару недель устанавливать (в /tmp, ага) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:28 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT у меня прилетело ну пусть 100 запросов. мне надо их собрать в кучу и сделать батч. мне надо сохранить батч. мне надо из батча выдрать айди и какой то признак чтоб понять кому он принадлежит. мне надо это вернуть клиенту. самый простой вариант что? правильно кэп, очередь! очередь с одним кансамером. выгребаем из нее с периодом икс то что пришло и кидаем в базу. полученное из базы возвращаем назад по другой очереди и раскидываем клиентам. или что? Ой жесть какая... я нужный код напишу за пару минутчасов, а очередь мне будут пару недель устанавливать (в /tmp, ага) советую загуглить что такое мультиплексор. )) ты или свою очередь напишешь отдельным сервисом. или напишешь много очередей если у тебя апп горизонтально отмасштабирован своими тремя строчками. а вот что лучше делать писать свою или взять готовую. ну я всегда сторонник взять готовую. почему? потому что ее уже отдебажили. а твою - только предстоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:34 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT asv79 пропущено... я выхожу в эту пятницу на 120 мидлом+ квартальная премия так что вроде я и не бомж уже) осталось 3 месяца пройти испыталки) молодец. а ты боялся и говорил что твой потолок 60. или че там. я тебе говорю - бей на 150. ну ок. 120 это хотя бы не 60 и даже не 30 :) спасиб) я прошел более 20 интервью) если честно я порой забывал как меня зовут)но это стоило того) выхожу на китайскую контору ,офис в екб,в четверг отлетаю туда на он бординг,потом удаленка из дома. Тоесть еще раз камень в огород языков) кто сказал что завтра нужен будет инглишь - я в комании которой он нах не нужен ни мне ни китайцам. пс,это как в дойче банк был собес они говорят нужен инглишь - я говорю почему вы так не любите своих сотрудников? тоесть я знаю что немцам тяжело и русским тоже - зачем вот это все? что вот это за бред ? мировой язык инглишь? цвет кожи белый и тд= да идите вы нах с этими постулатами ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:35 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT у меня прилетело ну пусть 100 запросов. мне надо их собрать в кучу и сделать батч. мне надо сохранить батч. мне надо из батча выдрать айди и какой то признак чтоб понять кому он принадлежит. мне надо это вернуть клиенту. самый простой вариант что? правильно кэп, очередь! очередь с одним кансамером. выгребаем из нее с периодом икс то что пришло и кидаем в базу. полученное из базы возвращаем назад по другой очереди и раскидываем клиентам. или что? Ой жесть какая... я нужный код напишу за пару минутчасов, а очередь мне будут пару недель устанавливать (в /tmp, ага) вмысле очередь напишут? там дел на час ) панфилов ты шо кафку не юзал рили? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:37 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 andreykaT у тебя всё впереди. я не хочу в финку и не хочу в епам) в финку не хочу ,потому что там холодно и куча алкашей- по сути я и так сейчас в финке) а в епам не хочу - потому что против изучения английского говно языка- мой мозг не воспринимает это убожество и никогда не воспримет если у вас есть иностранные клиенты потрудесь найти переводчика -если у вас нет денег на переводчика - наверное вам не нужны иностранные заказчики я до сих пор не понимаю харазмента прогера по языковому барьеру недавно собесился в екб- заказчики китай собес был с китайцами + переводчик и я прошел) так что засуньте вы себе свой инглишь подальше и поглубже . а тех литература успешно переводится гугл ботом давно в 2020 году давно уже пора прекрать вот это все что касается языка- пусть человек говорит и воспринимает инфу на том языке- на котором ему удобно в этом плане епам конечно остал от других бодишопов язык - это то что знают даже дети. и стыдно его не знать. да. зная язык ты расширяешь рынок продажи своих ресурсов до всего мира. хочешь можешь свалить. хочешь можешь не свалить. твоя конкурентность сильно повысится на фоне остальных. финка - ну норм. в подъездах не насрано, бичей и бычков по углам не валяется. и ладно. у всего есть плюсы и минусы. плюсов у финов наверное поровну с рф. как и минусов. каждый выбирает своё. главное если ты знаешь язык - у тебя появится эта самая возможность выбирать. и выбирать будешь ты а не тебя. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:37 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 andreykaT пропущено... молодец. а ты боялся и говорил что твой потолок 60. или че там. я тебе говорю - бей на 150. ну ок. 120 это хотя бы не 60 и даже не 30 :) спасиб) я прошел более 20 интервью) если честно я порой забывал как меня зовут)но это стоило того) выхожу на китайскую контору ,офис в екб,в четверг отлетаю туда на он бординг,потом удаленка из дома. Тоесть еще раз камень в огород языков) кто сказал что завтра нужен будет инглишь - я в комании которой он нах не нужен ни мне ни китайцам. пс,это как в дойче банк был собес они говорят нужен инглишь - я говорю почему вы так не любите своих сотрудников? тоесть я знаю что немцам тяжело и русским тоже - зачем вот это все? что вот это за бред ? мировой язык инглишь? цвет кожи белый и тд= да идите вы нах с этими постулатами немцев, знающих инглиш просто больше немцев знающих русский вот и всё. против мира переть бесполезно ))) если они покупают твой труд а не ты покупаешь их труд то они вполне в своем праве выставлять тебе требования. а китайцы те еще работодатели. удачи в любом случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:39 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT советую загуглить что такое мультиплексор. )) ты или свою очередь напишешь отдельным сервисом. или напишешь много очередей если у тебя апп горизонтально отмасштабирован своими тремя строчками. а вот что лучше делать писать свою или взять готовую. ну я всегда сторонник взять готовую. почему? потому что ее уже отдебажили. а твою - только предстоит. эээ... я должен загуглить то что тебе советовал??? еще раз: - к нам пришел запрос от клиента - мы ему дали id и пихнули в очередь, а сами "ждем" когда у запроса флаг поменяется (там асинхронные сервлеты, все дела, в спринге наверное нужно целую аннотацию шлепнуть - одна строка + заинжектить очередь - 2 строки) - хрень раз в некоторе время запускается, делает срез очереди, льет в базу и всем ждущим запросам выставляет флаг (ну наверное строк аж 10-15) при этом: - я контракт соблюдаю: т.е. я клиенту отдал данные, к которым можно сразу же обращаться - отклонение от среднеквадратичного у меня не 100500 сигм, а столько, сколько я пожелаю ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:43 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT советую загуглить что такое мультиплексор. )) ты или свою очередь напишешь отдельным сервисом. или напишешь много очередей если у тебя апп горизонтально отмасштабирован своими тремя строчками. а вот что лучше делать писать свою или взять готовую. ну я всегда сторонник взять готовую. почему? потому что ее уже отдебажили. а твою - только предстоит. эээ... я должен загуглить то что тебе советовал??? еще раз: - к нам пришел запрос от клиента - мы ему дали id и пихнули в очередь, а сами "ждем" когда у запроса флаг поменяется (там асинхронные сервлеты, все дела, в спринге наверное нужно целую аннотацию шлепнуть - одна строка + заинжектить очередь - 2 строки) - хрень раз в некоторе время запускается, делает срез очереди, льет в базу и всем ждущим запросам выставляет флаг (ну наверное строк аж 10-15) при этом: - я контракт соблюдаю: т.е. я клиенту отдал данные, к которым можно сразу же обращаться - отклонение от среднеквадратичного у меня не 100500 сигм, а столько, сколько я пожелаю я тебя понял. я подумаю над твоими словами. только не понял зачем там флаги. вместо флагов я им могу разослать месседжи. а флаги вроде как расшаренная память обращение к мутабельным полям и т.п. не уверен что это гут практиз. и да не уверен что у меня есть спринг с аннотациями. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:45 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
тоесть если человек родился питором его по европейским каномам нельзя переделывать,а вот я русским родился почему я должен учить язык,который превращает меня в идиота -я думаю никто не будет тут спорить что этот язык приметивен и делкларaтивен ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:48 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT только не понял зачем там флаги ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:52 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT язык - это то что знают даже дети. и стыдно его не знать. да. зная язык ты расширяешь рынок продажи своих ресурсов до всего мира. хочешь можешь свалить. хочешь можешь не свалить. твоя конкурентность сильно повысится на фоне остальных. финка - ну норм. в подъездах не насрано, бичей и бычков по углам не валяется. и ладно. у всего есть плюсы и минусы. плюсов у финов наверное поровну с рф. как и минусов. каждый выбирает своё. главное если ты знаешь язык - у тебя появится эта самая возможность выбирать. и выбирать будешь ты а не тебя. финка норм страна я с тобой не спорю,но в 2020 году харазмент по языку должен кануть в лету есть переводчики,гугл боты и еще миллиарды инструментов понять друг друга и если у меня не гуманитарный склад ума - то почему я должен себя насиловать- это тот же самый харазмент по цвету кожи вот и все поверь мне еще пара лет и вот эта вся шляпа канет в лету в рф команиях просто ее нет в сша- ты идешь рабоать и от тебя не требуют знать китайский) там есть переводчик и это норм пратика а в этом году вроде как будет реал тайм переводчик от гугл - что по сути просто похоронит профессию переводчик) так как то что декларативно - можно засунть в бота сейчас гугл бот спокойно переводит любые афоризмы ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:53 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов мы ему дали id и пихнули в очередь, ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:55 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT только не понял зачем там флаги вы так до EJB дойдете) не нужны ему никакие флаги и прочая шляпа- пусть пробует хибер батч и отпишется по результату- у нас такое на проде шас стоит 6000 инсертов держит ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 19:57 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя когда id даёт не база - будет куча проблем.... в чем проблема с id я не пойму, в постгрес делаешь один запрос "дай мне sequence + 10000" и вот у тебя 10000 уникальных для таблицы айдишников, которые уже никто на займет - юзай не хочу ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 20:04 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
asv79 Андрей Панфилов пропущено... ну ты посмотри как асинхронные сервлеты реализованы - там все ждет когда флаг выставится. вы так до EJB дойдете) не нужны ему никакие флаги и прочая шляпа- пусть пробует хибер батч и отпишется по результату- у нас такое на проде шас стоит 6000 инсертов держит у меня нету хибера. говорил же вроде? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 20:08 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
chpasha в чем проблема с id я не пойму, в постгрес делаешь один запрос "дай мне sequence + 10000" и вот у тебя 10000 уникальных для таблицы айдишников, которые уже никто на займет - юзай не хочу ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 20:09 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
chpasha в чем проблема с id я не пойму, в постгрес делаешь один запрос "дай мне sequence + 10000" и вот у тебя 10000 уникальных айдишников, которые уже никто на займет - юзай не хочу первое - надо контролировать диапазон - у тебя 10 000 - первая вставка - 7000 и вторая 7000 - что будет? второе - тебе выделили - и сбой питания - что есть что? ну и далее.... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 20:10 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя первое - надо контролировать диапазон - у тебя 10 000 - первая вставка - 7000 и вторая 7000 - что будет? еще 3 тыщи запросили, или какой там модуль вадя второе - тебе выделили - и сбой питания - что есть что? и что во время сбоя питания проникнет враг и сожрет наши 10 тыщ айдишников? вадя ну и далее.... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 20:13 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя первое - надо контролировать диапазон - у тебя 10 000 - первая вставка - 7000 и вторая 7000 - что будет? Никто не заставляет выдавать именно long и вообще брать sequence с базы. вадя второе - тебе выделили - и сбой питания - что есть что? ИБП. Потеря питания в таком-то году оправдана только взрывом сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 20:21 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT самый простой вариант что? правильно кэп, очередь! очередь с одним кансамером. Выгребли один и больше нет? Отправили один. Выгребли три? Собрали в пачку и отправили всю пачку с одной фиксацией. Накидано столько, что насобирали лимит, а они всё не заканчиваются - отправили пачку максимального размера и продолжаем.то что пришло и кидаем в базу. полученное из базы возвращаем назад по другой очереди и раскидываем клиентам.Скорее так - отправили пачку и (в этом потоке) ждём ответа базы. Другой поток в это время собирает (и отправляет) новую пачку. Ну и контролируем, чтобы параллельных потоков было не слишком много. В качестве первого лимита для "слишком много" - не более трёх или даже двух параллельных потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 20:25 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов еще 3 тыщи запросили, или какой там модуль Андрей Панфилов и что во время сбоя питания проникнет враг и сожрет наши 10 тыщ айдишников? всё это как бы просто... до поры. в итоге ... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 20:35 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
crutchmaster ИБП. Потеря питания в таком-то году оправдана только взрывом сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 20:37 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя запросить не проблема - вот только каждый раз надо это контролировать ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 20:42 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Андрей Панфилов Вот что ты контролировать собрался? длина лонга 4 байта, ну пусть 8 как нынче принято, 10 тысяч лонгов - это же просто нереально памяти нужно, аж 80Kb! - целых 12 процентов от того что достаточно всем. вырубили питание и просрали 10 тыщ идентификаторов? ну и хрен с ними, у нас питание не каждую секунду вырубают. так у тебя может не хватить - из-за пустых мест в id согласись, что в данном случае это не нулевая вероятность ну и не известно сколько надо этих id бронировать - по 10000 ? по 20? по 78? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 21:24 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя по 600 в секунду а таких и не понятно сколько за раз - 2 или 2000 так у тебя может не хватить - из-за пустых мест в id bigint/bigserial = 9223372036854775807, можешь посчитать на сколько лет хватит ;) вадя ну и не известно сколько надо этих id бронировать - по 10000 ? по 20? по 78? ну сколько нибудь батчей, чтоб не каждые 2 сек. в базу бегать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 22:00 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
chpasha ну сколько нибудь батчей, чтоб не каждые 2 сек. в базу бегать. chpasha bigint/bigserial = 9223372036854775807, можешь посчитать на сколько лет хватит ;) я не говорю что это не правильный путь - только на нём тоже не всё так просто и прямо... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 22:06 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя ну сколько-нибудь.... это на каком ЯП? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 22:55 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
chpasha вадя по 600 в секунду а таких и не понятно сколько за раз - 2 или 2000 так у тебя может не хватить - из-за пустых мест в id bigint/bigserial = 9223372036854775807, можешь посчитать на сколько лет хватит ;) вадя ну и не известно сколько надо этих id бронировать - по 10000 ? по 20? по 78? ну сколько нибудь батчей, чтоб не каждые 2 сек. в базу бегать. У меня была ситуация когда лонг кончился. А чеб ууиды не генерить? Каков шанс дубль словить? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 00:06 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT У меня была ситуация когда лонг кончился. Есть (более практичные) ограничения на размеры хранилища или/и самой базы. При более-менее разумной стратегии выделения идентификаторов вы не можете исчерпать long (int64) в роли первичного ключа таблицы в базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 05:09 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT А чеб ууиды не генерить? Каков шанс дубль словить? но это уже строка - со всеми вытекающими ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 05:47 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov andreykaT У меня была ситуация когда лонг кончился. Есть (более практичные) ограничения на размеры хранилища или/и самой базы. При более-менее разумной стратегии выделения идентификаторов вы не можете исчерпать long (int64) в роли первичного ключа таблицы в базе. так там была не рдбмс и вообще не база. я к тому что они могут кончиться. тут сверху предлагают кусками драть а потом забывать про них. мне кажется, с таким подходом очень даже можно и упереться. ну конечно надо постараться. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 09:51 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя andreykaT А чеб ууиды не генерить? Каков шанс дубль словить? но это уже строка - со всеми вытекающими в контексте перформаса конкретно что? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 09:51 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя andreykaT А чеб ууиды не генерить? Каков шанс дубль словить? но это уже строка - со всеми вытекающими Есть несколько независимых алгоритмов генерации UUID. Есть такие которые основаны просто на SecuredRandom генераторе. И есть такие что включают в себя сочетание timestamp + Mac-адрес сетевого адаптера который принадлежит серверу сгенерировавшему UUID. Можно сделать свой собственный генератор который например инкапсулирует номер ноды кластера которая сгенерила UUID. Это дает также возможность потом трабл-шутить потерянные месседжи. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 10:48 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT тут сверху предлагают кусками драть а потом забывать про них если сервер у тебя упал, то может кусок id пропасть. у тебя часто сервер падает? andreykaT мне кажется, с таким подходом очень даже можно и упереться не надо кажется, возьми калькулятор в мышку и посчитай исходя из пессимистичного пиковое кол-ва инсертов (можешь для успокоения еще на 10 или 100 умножить). Я подозреваю, что у тебя винты кончатся гораздо раньше ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 11:28 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT так там была не рдбмс и вообще не база Но, как бы, "в контексте" речь идёт про идентификаторы первичного ключа записи СУБД? Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 12:16 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov andreykaT так там была не рдбмс и вообще не база Но, как бы, "в контексте" речь идёт про идентификаторы первичного ключа записи СУБД? Не? да. короче. выносим айдихи с базы на среднее звено. понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 12:26 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT Basil A. Sidorov пропущено... "Вообще" я достаточно изобретателен и много чего могу представить/вообразить. Но, как бы, "в контексте" речь идёт про идентификаторы первичного ключа записи СУБД? Не? да. короче. выносим айдихи с базы на среднее звено. понял. Андрейка. Почитай еще про системы которые входят в класс event-store https://db-engines.com/en/system/Event Store Может пригодится. У них - максимальная пропускная по количеству вставок. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 12:59 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
tpc-c на 32 ядрах 1.6 млн tpc-c транзакций http://www.tpc.org/tpcc/results/tpcc_result_detail5.asp?id=112092601 у постгрес конечно кривоватая архитектура с вакумом, но миллионы инсертов вытянуть обязан. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 13:17 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Ты давно не встречал это сколько не встречал?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 00:32 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT, какие глупые разработчики субд .. до сих пор делают автоинкрементные поля.... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 02:56 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 вообще давно не встречал я ничего кроме UUID в качестве PK ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 08:53 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 у тебя id бд чтоль генерит? вообще давно не встречал я ничего кроме UUID в качестве PK,странно что ты юзаешь что то другое ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 08:58 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 А что ты используешь в качестве ORM или у тебя чистый jdbc? он уже раз 10 сказал что используется слик. Ты спеки также внимательно читаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 12:16 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 забыл ник пропущено... он уже раз 10 сказал что используется слик. Ты спеки также внимательно читаешь? а какое отношение имеет слик к java?) это же для скалы ORM а какое отношение этот топик имеет к java? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 13:13 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
вадя andreykaT, какие глупые разработчики субд .. до сих пор делают автоинкрементные поля.... Вот. Вадя говорит что с выдачи айди лонговых в бд уходить не надо. Зизи. Учись. Правда Вадя - консерватор. не уверен насколько это консервативное решение юзать айди от базы. для меня это - лишняя депенденси. Кстати озвучил варианты самым главным конечно же нанятым людям в роли архитекторов они прям кивнули головой за кафку и развязку от базы. хотя я теперь топлю за мультиплексор ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 19:51 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 andreykaT Ты давно не встречал это сколько не встречал?)) если честно вообще не встречал,после того как стал работать на реальных проектах. Long и автоинкремент у меня был в пет проектах только. Я против Long ничего не имею ,но вроде как твоя проблема бы решилась если бы ты генерил сам Id - и писал в бд уже имя на руках Id,тогда бы тебе хватило обычной кафки без каких то доп манипуляций . А что ты используешь в качестве ORM или у тебя чистый jdbc? не поверишь, я НЕ лонги видел гораздо реже чем лонги. скажем так, 1 к 10ти. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 19:54 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Я один раз видел систему, где ВСЕ Primary Key были..... были.... не поверите... они были.... FLOAT ! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 19:56 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Zzz79 забыл ник пропущено... он уже раз 10 сказал что используется слик. Ты спеки также внимательно читаешь? а какое отношение имеет слик к java?) это же для скалы ORM не уверен что слик это орм: Slick is not an object-relational mapper (ORM) like Hibernate or others. Slick is a data persistence solution like ORMs and naturally shares some concepts, but it also has significant differences. ... ORMs focus on persisting an object-graph. ORMs are a natural approach when using databases from object-oriented languages. https://scala-slick.org/doc/2.1.0/orm-to-slick.html#:~:text=Slick is not an object,it also has significant differences.&text=ORMs focus on persisting an,databases from object-oriented languages. но в целом, дерьмо то еще. но если у тебя в приложении десяток таблиц и ноль-один джойн, то вполне себе норм. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 19:59 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Я один раз видел систему, где ВСЕ Primary Key были..... были.... не поверите... они были.... FLOAT ! у еня был проект где были байтарраи в качестве пк. я до сих пор не пойму зОчем. я убежал оттуда через месяц. это был какой то бред кобылы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 20:00 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
насчет кафки и ее затаскивания в проект.. мне оч понравилось как это сделано в кварке и вертиксе. прям всё на аннотациях типа продюс консам типа @Consume("topic-name") @Produce("just-one-more-topic-name") public String myMethod(String string) { ...do stuff... return newString; } где string это то что залетело в топик-нейм и newString - это то что вылетело в just+one+more+topic+name - прям фантастическая простота. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 20:04 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
У меня как-то была идея. Для дата-аналитики. Грузили мы сет документов. Разного типа. Ключом было поле long (64bit). Надо было побить документы на непересекающиеся классы для быстрой выборки и обработки и поскольку это было на 99% NoSQL решение то я решил завязаться на диапазоны PK. Сколько классов - столько и sequences. Только надо было что sequences не пересекались и был запас по росту. И не было избыточного расхода. Я разбил условно long на положительные и отрицательные. Потом прилетел еще 1 субтип. И я разделил положительные на два под-диапазона. Постепенно если изобразить на плоскости все 2^64 степени ключей то вырисовывалась картинка похожая на квадраты IP-blocks как любят рисовать в аналитике провайдеров интернета. Разумеется моя картинка была не такая красивая т.к. заполнялась змейкой а не Гилбертом. Но я стал думать о менеджменте диапазонов. И чтоб сиквенсы были инкрементные и декрементные ради экономии свободных пространств. Хотелось нарисовать тулзу для менеджмента но... тут пришел коронавирус и кастомер что данное направление не будет развивать. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 20:05 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT не уверен насколько это консервативное решение юзать айди от базы. вот мне это понравилось Код: sql 1.
сокращает число обращений но в твоём случае - вариант очень и очень спорный. использовать генерируемые uuid , а скока времени затрачивается на генерацию uuid? а насколько быстр поиск по uuid? ведь надо хранит uuid не в varchar , а бинари. т.е. ещё и преобразовывать varchar от клиента в бинари для селекта как бы всё это мелочи , но в них и прячется некто... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 20:15 |
|
акка или кафка?
|
|||
---|---|---|---|
#18+
andreykaT у еня был проект где были байтарраи в качестве пк. я до сих пор не пойму зОчем. я убежал оттуда через месяц. это был какой то бред кобылы. https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2570145300346198113 a GUID should be a 16 byte raw (hopefully they are not using a 32 byte varchar2..) and will perform adequately as a primary key. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 21:36 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120741]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
156ms |
get tp. blocked users: |
2ms |
others: | 238ms |
total: | 502ms |
0 / 0 |