powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
6 сообщений из 6, страница 1 из 1
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
    #39997485
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В настройках PgBouncer коннект с PostgreSQL осуществляется через "*" (конкретная БД не указывается):
автор* = host=... port=...В этом случае при подключении через указанную строку подключения для каждой пары "БД - пользователь" автоматически создаётся пул физических подключений к PostgreSQL. И если в течение [autodb_idle_timeout] секунд ни одно из этих физических соединений не будет востребовано, то:
1) все физические соединения в таком пуле будут закрыты
2) сам пул тоже будет закрыт
3) статистика по этому пулу (БД - пользователь) будет очищена

Если же строка подключения задаётся с указанием БД:
авторdbname = host=... port=...то пул соединений, созданный для комбинации (БД - пользователь) закрываться НЕ будет (даже если он не будет содержать физических соединений) и его статистика сбрасываться не будет.

Вопросы :
1 ) Верно ли описана логика работы пулов для двух вариантов ?
2 ) Как в первом случае (БД не указывается) добиться точно такого же поведения пулов PgBouncer, что и в случае явного указания БД ?

Т.е. нужно, чтобы автоматически создаваемые пулы (БД - пользователь) не закрывались по истечении (autodb_idle_timeout) секунд и их статистика не сбрасывалась. Можно задать (autodb_idle_timeout = большое значение), но такой вариант выглядит как заплатка. Конкретные базы данных указывать тоже незачем - лишние зависимости не нужны. При том, что права на БД и так уже выставлены как нужно (на уровне PostgreSQL).
...
Рейтинг: 0 / 0
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
    #39997489
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02,

1)да верно
2)никак судя по документации

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
    #39997496
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор2)никак судя по документации
Вот здесь предлагают вариант (autodb_idle_timeout=0):
https://pgbouncer-general.pgfoundry.narkive.com/arwjhlU3/clients-loosing-connection-to-database > It would not matter for more active databases that would have been tagged active again if any new connection
> would arrive before autodb_idle_timeout triggers. ?But if the database stays idle, it will be killed even if it has connections
As a workaround, set autodb_idle_timeout=0Только вот 0, судя по всему, не отключает (autodb_idle_timeout), а наоборот, приведёт к тому, что автоматически созданный пул будет сразу закрыт после использования.
...
Рейтинг: 0 / 0
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
    #39997555
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда непонятно можно посмотреть в код.

https://github.com/pgbouncer/pgbouncer/blob/pgbouncer_1_14_0/src/janitor.c#L591
0 отключает удаление автоматических пулов.
...
Рейтинг: 0 / 0
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
    #39997624
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij 0 отключает удаление автоматических пулов. Поскольку в официальной справке об этом не упоминается, то и поведение это может быть легко и молча изменено.
Всё-таки, надёжнее будет поставить что-то вродеCyrax_02 autodb_idle_timeout = 31536000то бишь 365 дней...
...
Рейтинг: 0 / 0
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
    #39997640
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напишите issue мол не задокументировано как отключить autodb_idle_timeout. Peter Eisentraut периодически заглядывает в списки, простая правка дока.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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