Re: Built-in connection pooler

From: Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com>
To: Konstantin Knizhnik <k(dot)knizhnik(at)postgrespro(dot)ru>
Cc: Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, Ryan Lambert <ryan(at)rustprooflabs(dot)com>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Bruce Momjian <bruce(at)momjian(dot)us>, Dimitri Fontaine <dim(at)tapoueh(dot)org>
Subject: Re: Built-in connection pooler
Date: 2019-09-05 22:01:01
Message-ID: CAJGNTeNKMpRj2=C1tx=_LuGcNsd+G85Mc5rQA82bRs83bSvY3Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, 15 Aug 2019 at 06:01, Konstantin Knizhnik
<k(dot)knizhnik(at)postgrespro(dot)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

Attachment Content-Type Size
gdb-bt-core-drop-subscription.txt text/plain 1.7 KB
regression-parallel.diffs application/octet-stream 464.1 KB
regression.diffs application/octet-stream 466.9 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Chapman Flack 2019-09-05 22:06:18 Re: Fix XML handling with DOCTYPE
Previous Message Andres Freund 2019-09-05 21:32:01 Re: AtEOXact_Snapshot timing