Master ------ relname | nrows | blk_before | mb_before | blk_after | mb_after | diff -----------------------+-----------+------------+-----------+-----------+----------+-------- pgbench_accounts | 300000000 | 4918033 | 38422.1 | 5065575 | 39574.8 | +3.0% accounts_mtime | 300000000 | 1155119 | 9024.4 | 1287656 | 10059.8 | +11.5% fiver | 300000000 | 427039 | 3336.2 | 567755 | 4435.6 | +33.0% pgbench_accounts_pkey | 300000000 | 822573 | 6426.4 | 1033344 | 8073.0 | +25.6% score | 300000000 | 284022 | 2218.9 | 458502 | 3582.0 | +61.4% tenner | 300000000 | 346050 | 2703.5 | 417985 | 3265.5 | +20.8% (6 rows) DB size: 65.2..72.3 (+7.1GB / +10.9%) scaling factor: 3000 query mode: simple number of clients: 8 number of threads: 2 duration: 14400 s number of transactions actually processed: 33073335 latency average = 3.483 ms tps = 2296.758808 (including connections establishing) tps = 2296.759063 (excluding connections establishing) statement latencies in milliseconds: 0.001 \set aid1 random_gaussian(1, 100000 * :scale, 2.0) 0.001 \set aid2 random_gaussian(1, 100000 * :scale, 2.5) 0.000 \set delta random(-5000, 5000) 0.033 BEGIN; 0.291 UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid1; 0.136 SELECT abalance FROM pgbench_accounts WHERE aid = :aid2; 3.018 END; scaling factor: 3000 query mode: simple number of clients: 8 number of threads: 2 duration: 14400 s number of transactions actually processed: 7127980 latency average = 16.162 ms tps = 494.998003 (including connections establishing) tps = 494.998059 (excluding connections establishing) statement latencies in milliseconds: 0.002 \set aid2 random_gaussian(1, 100000 * :scale, 3.0) 0.196 SELECT abalance FROM pgbench_accounts WHERE aid = :aid2; 3.290 INSERT INTO pgbench_accounts 12.680 DELETE FROM pgbench_accounts WHERE aid IN scaling factor: 3000 query mode: simple number of clients: 1 number of threads: 1 duration: 14400 s number of transactions actually processed: 40 latency average = 363313.472 ms tps = 0.002752 (including connections establishing) tps = 0.002752 (excluding connections establishing) statement latencies in milliseconds: 363313.426 SELECT abalance, pg_sleep(300) FROM pgbench_accounts WHERE mtime > now() - INTERVAL '15min' ORDER BY aid LIMIT 1; postgres@db:~/pg-delete-deduplication$ . ~/pg-delete-deduplication/env.sh postgres@db:~/pg-delete-deduplication$ date Sun Jan 3 20:15:33 UTC 2021 postgres@db:~/pg-delete-deduplication$ $PGPATH/bin/pgbench -p $PGPORT -f $MYHOME/testcase3.pgbench -s3000 -r -c1 -T $((3600*4)) bench starting vacuum...end. transaction type: /var/lib/postgresql/pg-delete-deduplication/testcase3.pgbench scaling factor: 3000 query mode: simple number of clients: 1 number of threads: 1 duration: 14400 s number of transactions actually processed: 46 latency average = 317890.248 ms tps = 0.003146 (including connections establishing) tps = 0.003146 (excluding connections establishing) statement latencies in milliseconds: 317890.206 SELECT abalance, pg_sleep(300) FROM pgbench_accounts WHERE mtime > now() - INTERVAL '15min' ORDER BY aid LIMIT 1;