Re: Built-in connection pooler
От | Jaime Casanova |
---|---|
Тема | Re: Built-in connection pooler |
Дата | |
Msg-id | CAJGNTeNKMpRj2=C1tx=_LuGcNsd+G85Mc5rQA82bRs83bSvY3Q@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Built-in connection pooler (Konstantin Knizhnik <k.knizhnik@postgrespro.ru>) |
Ответы |
Re: Built-in connection pooler
|
Список | pgsql-hackers |
On Thu, 15 Aug 2019 at 06:01, Konstantin Knizhnik <k.knizhnik@postgrespro.ru> wrote: > > I have implemented one more trick reducing number of tainted backends: > now it is possible to use session variables in pooled backends. > > How it works? > Proxy determines "SET var=" statements and converts them to "SET LOCAL > var=". > Also all such assignments are concatenated and stored in session context > at proxy. > Then proxy injects this statement inside each transaction block or > prepend to standalone statements. > > This mechanism works only for GUCs set outside transaction. > By default it is switched off. To enable it you should switch on > "proxying_gucs" parameter. > > there is definitively something odd here. i applied the patch and changed these parameters connection_proxies = '3' session_pool_size = '33' port = '5433' proxy_port = '5432' after this i run "make installcheck", the idea is to prove if an application going through proxy will behave sanely. As far as i understood in case the backend needs session mode it will taint the backend otherwise it will act as transaction mode. Sadly i got a lot of FAILED tests, i'm attaching the diffs on regression with installcheck and installcheck-parallel. btw, after make installcheck-parallel i wanted to do a new test but wasn't able to drop regression database because there is still a subscription, so i tried to drop it and got a core file (i was connected trough the pool_worker), i'm attaching the backtrace of the crash too. -- Jaime Casanova www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Вложения
В списке pgsql-hackers по дате отправления: