|
акка или кафка?
|
|||
---|---|---|---|
#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 |
|
|
start [/forum/topic.php?fid=59&msg=39978658&tid=2120741]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 257ms |
total: | 407ms |
0 / 0 |