Poleposition is an open source database benchmark test suite the db4o team has been contributing to since back in 2005.

It runs unattended benchmark scenarios ("Circuits") against a variety of persistence interfaces like db4o, JDO, Hibernate and JDBC. The results can be easily compared in the PDFs that are automatically generated by Poleposition.

For our db4o 8.0 release we were curious how we now perform in comparison to other databases. While we updated Poleposition to run against db4o 8.0, we used the opportunity to implement a couple of changes that we considered helpful for the Poleposition project:

  • We wrote a new bar graph result renderer that displays the benchmark result times within the graph. By adding the calculated order-of-magnitude for each result in comparison to the best result, it is now easier to see by how much results differ.
  • The scenarios ("Circuits") were simplified by removing duplication and they were given more expressive names.
  • JDBC implementations now use Prepared Statements everywhere which makes them faster.
  • After adding new databases to the benchmark ( most notably Versant Object Database and PostgreSQL), we found that results no longer fit on one page. To solve this the sample benchmark results were split into two runs, Embedded and Client/Server.
  • A separative narrative document was created to explain what each circuit does. It is available here.

As a next step we are considering to implement an additional concurrency benchmark, with concurrent inserts, updates, queries and deletes in a fixed time window.

We have released all the work done as version 0.40. You can download the complete sources from here.

Our experience from writing all the Poleposition code: Plain JDBC is tedious to write, getting O/R mapping right is hard and prone to be slow, object databases give you the best results with the least implementation work.

If you are evaluating databases we recommend that you run Poleposition yourself on your hardware with your selection of databases.

If you feel that your favorite DB is not being treated fairly, we invite you to submit a fine tuned team to Polepos. Polepos is open source and contributions are very welcome.