Small. Fast. Reliable.
Choose any three.
*** 43,49 ****
  
  I have no idea what's wrong with Postgres in test 8. If you do, and you think that SQL being fed to it makes that particular test unfair to Postgres, please speak up.
  
! *A Speak UP:* Postgres is designed to run on a shoebox for the default install.  It will always perform badly when used in the default configuration for test suites like this.  Postgres only has what you call sync mode to ensure ACID compliance. Also Postgres decides how to execute a query based on the data stored in its stats database.  That data is only updated by running the "Analyze" command.  Other databases may track those statistics differently.  In non transactional insert test, it is difficult to see how a 7200 RPM drive can do 1000 I/O operation in 0.7 secords.  The sync should force each transaction to disk, which is each INSERT operation.
  
  
  Few notes about the results:
--- 43,66 ----
  
  I have no idea what's wrong with Postgres in test 8. If you do, and you think that SQL being fed to it makes that particular test unfair to Postgres, please speak up.
  
! *A Speak UP:* Postgres is designed to run on a shoebox for the default install.
!  It will always perform badly when used in the default configuration for test
! suites like this.  Postgres only has what you call sync mode to ensure ACID
! compliance. Also Postgres decides how to execute a query based on the data
! stored in its stats database.  That data is only updated by running the
! "Analyze" command.  Other databases may track those statistics differently.  In
! non transactional insert test, it is difficult to see how a 7200 RPM drive can
! do 1000 I/O operation in 0.7 secords.  The sync should force each transaction to
!  disk, which is each INSERT operation.
! 
! *Reply*: conf file for Postgres has been tuned a bit since test have been run.
! I'm attaching conf files for all databases that have it so anyone can review
! them and suggest changes to make all databases use approximately same hardware
! resources and function same in terms of ACID compliance for sync tests. Once
! some input on all of the databases has been gathered, I'll rerun the
! tests.{linebreak}
! Is it common for Postgres in real world scenario to run ANALYZE before each query? If so, I'll update the test script to run ANALYZE before each test.{linebreak}
! Test 1 is very strange, I agree. Hypothetical perfect database would take more then 8 seconds to complete that test if it used only one fsync per transaction.
  
  
  Few notes about the results: