I ran some CPU intensive pgbench tests on HOT. Results are not
surprising, HOT makes practically no difference on the total transaction
rate, but reduces the need to vacuum:
unpatched HOT
tps 3680 3790
WAL written(MB) 5386 4804
checkpoints 10 9
autovacuums 116 43
autoanalyzes 139 60
I believe the small gain in tps is due to the reduction in WAL volume.
WAL is checksummed, and calculating the CRC uses some CPU. The tps
difference is almost within the margin of error, though.
HOT greatly reduces the number of vacuums needed. That's good, that's
where the gains in throughput in longer I/O bound runs comes from.
The tests were run with fsync=off, with following commands:
pgbench -i -s 10 postgres
pgbench -c 5 -t 1000000 postgres -l
The version used was CVS HEAD, with Simple-HOT-v2.patch applied in the
HOT run. The cluster was initdb'd and created from scratch before each
test run. Attached is the full postgresql.conf and test script used.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com