Re: Fdw batch insert error out when set batch_size > 65535
Tomas Vondra <tomas.vondra@enterprisedb.com>
From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>,
"houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-06-13T13:54:57Z
Lists: pgsql-hackers
Attachments
- postgres_fdw_batch_test.patch (text/x-patch) patch
On 6/13/21 2:40 AM, Alvaro Herrera wrote: > On 2021-Jun-12, Tomas Vondra wrote: > >> There's one caveat, though - for regular builds the slowdown is pretty >> much eliminated. But with valgrind it's still considerably slower. For >> postgres_fdw the "make check" used to take ~5 minutes for me, now it >> takes >1h. And yes, this is entirely due to the new test case which is >> generating / inserting 70k rows. So maybe the test case is not worth it >> after all, and we should get rid of it. > > Hmm, what if the table is made 1600 columns wide -- would inserting 41 > rows be sufficient to trigger the problem case? If it does, maybe it > would reduce the runtime for valgrind/cache-clobber animals enough that > it's no longer a concern. > Good idea. I gave that a try, creating a table with 1500 columns and inserting 50 rows (so 75k parameters). See the attached patch. While this cuts the runtime about in half (to ~30 minutes on my laptop), that's probably not enough - it's still about ~6x longer than it used to take. All these timings are with valgrind. regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Remove expensive test of postgres_fdw batch inserts
- 5396b188c922 14.9 landed
- 23ce74811a1d 15.4 landed
- 6b488d5dc2fe 16.0 landed
- 087a933b21cc 17.0 landed
-
Adjust batch size in postgres_fdw to not use too many parameters
- cb92703384e2 14.0 landed
-
Implement support for bulk inserts in postgres_fdw
- b663a4136331 14.0 cited