Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesMissing the (Bench)Mark


October 1997 / BYTE Software Lab Report / The Object Is to Manage Data / Missing the (Bench)Mark

To develop applications using a given ODBMS, you first have to learn its general architecture and application framework. No two products have the same characteristics, so preparing a benchmark to test performance requires developing a schema that will be representable across each vendor's ODBMS.

But that's the easy part. Each product has its own complex API, and some can be used with only a limited range of t ools, such as C++, wh ich itself is not fully standardized.

Each product tested for this review had entirely different C++ data structures to represent a basic object with string attributes of random length. Moreover, each product had its own C++ macros, which were needed to initialize the database, populate it with replicated objects, and begin and end a transaction. And, of course, these macros don't behave the same for each ODBMS product. For objects such as a database segment, a large pointer, a record cursor, and a static reference, there were often vastly different implementations of each for a given product. For these reasons and more, porting a generic pseudocode application with any degree of realistic complexity to each ODBMS could not guarantee a reasonable level of parity across these very different products.

Not only was the basic creation of databases and objects not consistent, the semantics of a transaction and the database's model of locks and privileges employed during a read or write were also inconsistent. To each vendor's credit, all the ODBMSes tested had a well-defined and highly flexible system of locks and transaction-behavior parameters. But, again, there was no easy way to equate a particular scheme that would be the same for each database. And while each product supports Object Query Language (OQL), that isn't always the best method for querying the database, and products allow you to not use OQL at all in performing reads and writes on the ODBMS.

Most of these benchmarking issues stem from the general complexity of databases. Even relational DBMSes tend to use proprietary language additions to maximize performance and efficiency in an enterprise application.

Thus, the bottom line is that NSTL could not, under any practical or realistic circumstances (and in the time available), obtain performance data with which to compare real-world implementations of the ODBMS products that are reviewed in this article. We concluded that to create tests that would fairly compare t he three systems would require, at the very least, three separate development efforts, and even then we would have to make choices that would call some results into question. Ralph Waldo Emerson may have said that consistency is the hobgoblin of little minds, but BYTE simply can't make performance comparisons without it.

There's hope on the horizon, though. The ODMG has a better chance of working toward a Java common standard for the ODBMS world before vendors diverge in their various implementations of a Java API. If Java can be standardized here, its ease of development and strict object-oriented semantics relative to C++ will give it a good chance to become the premier language of choice for ODBMS development. Applications written in Java for a particular ODBMS are much more easily portable to another ODBMS than they are if they're written in C++. Moreover, Java melds very tightly with the ODBMS concepts -- something SQL could never do. This will also be an important factor if ODBMSes are to gain wid espread acceptance in the future of enterprise data handling.


Up to the BYTE Software Lab Report section contentsGo to previous article: The ODBMS DesktopSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network