Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 play+slick+postgres  [new]
andreykaT
Member

Откуда: Finland
Сообщений: 2955
дикая дичь ) есть два эндпойнта - один кладет другой берет.
один положил сказал клиенту я в базу положил - вот айди.
второй идет следом с этим айди - а ему ой по этому айди в базе ниче нет ))
второй дернул еще раз через время - ой появилось.


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

ощущение что оно куда то в кэш записало и думает что записало. а на самом деле нет.

есть идеи? может просто шлик не делает флюш в базу? может какие то особенности постгри о которых я не знаю?

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

ну костылина.

постгрес гори огнем.
9 июл 20, 19:30    [22164821]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
andreykaT
Member

Откуда: Finland
Сообщений: 2955
я уже думаю прокладку вкарячивать в виде редиса. ну или очередь вообще городить. бред.
9 июл 20, 19:31    [22164822]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3625
andreykaT

постгрес гори огнем.
да причем тут постгрес-то? ты либо пишешь в одну базу, а читаешь с реплики, либо отправляешь инфу до коммита транзакции
9 июл 20, 20:14    [22164840]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
SpringMan
Member

Откуда:
Сообщений: 207
postgres - последнее место, где надо искать ошибку. Или какая-нибудь асинхронщина или транзакция заканчивается не тогда, когда ты думаешь
9 июл 20, 20:18    [22164845]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
andreykaT
Member

Откуда: Finland
Сообщений: 2955
Андрей Панфилов
andreykaT

постгрес гори огнем.
да причем тут постгрес-то? ты либо пишешь в одну базу, а читаешь с реплики, либо отправляешь инфу до коммита транзакции

отправляю данные точно после транзакции.
в слике db.run { ...doWhateverYouNeed } вот что в скобках то в транзакции. что после - то после транзакции. оно возвращает стопудово после транзакции. это только если сам слик не гонит.
9 июл 20, 20:45    [22164858]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
andreykaT
Member

Откуда: Finland
Сообщений: 2955
SpringMan
postgres - последнее место, где надо искать ошибку. Или какая-нибудь асинхронщина или транзакция заканчивается не тогда, когда ты думаешь

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

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

Сообщение было отредактировано: 9 июл 20, 20:45
9 июл 20, 20:45    [22164859]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3625
andreykaT

если я в том же самом потоке читаю - то оно находится. в параллельном - нет. вообще в другом приложении - нет.
бгг, это какбы и есть что транзакцию кто-то не закоммитил
9 июл 20, 20:53    [22164860]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
Zzz79
Member

Откуда:
Сообщений: 569
андреич ну ты даешь) если ты записал а потом спросил там нет,а потом еще раз спросил там есть - мб тебе тут верно говорят комить инсерт потом спрашивай
тем более ты говоришь у тебя паралельщина
9 июл 20, 21:15    [22164865]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
andreykaT
Member

Откуда: Finland
Сообщений: 2955
копаю дальше. кто-то обновляет запись )) вот она и не находится. смешно что во всем коде только один единственный метод это делает. я включил логгинг на этот метод. и вижу в логах инфы нет. а в базе запись обновлена. бред какой то. метод исполнился его результаты в базе, а в логах чисто. ))

пока копаю
9 июл 20, 23:39    [22164942]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
andreykaT, ты нас тут всех обманываешь.
9 июл 20, 23:49    [22164945]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
andreykaT
Member

Откуда: Finland
Сообщений: 2955
все же постгрес. убрал фром из апдейта и поехало как надо. почему то когда было много запросов оно обновляло одними данными две записи. просто запрос кривой. который стрелял в многопоточке. т.е. когда было создано в один момент времени одна характерная запись на всю бд )) оно и обновляло только ее. когда так вышло что 3 записи, оно обновляло все три. итого один поток отрабатывал как надо а два других запись не могли найти ура. прибить надо программиста. все как обычно. )

Сообщение было отредактировано: 9 июл 20, 23:55
9 июл 20, 23:53    [22164949]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
Zzz79
Member

Откуда:
Сообщений: 569
andreykaT,все это очент голословно - надо пруфы прикреплять)
пс.учитывая что весь ентерпрайз сейчас на постргресе может кроме сбера ,то твое заявление крайне сомнительно)
10 июл 20, 00:21    [22164957]     Ответить | Цитировать Сообщить модератору
 Re: play+slick+postgres  [new]
andreykaT
Member

Откуда: Finland
Сообщений: 2955
читай внимательно что я пишу. просто кривой запрос который делал апдейт не только той записи что предполагалось, а еще нескольких. когда в базе под условия запроса подпадала одна запись все было хорошо. когда стало подпадать 2-3-4 (несколько потоков создают несколько записей) -- код стал падать. вот и всё. вернее, стали падать те потоки которые не ожидали что их записи может поменять кто-то другой.
10 июл 20, 00:26    [22164959]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить