Size: a a a

pgsql – PostgreSQL

2020 December 30

А

Александр in pgsql – PostgreSQL
всем привет. интересует работа pgbouncer-а в транзакционном режиме.  Со стороны приложения которое конектится к базе jdbc нужно ли что то учитывать или в запросах при подключении через jdbc. ну и в скриптах через Psycopg2. Возможно чегото не дочитал так как в сессионом все прекрасно работает.
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Александр
всем привет. интересует работа pgbouncer-а в транзакционном режиме.  Со стороны приложения которое конектится к базе jdbc нужно ли что то учитывать или в запросах при подключении через jdbc. ну и в скриптах через Psycopg2. Возможно чегото не дочитал так как в сессионом все прекрасно работает.
Надо только помнить, что сессионные переменные, темповые таблицы, препарированные запросы после завершения транзакции превратятся в тыкву. Список не полный.
источник

MZ

Michael マイケル Zhilin ... in pgsql – PostgreSQL
Александр
всем привет. интересует работа pgbouncer-а в транзакционном режиме.  Со стороны приложения которое конектится к базе jdbc нужно ли что то учитывать или в запросах при подключении через jdbc. ну и в скриптах через Psycopg2. Возможно чегото не дочитал так как в сессионом все прекрасно работает.
если java, то зачем pgbouncer?
источник

А

Александр in pgsql – PostgreSQL
Michael マイケル Zhilin ジリン
если java, то зачем pgbouncer?
глупый вопрос… а почему нет? это что-то меняет?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Michael マイケル Zhilin ジリン
если java, то зачем pgbouncer?
спорное утверждение. баунсер там очень даже помогает
источник

MZ

Michael マイケル Zhilin ... in pgsql – PostgreSQL
Александр
глупый вопрос… а почему нет? это что-то меняет?
если это j2ee, то там везде connection pool-ы в серверах, если это standalone/springboot, то куча стандартных библиотек с connection pool-ами. Плюс простой - нет лишнего TCP коннекта.
источник

MZ

Michael マイケル Zhilin ... in pgsql – PostgreSQL
Victor Yegorov
спорное утверждение. баунсер там очень даже помогает
ну как бы есть только решить security задачи или есть non-java приложения. Но для java какбы сам бог велел использовать локальные пулы.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Michael マイケル Zhilin ジリン
ну как бы есть только решить security задачи или есть non-java приложения. Но для java какбы сам бог велел использовать локальные пулы.
и тем не менее. неоднократно добавляли баунсер после жавы и получали снижение общего кол-ва открытых сессий и падение нагрузки на CPU на стороне базы.
источник

MZ

Michael マイケル Zhilin ... in pgsql – PostgreSQL
Victor Yegorov
и тем не менее. неоднократно добавляли баунсер после жавы и получали снижение общего кол-ва открытых сессий и падение нагрузки на CPU на стороне базы.
а что за connection pool был в java?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Michael マイケル Zhilin ジリン
а что за connection pool был в java?
hikariCP, c3p0
источник

MZ

Michael マイケル Zhilin ... in pgsql – PostgreSQL
ок, а почему нагрузка падала?
источник

AI

Alex Ignatov in pgsql – PostgreSQL
Michael マイケル Zhilin ジリン
если это j2ee, то там везде connection pool-ы в серверах, если это standalone/springboot, то куча стандартных библиотек с connection pool-ами. Плюс простой - нет лишнего TCP коннекта.
Баунсер на высоком tps становится боттлнеком
источник

MZ

Michael マイケル Zhilin ... in pgsql – PostgreSQL
Alex Ignatov
Баунсер на высоком tps становится боттлнеком
+1
источник

AI

Alex Ignatov in pgsql – PostgreSQL
Victor Yegorov
спорное утверждение. баунсер там очень даже помогает
Баунсер помогает прощать ошибки менеджмента количества клиентских подключений даже с учетом клиентских пулеров. Синхронизировать количество последних с доступным общим max_connection это лишняя головная боль.
источник

AY

Alex Yu in pgsql – PostgreSQL
Michael マイケル Zhilin ジリン
если java, то зачем pgbouncer?
Странно
Я локально запускаю pgbouncer и пускаю DBeaver через него, чтобы он не жрал коннекты
Java тут ни при чем
источник

D

Dmitriy in pgsql – PostgreSQL
Alex Ignatov
Баунсер помогает прощать ошибки менеджмента количества клиентских подключений даже с учетом клиентских пулеров. Синхронизировать количество последних с доступным общим max_connection это лишняя головная боль.
А если масштабировать приложение, то получится, что у каждого из инстансов свой пул коннектов. И общее число подключений не всегда ясно ж
источник

AI

Alex Ignatov in pgsql – PostgreSQL
Ну и для баз коммуналок он позволяет тоже поменеджерить макс количество коннектов к той или иной базке в зависимости от ее степени важности / критичности .
источник

AI

Alex Ignatov in pgsql – PostgreSQL
Dmitriy
А если масштабировать приложение, то получится, что у каждого из инстансов свой пул коннектов. И общее число подключений не всегда ясно ж
Ну в этом случае баунсер ок. Но всегда надо помнить что он может быть блокером на высоких tps. Да его можно стартануть в несколько инстансов на одном порту, но менеджмент этого начинает напоминать костыли
источник

D

Dmitriy in pgsql – PostgreSQL
Alex Ignatov
Ну в этом случае баунсер ок. Но всегда надо помнить что он может быть блокером на высоких tps. Да его можно стартануть в несколько инстансов на одном порту, но менеджмент этого начинает напоминать костыли
Так масштабируются ж всегда при высоких нагрузках
источник

MZ

Michael マイケル Zhilin ... in pgsql – PostgreSQL
Alex Yu
Странно
Я локально запускаю pgbouncer и пускаю DBeaver через него, чтобы он не жрал коннекты
Java тут ни при чем
да, но вопрос исходный был про приложение на jdbc. Маловероятно что вопрос был про DBeaver :) хотя замечание верное
источник