Comparing the performance of object databases and ORM tools

  • Authors:
  • Pieter van Zyl;Derrick G. Kourie;Andrew Boake

  • Affiliations:
  • University of Pretoria;University of Pretoria;Espresso Research Group

  • Venue:
  • SAICSIT '06 Proceedings of the 2006 annual research conference of the South African institute of computer scientists and information technologists on IT research in developing countries
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

The currently popular distributed, n-tiered, object-oriented application architecture provokes many design debates. Designs of such applications are often divided into logical 'tiers' -- usually user interface, business logic and domain object, or data, tiers, each with their own design issues. In particular, the latter contains data that needs to be stored and retrieved from permanent storage. Decisions need to be made as to the most appropriate way of doing this -- the choices are usually whether to use an object database, to communicate directly with a relational database, or to use object-relational mapping (ORM) tools to allow objects to be translated to and from relational form.Most often, depending on the perceived profile of the application, architects make these decisions using rules of thumb derived from particular experience or the design patterns literature. Examples include: object-oriented databases ease programming, relational databases ease report generation and data mining; object-oriented databases are good for navigation around an object model, relational databases are good for sequential processing and complex queries; if you are writing an application from scratch, use an object database, if you need to integrate to various sources of legacy data, use an ORM tool. Although helpful, these rules are often highly context-dependent and are often misapplied.Research into the nature and magnitude of 'design forces' in this area has resulted in a series of benchmarks, intended to allow architects to more clearly understand the implications of design decisions concerning object persistence. In this paper, the performance of selected open source object persistence tools is investigated, to attempt to clarify the myths surrounding the performance of the different options. In particular, we compare Hibernate, representative of the ORM stable, and db4o, representative of object-oriented databases. The OO7 benchmark is used to compare the speed of execution of a suite of typical persistence-related operations in both candidates. We then propose some preliminary explanations of the sometimes surprising results.