From: | Nico Williams <nico(at)cryptonector(dot)com> |
---|---|
To: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
Cc: | Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, Jim Mlodgenski <jimmy76(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Craig Ringer <craig(at)2ndquadrant(dot)com>, Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Fabrízio de Royes Mello <fabriziomello(at)gmail(dot)com> |
Subject: | Re: [PATCH] A hook for session start |
Date: | 2017-10-06 18:39:29 |
Message-ID: | 20171006183927.GF1251@localhost |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, Oct 06, 2017 at 06:37:57PM +0200, Pavel Stehule wrote:
> 2017-10-06 6:48 GMT+02:00 Nico Williams <nico(at)cryptonector(dot)com>:
> > On Fri, Oct 06, 2017 at 04:52:09AM +0200, Pavel Stehule wrote:
> > > Current TEMP tables, if you do it for any session has pretty significant
> > > overhead - with possible risk of performance lost (system catalog
> > bloat).
> >
> > Because of the DDLs for them?
>
> yes - pg_attribute, pg_class, pg_stats are bloating - and when these tables
> are bloated, then DDL is slow.
:(
> > No, I want GLOBAL TEMP tables.
>
> me too :) - and lot of customer and users.
> I though about it, but I have other on my top priority. GLOBAL TEMP TABLE
> is on 90% unlogged table. But few fields should be session based instead
> shared persistent - statistics, rows in pg_class, filenode.
Unlogged tables don't provide isolation between sessions the way temp
tables do, so I don't see the connection.
But the necessary components (temp heaps and such) are all there, and I
suspect a PoC could be done fairly quickly. But there are some
subtleties like that FKs between GLOBAL TEMP and persistent tables must
not be allowed (in either direction), so a complete implementation will
take significant work.
The work looks like:
- add syntax (trivial)
- add new kind of persistence (lots of places to touch, but it's mostly
mechanical)
- redirect all references to global temp table contents to temp
heaps/indexes/whatever
- add logic to prevent FKs between persistent and global temp tables
- what else?
> When we talked about this topic, there are two issues:
>
> a) probably not too hard issue - some internal data can be in session sys
> cache.
>
> b) the session sys data should be visible on SQL level too (for some tools
> and consistency) - it is hard task.
Can you expand on this?
Nico
--
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2017-10-06 18:51:53 | Re: [PATCH] A hook for session start |
Previous Message | Peter Geoghegan | 2017-10-06 18:34:20 | Re: [COMMITTERS] pgsql: Fix freezing of a dead HOT-updated tuple |