Re: Speed up transaction completion faster after many relations areaccessed in a transaction

Поиск
Список
Период
Сортировка
Искать
От
David Rowley
Тема
Re: Speed up transaction completion faster after many relations areaccessed in a transaction
Дата
Msg-id
CAKJS1f-ffb-R5RV6iDKbiXpMYCG71=0hqaCU3maDjPOktbf7AQ@mail.gmail.com
Ответ на
Список
Дерево обсуждения
Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Andres Freund <andres@anarazel.de>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Andres Freund <andres@anarazel.de>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Andres Freund <andres@anarazel.de>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Andres Freund <andres@anarazel.de>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Andres Freund <andres@anarazel.de>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Andres Freund <andres@anarazel.de>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Simon Riggs <simon@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Imai, Yoshikazu" <imai.yoshikazu@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Andres Freund <andres@anarazel.de>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction 'Andres Freund' <andres@anarazel.de>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Andres Freund <andres@anarazel.de>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Tom Lane <tgl@sss.pgh.pa.us>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Thomas Munro <thomas.munro@gmail.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Alvaro Herrera <alvherre@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Alvaro Herrera <alvherre@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Michael Paquier <michael@paquier.xyz>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Yura Sokolov <y.sokolov@postgrespro.ru>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Michael Paquier <michael@paquier.xyz>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Michael Paquier <michael@paquier.xyz>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Zhihong Yu <zyu@yugabyte.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Yura Sokolov <y.sokolov@postgrespro.ru>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Jacob Champion <jchampion@timescale.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Ankit Kumar Pandey <itsankitkp@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction vignesh C <vignesh21@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Andres Freund <andres@anarazel.de>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Amit Langote <amitlangote09@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Heikki Linnakangas <hlinnaka@iki.fi>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Heikki Linnakangas <hlinnaka@iki.fi>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Heikki Linnakangas <hlinnaka@iki.fi>
Re: Speed up transaction completion faster after many relations are accessed in a transaction vignesh C <vignesh21@gmail.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Heikki Linnakangas <hlinnaka@iki.fi>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Andres Freund <andres@anarazel.de>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Heikki Linnakangas <hlinnaka@iki.fi>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Andres Freund <andres@anarazel.de>
Re: Speed up transaction completion faster after many relations are accessed in a transaction Zhihong Yu <zyu@yugabyte.com>
Re: Speed up transaction completion faster after many relations are accessed in a transaction David Rowley <dgrowleyml@gmail.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Andres Freund <andres@anarazel.de>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Imai, Yoshikazu" <imai.yoshikazu@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Imai, Yoshikazu" <imai.yoshikazu@jp.fujitsu.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction David Rowley <david.rowley@2ndquadrant.com>
Re: Speed up transaction completion faster after many relations areaccessed in a transaction Tomas Vondra <tomas.vondra@2ndquadrant.com>
RE: Speed up transaction completion faster after many relations areaccessed in a transaction "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
On Thu, 27 Jun 2019 at 12:59, Tsunakawa, Takayuki
 wrote:
>
> From: David Rowley [mailto:david.rowley@2ndquadrant.com]
> Thank you, looks good.  I find it ready for committer (I noticed the status is already set so.)

Thanks for looking.

I've just been looking at this again and I thought I'd better check
the performance of the worst case for the patch, where the hash table
is rebuilt each query.

To do this I first created a single column 70 partition partitioned
table ("p") and left it empty.

I then checked the performance of:

SELECT * FROM p;

Having 70 partitions means that the lock table's max bucket goes over
the LOCKMETHODLOCALHASH_SHRINK_THRESHOLD which is set to 64 and
results in the table being rebuilt each time the query is run.

The performance was as follows:

70 partitions: LOCKMETHODLOCALHASH_SHRINK_THRESHOLD = 64

master + shrink_bloated_locallocktable_v5.patch:

ubuntu@ip-10-0-0-201:~$ pgbench -n -T 60 -f select1.sql -M prepared postgres
tps = 8427.053378 (excluding connections establishing)
tps = 8583.251821 (excluding connections establishing)
tps = 8569.587268 (excluding connections establishing)
tps = 8552.988483 (excluding connections establishing)
tps = 8527.735108 (excluding connections establishing)

master (93907478):

ubuntu@ip-10-0-0-201:~$ pgbench -n -T 60 -f select1.sql -M prepared postgres
tps = 8712.919411 (excluding connections establishing)
tps = 8760.190372 (excluding connections establishing)
tps = 8755.069470 (excluding connections establishing)
tps = 8747.389735 (excluding connections establishing)
tps = 8758.275202 (excluding connections establishing)

patched is 2.45% slower


If I increase the partition count to 140 and put the
LOCKMETHODLOCALHASH_SHRINK_THRESHOLD up to 128, then the performance
is as follows:

master + shrink_bloated_locallocktable_v5.patch:

ubuntu@ip-10-0-0-201:~$ pgbench -n -T 60 -f select1.sql -M prepared postgres
tps = 2548.917856 (excluding connections establishing)
tps = 2561.283564 (excluding connections establishing)
tps = 2549.669870 (excluding connections establishing)
tps = 2421.971864 (excluding connections establishing)
tps = 2428.983660 (excluding connections establishing)

Master (93907478):

ubuntu@ip-10-0-0-201:~$ pgbench -n -T 60 -f select1.sql -M prepared postgres
tps = 2605.407529 (excluding connections establishing)
tps = 2600.691426 (excluding connections establishing)
tps = 2594.123983 (excluding connections establishing)
tps = 2455.745644 (excluding connections establishing)
tps = 2450.061483 (excluding connections establishing)

patched is 1.54% slower

I'd rather not put the LOCKMETHODLOCALHASH_SHRINK_THRESHOLD up any
higher than 128 since it can detract from the improvement we're trying
to make with this patch.

Now, this case of querying a partitioned table that happens to be
completely empty seems a bit unrealistic. Something more realistic
might be index scanning all partitions to find a value that only
exists in a single partition. Assuming the partitions actually have
some records, then that's going to be a more expensive query, so the
overhead of rebuilding the table will be less noticeable.

A previous version of the patch has already had some heuristics to try
to only rebuild the hash table when it's likely beneficial. I'd rather
not go exploring in that area again.

Is anyone particularly concerned about the worst-case slowdown here
being about 1.54%?  The best case, and arguably a more realistic case
above showed a 34% speedup for the best case.

-- 
 David Rowley                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


В списке pgsql-hackers по дате отправления
От: Andres Freund
Дата:
Сообщение: Re: Comment typo in tableam.h
От: Ryan Lambert
Дата:
Сообщение: Re: Built-in connection pooler
FAQ