From: | Konstantin Knizhnik <k(dot)knizhnik(at)postgrespro(dot)ru> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Built-in connection pooling |
Date: | 2018-10-25 08:53:31 |
Message-ID: | 1772948f-1442-7e8f-51f2-190c1cde5d94@postgrespro.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I continue work on built-in connection pooler.
I have implemented three strategies for splitting sessions between
session pool workers:
- random
- round-robin
- load balancing (choose server with minimal wait queue size)
It is still not fixing the main drawback of the current implementation
of built-in pooler: long transaction or query can block all other sessions
scheduled to this backend. To prevent such situation we have to somehow
migrate session to some other (idle) backends.
Unfortunately session should take with it a lot of "luggage": serialized
GUCs, prepared statements and, worst of all, temporary tables.
If first two in principle can be handled, what to do with temporary
table is unclear.
Frankly speaking I think that implementation of temporary tables
in Postgres has to be rewritten in any case. Them are causing catalog
blow, can not be used in parallel queries,...
May be in case of such rewriting of temporary tables implementation them
can be better marries with built-on connection pooler.
But right now sessions can not be migrated.
--
Konstantin Knizhnik
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
Attachment | Content-Type | Size |
---|---|---|
session_pool-11.patch | text/x-patch | 157.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Kyotaro HORIGUCHI | 2018-10-25 08:57:42 | Re: More issues with pg_verify_checksums and checksum verification in base backups |
Previous Message | Tom Lane | 2018-10-25 08:45:47 | Re: UNLISTEN, DISCARD ALL and readonly standby |