powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / акка или кафка?
25 сообщений из 192, страница 2 из 8
акка или кафка?
    #39978620
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
далее, не понял, при чем тут транзакционность? и откуда выводы что я ее похерил? атомарные операции (по логике атомарные) у меня выполняются внутри транзакций. это вроде как очевидная вещь о которой говорить и не следует.


Ох темнота... ты "клиенту" отдал данные и сказал: "вот теперь ты к этим данным ты можешь обращаться" (хоть в тот же момент, хоть время спустя) - и ты этот "контракт" обязан соблюсти (как ты его собираешься соблюдать никого не интересует - можешь хоть несколько уровней сделать). Ты когда базе говоришь "ты давай в таблицы вставляй (insert) и мне результат давай (commit)" - это точно такой же контракт, но в отличии от твоей поделки здесь совершенно понятно что в базе происходит, т.е. мы точно знаем кто нам враг:
- конкуренция за блок таблицы
- конкуренция за блоки индексов
- частые коммиты

можешь врубить в постгресе asynchronous commit (пусть DBA поржут), а можешь конкуренцию уменьшить.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978625
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще раз, причем тут тразакционность? спасибо за лекцию про конкурентный доступ к шареным ресурсам. но я спросил про другое. повторяю вопрос - причем тут транзакционность? в контексте того что я ее "похерил". жду подробностей. где когда при каких обстоятельствах я ее похерил?
...
Рейтинг: 0 / 0
акка или кафка?
    #39978627
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
еще раз, причем тут тразакционность? спасибо за лекцию про конкурентный доступ к шареным ресурсам. но я спросил про другое. повторяю вопрос - причем тут транзакционность? в контексте того что я ее "похерил". жду подробностей. где когда при каких обстоятельствах я ее похерил?
ты клиенту пообещал, а сам не записал - это значит что ты все просрал. Ничего не мешает клиенту сказать: ты тут секунду подожди, я еще от остальных данные подожду и все разом залью.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978637
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
andreykaT
еще раз, причем тут тразакционность? спасибо за лекцию про конкурентный доступ к шареным ресурсам. но я спросил про другое. повторяю вопрос - причем тут транзакционность? в контексте того что я ее "похерил". жду подробностей. где когда при каких обстоятельствах я ее похерил?
ты клиенту пообещал, а сам не записал - это значит что ты все просрал. Ничего не мешает клиенту сказать: ты тут секунду подожди, я еще от остальных данные подожду и все разом залью.

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

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

какой код? там приложение простое как топор - получил данные обработал данные сохранил данные отдал клиенту результат обработки. вроде не рокетсаенз чтоб это рассматривать чем то фантастически нетривиальным.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978647
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
по твоей логике все эти акки кафки и прочее что не гарантирует доставку - фигня на постном масле и глупые выдумки. ничего кроме православной синхронки с гарантиями не существует.
Причем тут вообще гарантии доставки (в MQ это вообще означает что если интернет не работает, то пошлют голубиной почтой) и транзакционность? Ты клиенту ID дал, значит он может по нему обратиться (кафка в чистом виде тебе такого не позволит). ты погугли про все это: JMS, например, умеет в XA-транзакции участвовать (XA медленно, то что-то гарантирует), а у кафки есть менеджер транзакций, то там существенные послабления, кроме этого ни там ни там читать по PK нельзя. Хочешь чтобы все по чесноку было - пиши код.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978648
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
Андрей Панфилов
пропущено...
потому что ты даже самые очевидные (ну там действительно код пописать нужно) варианты не рассматриваешь, а вместо этого уже решил какую-то дичь использовать.

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

Так это в топике и есть самое интересное. Или ты думаешь что простой "топор" всегда без ошибок написан?
...
Рейтинг: 0 / 0
акка или кафка?
    #39978650
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
какой код? там приложение простое как топор - получил данные обработал данные сохранил данные отдал клиенту результат обработки. вроде не рокетсаенз чтоб это рассматривать чем то фантастически нетривиальным.
ну значит пиши код простой как топор: с одной стороны вставляем в очередь, ждем когда флаг с false на true сменится и отдаем клиенту, а с другой стороны выгребаем очередь (или сколько за секунду набъется), сливаем все в базу и выставляем флаг в true. Контракты соблюдены, в базе конкуренции нет.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978651
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
andreykaT
какой код? там приложение простое как топор - получил данные обработал данные сохранил данные отдал клиенту результат обработки. вроде не рокетсаенз чтоб это рассматривать чем то фантастически нетривиальным.
ну значит пиши код простой как топор: с одной стороны вставляем в очередь, ждем когда флаг с false на true сменится и отдаем клиенту, а с другой стороны выгребаем очередь (или сколько за секунду набъется), сливаем все в базу и выставляем флаг в true. Контракты соблюдены, в базе конкуренции нет.

клиенту ответ надо сразу отдавать. если можно подождать то зачем очередь. я так же могу подождать и ответа с базы. 3 минуты например :)
...
Рейтинг: 0 / 0
акка или кафка?
    #39978652
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
клиенту ответ надо сразу отдавать. если можно подождать то зачем очередь. я так же могу подождать и ответа с базы. 3 минуты например :)
"сразу" нигде не бывает, тем более в интернете, а если ты и три минуты можешь ждать, то зачем было топик заводить? Продолжай бомбить базу в 600 потоков и ныть что постгрес не справляется (а здесь никакая база и 50 не выдержит вне зависимости от "железа")
...
Рейтинг: 0 / 0
акка или кафка?
    #39978653
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
andreykaT
пропущено...

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

Так это в топике и есть самое интересное. Или ты думаешь что простой "топор" всегда без ошибок написан?

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

Так это в топике и есть самое интересное. Или ты думаешь что простой "топор" всегда без ошибок написан?

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

Ну ты блин даёшь! Может один create index... решит твою проблему еще лет на 10 с запасом для твоей системы.

Ты даже и не попробовал? Хотя-бы в форум Postgres задавал вопрос по перформансу?
...
Рейтинг: 0 / 0
акка или кафка?
    #39978656
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это мой предыдущий шаг перед тем что я выше сказал. если не поможет. а скорее всего не поможет.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978658
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой самый горячий DML у тебя? Insert? Update? Щас я напишу HelloFuckenWorld приложение которое просто
делает обновления для локальной таблички PG и замеряю показатели.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978661
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть требование по времени отклика для клиента?

Проблема кажется сильно надуманной. Взяли запросы на вставку, сбатчивали (от слова batch), параллельно храним ID клиента (или поток, или AKA актор) которому нужно ответить, батч вставили в базу, если успешно - отослали всем клиентам подтверждение.

Если клиент может подождать 0.2-0.5 секунды, лично я проблемы вообще не вижу. Всего-то добавляется два потока: один на таймере (например раз в 1/5-1/10 секунды), второй данные скидывает в базу и отсылает подтверждение.

Только одно мне не понятно, зачем тут что-то еще, кроме стандартного Java и synchronized поверх банального ArrayList (т.к. 600 записей в секунду это не то, ради чего даже нужно задумываться о типе коллекции)

PostgreSQL на любом офисном компьютере пару тысяч/десятков тысяч вставок в секунду вполне осилить может, если уметь его готовить

IMHO & AFAIK
...
Рейтинг: 0 / 0
акка или кафка?
    #39978662
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Проблема кажется сильно надуманной. Взяли запросы на вставку, сбатчивали (от слова batch), параллельно храним ID клиента (или поток, или AKA актор) которому нужно ответить, батч вставили в базу, если успешно - отослали всем клиентам подтверждение.
тут же код писать нужно, а чтобы в кафку слить мусор и контракт не соблюсти - код писать уже не нужно.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978692
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он хочет перенести весь биллинг в аппликейшен. Опасная штука IMHO. У сырого апликейшена нет гарантий
во Durability. Что Андрейка будет делать после перегрузки по Power? Или он возложет эту задачу на серверы
JMS/MQ. Но у них тоже нет этих гарантий. Вернее они слабые. Слабее чем у DBMS.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978693
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
andreykaT
клиенту ответ надо сразу отдавать. если можно подождать то зачем очередь. я так же могу подождать и ответа с базы. 3 минуты например :)
"сразу" нигде не бывает, тем более в интернете, а если ты и три минуты можешь ждать, то зачем было топик заводить? Продолжай бомбить базу в 600 потоков и ныть что постгрес не справляется (а здесь никакая база и 50 не выдержит вне зависимости от "железа")

Выше вон говорят 250 тыщ норм и 600 - ниачем.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978695
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я-бы посчитал теоретическую расчетную скорость транзакций для 100Мб и 1Гб сети
при условии что наша каждая транзакция - это RPC (roundtrip сетевого пакета туда и обратно).

Кто-то делал такие расчеты, господа?
...
Рейтинг: 0 / 0
акка или кафка?
    #39978706
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
Выше вон говорят 250 тыщ норм и 600 - ниачем.
ну ты больше слушай что говорят Если брать лидера в RDBMS (а не второй дивизион как у тебя - там народ вообще особо упорот на почве чистоты кода, поэтому ожидать чего-то сверхъестественного не стоит), то чтобы базе соблюсти вышеописанный контракт, ей нужно сделать вот что:
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 потоков вызывают бешеную конкуренцию (смотри видосик кстати про конкуренцию:

YouTube Video
...
Рейтинг: 0 / 0
акка или кафка?
    #39978730
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как мне батчи формировать. К меня может быть как 0-1 запрос в секунду так и 600 запросов. Придумывать костыли типа если вот сколько ол времени новых данных нет то скидываем то что есть и прочее уныние. Не. Да и особо не помню дикого прироста с переходом на батчинг кода это делал давно да вставлять стало быстрее но чуда не произошло.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978731
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Какой самый горячий DML у тебя? Insert? Update? Щас я напишу HelloFuckenWorld приложение которое просто
делает обновления для локальной таблички PG и замеряю показатели.

Апдейтов практически нет. Инсерты онли.
...
Рейтинг: 0 / 0
акка или кафка?
    #39978736
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreykaT
Как мне батчи формировать. К меня может быть как 0-1 запрос в секунду так и 600 запросов. Придумывать костыли типа если вот сколько ол времени новых данных нет то скидываем то что есть и прочее уныние. Не. Да и особо не помню дикого прироста с переходом на батчинг кода это делал давно да вставлять стало быстрее но чуда не произошло.

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


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