Choosing the Right OODB Solution


Product Reviews
I review the following products against the criteria outlined in the previous sections:

Consult the Cetus OODB area for a fairly up-to-date list of all OODBMS vendors.

Criteria ObjectStore Versant Developer Suite Poet Objectivity
Background
Vendor Object Design Versant Poet Objectivity
Product page ObjectStore VDS FastObjects Objectivity
Technical reference[29] Spec or PDF data sheet Overview or manuals Java or C++ PDF overview or specific data sheets
Version 6.0 6.0 t7 8.0[16] 6.0
Costs and Licensing
Evaluations 30-day trial[1] 60-day trial Feature limited 90-day trial
License costs ?[2] ?[2] ?[2] ?[2]
Online support Fair[3][9] Fair[9] Good[19] Strong
User community[23] Medium[4] Medium Small Medium
Compliance
ODL compliance N N N Incomplete 2.0/3.0
OQL compliance N N[10] ODMG 3.0[17] N
Java interface ODMG 3.0 compliant ODMG 3.0 ODMG 3.0 ODMG 3.0
C++ Interface Supported ODMG 3.0 N/A Incomplete 2.0/3.0
Smalltalk Interface N/A N/A N/A ODMG 3.0
Compatibility
Supported Unix Linux, Solaris, HP-UX, IRIX, AIX, Tru64 [ref] Linux, Solaris, HP-UX, IRIX, SGI, Tru64 [ref] Linux, Solaris, HP-UX[ref] Linux, Solaris, HP-UX, IRIX, AIX, Tru64 [ref]
Supported Windows 98, NT4, 2000 [ref] NT4, 2000 [ref] 98, NT4, 2000 [ref] 98, NT4, 2000 [ref]
JDK requirements 1.0?, 1.1–1.3[22] 1.2, 1.3 1.1–1.3 1.22, 1.3
Specialization of persistent classes N[5] N[5] N[5] Y[24]
Embeddable version Y Y[18] N
Features
Database browser Y Y Y Y
Client-side caching Y Y Y Y
Database security User/group control for databases and segments User control for databases?[14] User/group control for specific classes and databases User control for databases
XML support Y Y[15] Partial[20] Partial[20]
Performance
Locking strategy Database, page or object Object-level Object-level Container-level[25]
Maximum database size[7] 100's of GB? 10's to 100's of GB?[12] ? Reported to be terabytes
Transaction support Deadlock detection, MVCC [8] Distributed transaction management (similar to MVCC concept)  Checkpoints, shared or parallel transactions, nested transactions Checkpoints, deadlock detection, shared or parallel transactions
Query/performance profiler Y N[13] N N[26]
Scalability
Failover Y Y Y Option[27]
Load balancing Partly[6] Partly[11] Partly[21] Option[27]
Replication and incremental backup Y Y Y Option[27]
Ad hoc query engine No OQL—uses collection and query objects Y[10] Y (OQL) Y[28]

Risky Business—But Worth a Shot
I hope I have not come across as an OODB evangelist—I still consider OODBs to be risky business for most applications that I use. However, once you understand and are familiar with them they can be handy tools. Poet and ObjectStore are my personal favorites, but I found them all useful.

Notes:
[1] Only the single-instance personal edition (PSE) is available for download.
[2] Quotes must be obtained through sales representatives.
[3] Some support areas were accessible only for active maintenance contracts.
[4] Size is relative only to other OODB products. User communities for OODBs are much smaller than relational database equivalents.
[5] Persistent classes must be post-processed.
[6] Load balancing across multiple databases does not seem possible. Instead, processing is distributed through client-side caching, which reduces load on the server by moving more logic and computing transparently to the client.
[7] These results were not confirmed and are highly subjective vendor claims. When discussing database sizes, factors such as object complexity, size, and "reasonable response times" come into play.
[8] Multiversion Concurrency Control (MVCC) is a proprietary approach to maintaining a consistent view of data across cached-client and server views of the data during concurrent reads/writes.
[9] Would benefit from more on-line tutorials, FAQs, discussion forums—all should be open to existing and potential customers
[10] Implements a proprietary language, VQL, which has some commonality with OQL
[11] Uses replication to achieve some load balancing; although not confirmed, presumably load balancing would be through redirection of requests to multiple databases. Transparent replication across databases would ensure that a current view was seen at each OODBMS.
[12] Requires the 64-bit version to surpass a variety of 2^32 limits in memory, record counts, etc.; 64-bit versions of Versant are built but not certified for all supported platforms.
[13] Some functions are supplied to support query tuning and timing.
[14] Does not seem to speak of more granular security or provide this capability in the API unless I've missed it somewhere; I found specific mention of database-level access only through OS-enforced database file permissions.
[15] Requires separately supplied tools
[16] Poet comes in three flavors: t2 (realtime embedded Java), e7 (embedded Java/C++), and t7 (enterprise Java/C++). Versions are not prominently displayed, so the v8.0 for t7 is derived from the file version number, currently at 8.0.0.19.
[17] Unable to confirm that full ODMG 3.0 OQL is supported, but coverage appears to be fairly good
[18] Includes an embeddable version in C++ or Java (e7) and a real-time embeddable version in Java (t2)
[19] The online support site community.fastobjects.com is very comprehensive but frequently slow, and it regularly returns page timeouts from my high-speed connection.
[20] I have been able to use batch import/export functionality only with a command-line interface.
[21] No clear signs of distributed features, and I have not worked with a distributed configuration. Load balancing can be achieved to some extent if Poet is configured for database replication with the "reader scalability" option, allowing queries against read-only slave databases.
[22] At least JDK 1.2 seems to work best, as you get better collection support and avoid some reported "quirks" (unsure if these have been addressed for JDK 1.1 issues).
[23] Difficult to estimate - I took a stab based on revenue/financials and Internet/newsgroup discussion frequency. Consider these to be guesses.
[24] Persistent classes are identified by either extending ooObj or implementing the IooObj interface.
[25] Although locks for an entire container seems scary, the idea is that this reduces significant load on the lock server. Under high concurrent activity, I would be worried that problems would arise, but discussions on the newsgroups point out some design approaches that can leverage the container-locking model.
[26] Some run-time query debugging is available through API calls and statistics.
[27] Sources such as this press release imply that these options add cost.
[28] No OQL-like equivalent is available. SQL++ is a SQL-compliant feature that allows SQL queries against the OODB; Containers support a scan() method and simple "Predicate Query Language" expressions
[29] Each of the four products allows evaluation copy downloads. The accompanying documentation and samples for these downloads are typically very good.


Steve Franklin handles the architecture and project engineering responsibilities at a major software firm dealing with J2EE, client/server, command and control, and other distributed architectures. Steve Franklin's primary "off-hours" hobby can be found at Lookoff.com, a repository for Internet and research resources. He can be reached at steve@lookoff.com.



Performance and Scalability/Availability

Back to Introduction

In this Article
Introduction Performance and Scalability/Availability
Compatibility and Features Product Reviews



Read Part 1 of the OODB series: "Object-Oriented Databases Are Worth a Closer Look"







FEATURE SOFTWARE:
SQLDC
Create SQL applications quickly and easily.
Buy Now!

FEATURE BOOK:
VBCommander
Speed app and component design time with this set of more than 20 add-in tools.
Buy Now!


The Database Development Zone has all the content and resources you need to fine-tune your data access apps.

Read Part 1 of the OODB series: "Object-Oriented Databases Are Worth a Closer Look"

Read Part 2 of the OODB series: "Using Object-Oriented Databases: A Step-By-Step Tutorial"

OODB newsgroup: comp.databases.object

Java DB newsgroup: comp.lang.java.databases

Cetus Links OODB Section

Akmal Chaudhri's excellent OODB site and his "Succeeding with Object Databases" book

Join the discussions in the DevX Database Design forum

Barry & Associate's compliance matrix

Barry & Associate's ODBMS Fact Book





 
Sponsored Links

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map
Jupiterweb networks

internet.comearthweb.comDevx.comClickZ

Search Jupiterweb:

Jupitermedia Corporation has four divisions:
JupiterWeb, JupiterResearch, JupiterEvents, and JupiterImages

Copyright 2004 Jupitermedia Corporation All Rights Reserved.
Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Jupitermedia Corporate Info | Newsletters | Tech Jobs | E-mail Offers

Copyright Information/Privacy Statement