Re: S.O.D.A. database Query API - call for comments

From: Carl Rosenberger <carl_at_db4o.com>
Date: Sat, 21 Jul 2001 18:01:08 GMT
Message-ID: <9crgsr$4ae$07$1_at_news.t-online.com>


Mikito Harakiri wrote:
> >No, that is not true.
> >Object databases also use indices to organize data for efficient
 querying.
>
> A checkpoint. If I, say, have a Shape object with overlap() method, what
 index
> would OODBMS build?

Creating indices for methods is technically possible.

The ODBMS market is very heterogeneous and I think there are products that provide indices for methods.

In general there are two types of object databases: - "Active" object databases provide behaviour similar to that of application servers. Objects "live" on the server side. Locally you only deal with proxies to these objects. This kind of database server typically consumes a lot of memory since many objects need to remain active. Indices for methods would fit into this database model. www.ozone-db.org is an example of a representative.

  • "Passive" object databases do not need to instantiate objects on the server side. Objects are handled in an abstract way by shifting byte arrays around. Method indices would typically have a very negative impact on performance. The change of one single object could cause an avalanche of instantiation of objects on the server side.

> >Why do you have to convert objects to strings manually to communicate
 with
> >the database? Can't the database do the job for you? What is the string
> >back-and-forth conversion good for?
>
> I'm not following here.

This is what happens:

Now why is the *string* intermediate state necessary for storage? Why can't the database understand objects as they come?

JDBC and ODBC overhead adds to the unnecessary performance leak.

As you would expect, a database that is capable of understanding objects directly has an insert performance which is 10 ^ 1 to 10 ^2 better. http://www.db4o.com/db4o/benchmarks.html

> >Why do you need to fetch IDs after inserting records, just to join them
 to
> >other records? Can't the database do the job for you?
>
> You mean:
> 1. insert master PO record
> 2. get generated sequence ID back
> 3. insert items
> ?
> Optimising away #2 here is minor issue, compared to possibility of
 combining
> steps #1 and #3. But can't do in Relational. Note, that alhough OO seems
 to
> store PO in one shot you previously have constracted PO object in memory
 in
> exactly the same steps. So, I wouldn't upset too much here.

I don't agree with you here.
On 2- or 3-tier systems, the generated ID has to be read back over the network. As this needs to happen sequentially, you have a lot of back-and-forth communication, just to store one single object, that is a little bit further down the branches of the class hierarchy.

Object databases do store objects in one shot on one machine.

By the way:
Someone has been talking about the necessity that object databases store pointers *and* IDs. This is not true. Object databases can also use the pointers as IDs, but not many of them do that.

> After all, if we put all relational features into object database,
 wouldn't it
> just be a better database?

Absolutely.
This is what is happening by the way.
Relational databases try to provide capabilities for inheritance hierarchies. Akmal Chaudhri from Informix (now IBM) has recently posted some code in comp.databases.object.

Object databases try to provide query functionality that would be expected in the relational world.
... back on the main theme of this thread...

> It's not necessarily about functionality only. We can retrieve data in
 both
> approaches -- no question about it. It is that some object features, like
> nesting, make quering much more complicated, and relationists think that
 this is
> fatal.

Relationists sometimes hate object-orientation because it does not match their way of modelling data. We are in the 21st century and soon (with C# and VB.Fred) more than half of the world-wide softare-development will take place with object-oriented languages.

> >Are you informed about Ericssons record-breaking approach?
>
> Sorry, I'm ignorant here. You sound alarmingly marketing, though:-)

No, I don't have any contacts to Ericsson, although I wish I would. If you search Google for "NDB Ericsson" you get some results. I am sorry but I have lost the reference to the excellent article about the technology that I have read some time ago.

> BTW, I symphasize your early attempts to scare away spammers from the
newsgroup.

I don't know to to which incident you refer here.

Kind regards,
Carl

---
Carl Rosenberger
db4o - database for objects - http://www.db4o.com
Received on Sat Jul 21 2001 - 20:01:08 CEST

Original text of this message