The performance was measured with pgbench, using the following script:
/usr/lib/postgresql/8.4/bin/pgbench -i -s 10 bench
/usr/lib/postgresql/8.4/bin/pgbench -c 10 -T 60 bench
The tests were performed on a 3GHz quad-core Intel i7 CPU with a triplet of 7200rpm SATA drives in a RAID-0 configuration.
These are the results -- note that test runs varied slightly between runs even of the same options.. by 2-3 units on the ext4 tests, and probably the same percentage (1%) on others.
Score is in average transactions-per-second. Higher values are better.
My conclusions are:
1) btrfs sucks for database use, even with the recommended flags set for database use.
2) ext4 performs best with the recommended-for-db-use flags set (ie. data=writeback,noatime).
However the gains aren't massive over the defaults (which are data=ordered,relatime).
3) Disabling barriers gives a MAHOOSIVE performance increase, although it's noted that you should only do this if you have drives or raid cards with battery-backed-up write caches. (I don't, but your production systems usually do. Obviously, confirm this and test it by pulling the plug before actually changing this option in production though!)