DB4O Object Database by Versant

DB4O Performance Summary

The following charts show the performance of DB4O (in green) relatively to other JPA/DBMS combinations (in gray).

Position #1 on the X-Axis (the fastest) is about 100 times faster than position #33 (the slowest).
In the chart below the Y-Axis represents result score (maximum 100) in logarithmic scale - higher is better:
JPA performance benchmark comparision Hibernate, EclipseLink, OpenJPA, DataNucleus, ObjectDB
In the chart below the Y-Axis represents result score (maximum 100) in linear scale - higher is better:
JPA performance benchmark comparision Hibernate, EclipseLink, OpenJPA, DataNucleus, ObjectDB


The configurations in which DB4O has been tested are listed in the following table:

 Database + JPA ProviderNormalized Score
100 - Best,  0 - Worst
Final Position
1 - Best,  33 - Worst
Failed Tests
1DataNucleus with DB4O embedded0.7331  (out of 33)26

About DB4O by Versant

DB4O is a popular object database for Java and .NET. Unlike the ObjectDB object database, DB4O does not include out of the box support of the Java Persistence API (JPA). Limited JPA support, however, can be added to DB4O by using the DataNucleus JPA implementation.

DB4O is available from Versant Corporation under a dual license. DB4O can be used for free under the GPL license - for in house and open source projects. A commercial license is required for an application that uses DB4O and is distributed outside the developer's company or organization (e.g. installed at a customer site) - unless the application itself is open source.

In this benchmark DB4O version 7.12 (which has been released in 2010) has been tested.

DB4O has been tested in this benchmark only in embedded mode. It does support client-server mode but a server is not provided. To use client-server mode a program that serves as a server has to be written, and that was out of the scope of this benchmark (which focuses on portable JPA code).

Conclusions

Object databases should have a natural advantage over Object Relational Mapping (ORM) in benchmarks like this. Therefore, the performance results of DB4O in this benchmark are definitely unexpected.

Finding whether the problem is with DB4O, with DataNucleus or maybe with the integration between the two, is outside the scope of this work. It is clear, however, that the combination of DB4O and DataNucleus does not provide performance benefits over using a JPA ORM implementation with a relational database software.