Re: [Proposal] Global temporary tables - Mailing list pgsql-hackers
From | 曾文旌(义从) |
---|---|
Subject | Re: [Proposal] Global temporary tables |
Date | |
Msg-id | 3A07073C-AF60-4C5E-859F-81A82911B671@alibaba-inc.com Whole thread Raw |
In response to | Re: [Proposal] Global temporary tables (Pavel Stehule <pavel.stehule@gmail.com>) |
Responses |
Re: [Proposal] Global temporary tables
|
List | pgsql-hackers |
2020年1月14日 下午9:20,Pavel Stehule <pavel.stehule@gmail.com> 写道:út 14. 1. 2020 v 14:09 odesílatel 曾文旌(义从) <wenjing.zwj@alibaba-inc.com> napsal:Thank you for review my patch.makes sense, I will fix it.2020年1月12日 上午4:27,Pavel Stehule <pavel.stehule@gmail.com> 写道:Hiso 11. 1. 2020 v 15:00 odesílatel 曾文旌(义从) <wenjing.zwj@alibaba-inc.com> napsal:Hi allThis is the latest patchThe updates are as follows:1. Support global temp Inherit table global temp partition table2. Support serial column in GTT3. Provide views pg_gtt_relstats pg_gtt_stats for GTT’s statistics4. Provide view pg_gtt_attached_pids to manage GTT5. Provide function pg_list_gtt_relfrozenxids() to manage GTT6. Alter GTT or rename GTT is allowed under some conditionsPlease give me feedback.I tested the functionality1. i think so "ON COMMIT PRESERVE ROWS" should be default mode (like local temp tables).Yes, frequent ddl causes catalog bloat, GTT avoids this problem.I tested some simple scriptstest01.sqlCREATE TEMP TABLE foo(a int, b int);
INSERT INTO foo SELECT random()*100, random()*1000 FROM generate_series(1,1000);
ANALYZE foo;
SELECT sum(a), sum(b) FROM foo;
DROP TABLE foo; -- simulate disconnectafter 100 sec, the table pg_attribute has 3.2MBand 64 tps, 6446 transactiontest02.sqlINSERT INTO foo SELECT random()*100, random()*1000 FROM generate_series(1,1000);
ANALYZE foo;
SELECT sum(a), sum(b) FROM foo;
DELETE FROM foo; -- simulate disconnectafter 100 sec, 1688 tps, 168830 transactionsSo performance is absolutely different as we expected.From my perspective, this functionality is great.Do you mean that function pg_table_size() need get the storage space used by the one GTT in the entire db(include all session) .Todo:pg_table_size function doesn't workIt's question how much GTT tables should be similar to classic tables. But the reporting in psql should to work \dt+, \l+, \di+
I have fixed this problem.
Please let me know where I need to improve.
Thanks
Wenjing
RegardsPavelWenjing2020年1月6日 上午4:06,Tomas Vondra <tomas.vondra@2ndquadrant.com> 写道:Hi,
I think we need to do something with having two patches aiming to add
global temporary tables:
[1] https://commitfest.postgresql.org/26/2349/
[2] https://commitfest.postgresql.org/26/2233/
As a reviewer I have no idea which of the threads to look at - certainly
not without reading both threads, which I doubt anyone will really do.
The reviews and discussions are somewhat intermixed between those two
threads, which makes it even more confusing.
I think we should agree on a minimal patch combining the necessary/good
bits from the various patches, and terminate one of the threads (i.e.
mark it as rejected or RWF). And we need to do that now, otherwise
there's about 0% chance of getting this into v13.
In general, I agree with the sentiment Rober expressed in [1] - the
patch needs to be as small as possible, not adding "nice to have"
features (like support for parallel queries - I very much doubt just
using shared instead of local buffers is enough to make it work.)
regards
--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Attachment
pgsql-hackers by date: