[comp.databases] ObjectStore

gordon@mead.UUCP (Gordon Edwards) (08/23/90)

Does anyone know anything about an OODBMS named ObjectStore?  It was developed
by Object Design, Inc. and reportedly allows applications to be developed in
C++.

Please, post followups rather than replying by e-mail.  Our feed is supposed
to change any time and my e-mail address may not work. 

Thanks.

--
Gordon Edwards                                    Mead Data Central, Dayton OH

donovan@julius.csl.sri.com (Donovan Hsieh) (08/24/90)

I received this email from Samir K Mathur <smathur@hpdmsjlm.cup.hp.com>
earlier. He attended a
talk gievn by Thomas Atwood. He is the chairman of Object Design. I
think this may be of your
interest.

Donovan Hsieh

Computer Science Lab
SRI, International

************************************************************************
************************


I attended a presenation today by Thomas Atwood, the chairman of 
Object Design Inc.. He described his company's OODB product called
ObjectStore to folks from IAG, SESD, and CLL. A summary of the 
presentation follows. My comments are enclosed in '[]'. 

If you have further questions feel free to contact me.

Samir.

 ___________________________________________________________________________

		Object Design Presentation (7/24/90)
		--------------------------

Objective of the Presentation:
- -----------------------------
Object Design (OD) is interested in a spectrum of relationships with HP, 
ranging from a co-operation on the standard front to being considered as 
an HP ISV.

OD's Initial Market:
- -------------------
OD's initial thrust would be in Computer-aided X fields and Office
Automation. 

The OD Company:
- ---------------
OD has hired the chief architects of Ontologic, Symbolics and CCA
OODB products. They have also hired a large number of ex-Oracle 
guys for marketing and sales.

The OD Product:
- --------------
OD differentiates itself from other OODB products on three fronts:
	1. Second generation (memory mapped) architecture
	2. Performance
	3. Heterogenous environment support.

ObjectStore Implementation Architecture:
- ---------------------------------------
Tom Atwood separates the architectures of current OODB products into two
broad categories :
	1. First generation (indirect mapping based) and
	2. Second generation (memory mapped) 
architectures. 

The idea of the first genration architectures is to keep large 
tables which maintain the location of the objects on the disk.
As you need the objects you go through these (hash) tables and get the
segment containing the objects into the main memory. 

Problems - 

1.Even if the object is present in the main memory, an access (hashing) 
takes minimum 6-10 instructions to get to the object. This is so because
every object is indirectly mapped through the table.

2. To keep pointers to the other objects you need minimum 64 bits rather
than the normal 32 bit ptrs for the main memory accesses. The extra bits
are needed to indirecly map the objects via the tables.


The second generation architecture use a technique called "pointer 
sizzling" (found in MS word and some CAD s/w). In this scheme, all
intra-segment memory references are stored as offsets from the segment 
boundary. All references to objects outside the segment are 
"swizzeled" so that they generate an OS fault whenever they are
accessed. Also, each segment keeps track of all other segments
which can be refernced by a pointer whithin this segment. All 
intra-segment references are done by looking at the offset of the 
segment in the main memory. Howver, any inter-segment refernce will
generate a fault because of "swizzling", and the fault handler
will determine the location of the object to be accessed. If the object
is in a segment not in main memory, then the segment is brought in
the main memory. So in this approach all intra-segment references take one
machine instruction (rather than 6-10 for th 1st gen.) and on the
average (if objects are clusterd properly) the performance is very
fast. Also, the pointers need to be 32 bit only, rather than 64 bits
for the first generation architectures. 
The problem is that the fault handler requires OS support and not
all OS's have it (Appollo Unix does not have it though SUNOS, AT&T, OSF-1
and OS/2 have it).

ObjectStore Client/ServerArchitecture:
- --------------------------------------

OD thinks there are two types of client-server architectures - one they
call CLIENT-server where most of the work is done in client and network
traffic is minimized, and client-SERVER where server does most of the 
work. They observe that most companies go for the latter although performance
number indicate that former is a better strategy for most applications
for which OODB are better suited. OD has chosen former strategy based upon
the experience of their architects with other systems. They also claim
that if the application is suited for the latter model (the application
needs to do extensive disk I/O for long periods of time) they just move
the whole client procedure [?] (using rpc) to the server and execute it 
there.

Other Database Features:
- -----------------------

1. Language: OD has associate query languages OQL C++ and OQL ADA. They
claim that the idea of SQL being both interactive and embedded language 
was a bad one because the need to make the language interactive 
requires SQL to be as complete as possible. This has a bad effect on the
embedded side because now you have have to deal with the constructs and
variables of the host language as well as the query language which might
not go well together. [Anything we can learn for our OSQL ?]. Their idea
is to come with a OQL which has the minimum capabilities to do 
satisfactory queries and to put it on top of other languages (like C++, ADA).
OD has added a new 'foreach' clause in the C++ language to do associative
queries. Also, their work on parameterized types has been accepted by
AT&T for C++ 2.0 release.

2. Persistence: OD believes that persistence should be orthognal to 
type structure. So rather than declaring a class (C++) to be persistent
(and all its subclasses), they take the view that classes should be
defined as in programming languages. However, when one is declaring
variables of the class then one can specify whether the variable should
be persistent or not. An eg. in OQL C++ would be :

	class PERSON { ... };

		PERSON p;	// storage on the stack
	static  PERSON p;  	// storage on the heap
	persistent PERSON p;	/* the new keyword 'persistent' implies
				   that the storage should be allocated in
				   persistent storage */


3. Versions: Have extensive support for version and configuration 
(complex object) management.

4. Concurrency: OD believes that the normal deadlock resolution does
not work well for OODB applications because aborting a long transaction
can lead to a large amount of lost work. Therefore they give the
user the choice of traditional deadlock resolution as well as other choices.
These choices include informing the users of the deadlock and requesting
ithe user to acquire smaller granularity locks. The other option is to 
automatically create two version streams where each version is created by 
the commiting of one of the transaction and aborting the other one. 
ObjectStore also  provides object level locking and nested transactions. 

5. Distribution: OD claims to product 2-phase commit in the product.
They claim that the data can be easily distributed over multiple
servers. Two OD databases can exchange objects but there is no transaction
mechanism spanning different databases.

6. Performance: OD claims that their performance is much better than other
OODB products because of their second generation architecture. They claim
that Rick Cattel of Sun (the originator of Sun Benchmark) recently verified
this claim even though Cattel sits on Objectivity board.

7. Migration: OD claims that current C, C++ applications can migrate to OD 
product by the process of deletion (deleting lines of code without adding
any, except for one or two). OD is also working on developing tools which
will access data from the current DBs and these products should be ready
by mid-91.

Current State of the Product:
- ----------------------------

OD has finished two Betas of their product and plan to finish a third
one by Q3 90. They plan to release the product by Q4 90. They claim that
they have extensively tested their product and have used it internally for
their development environment.

[My Comments:
- -------------

The bad news is that if OD's claims are true than they have a viable,
high performance OODB with lots of functionality. I have been much more
impressed by their capabilities as compared to Ontologic's and Objectivity's,
whose presentations I have attended too. The HP folks at the meeting
including Probase people (who were literally salivating) seemed
very impressed. Tom Atwood was given the names of several contacts
who can help OD to port their product onto HP platforms. The good news 
is that they seem to be focussing on the CA-X market with C, C++ emphasis 
and are not emphasising on the traditional and CIM markets. Their 
migration strategy for SQL users seems to be very week. Also, they do not 
seem to have any application developer or end user tools except for a simple
schema generator (browser).]










------- End of Forwarded Message







mail ksys

noren@dinl.uucp (Charles Noren) (08/24/90)

In article <1207@meaddata.mead.UUCP> mead!gordon@uccba.uc.edu writes:
>Does anyone know anything about an OODBMS named ObjectStore?  It was developed
>by Object Design, Inc. and reportedly allows applications to be developed in
>C++.

We are using ObjectStore by Object Design, Inc., so is another
project in our company (who alerted us to the product).  It is
a **very** fast and very easy-to-use Object-Oriented Database 
Management System.  Now I am an Objective-C bigot, but this database
with its seemless interface to C++ (and being the fastest according
to some internal studies) caused us to start using C++ so we could
use the full features of the database (it really pains me to say
that -- I am looking into interfacing Objective-C to it on my
own time).

How ObjectStore looks to your application is as follows:

 1.  You declare the root object of your application that
     will be your handle into the database as "persistent".
     This key word, which is similar to the C key word "static",
     declares that the life of your object will persist over
     the life of the database.

 2.  Referencing the database objects is done within a "transaction
     block" construct, that is a new key-word block statement with
     C++ curly-braces {}.

 3.  Adding new objects to the root object is done by using
     an overloaded C++ new operator (which has a corresponding
     overloaded delete operator).

Currently, Object Design provides a C++ compiler with the hooks
into the database.  It is a version of AT&T C-front with enhancements.
One of the major enhancements is parameterized types.  This alone
makes their compiler worth while (in fact, AT&T is going to use their
implementation of parameterized-types).  Other enhancements allow for
nice query capability to their aggregate classes, and a means to
declare an inverse relationship.  In the future, Object Design plans
to allow other C++ compilers to interface, particularly when other
compilers implement parameterized types.  Object Design also provides
a kernal group of classes that are extremely useful in creating
and manipulating C++ objects in and out of the database.  (You could
use the C++ compiler and class libraries without any database
features and have a "normal" C++ application).

With ObjectStore, you have the full expressive power (plus more)
of C++ to create general complex object structures.  This alone
provides what I want in manipulating the kind of objects I'm
maintaining in a Network Management System.  With the seaching
capabilities they provide through the query expressions, classes,
and iterators on aggregates I have the expressive power I want
in queries without SQL.

ObjectStore is in beta right now, however I find that the beta of
ObjectStore compares better in quality to some of the released
software of some other OODBMS's.  Object Design can be reached
at (617) 270-9797 (Eastern USA) or (213) 412-8411 (Los Angeles).



-- 
Chuck Noren
NET:     dinl!noren@ncar.ucar.edu
US-MAIL: Martin Marietta I&CS, MS XL8058, P.O. Box 1260,
         Denver, CO 80201-1260
Phone:   (303) 971-7930

ricks@shambhala.Berkeley.EDU (Rick L Spickelmier) (08/24/90)

In article <1712@dinl.mmc.UUCP>, noren@dinl.uucp (Charles Noren) writes:
|> In article <1207@meaddata.mead.UUCP> mead!gordon@uccba.uc.edu writes:
|> >Does anyone know anything about an OODBMS named ObjectStore?  It was developed
|> >by Object Design, Inc. and reportedly allows applications to be developed in
|> >C++.
|> 

There are quite a few OODBMS companies with products on or just coming
on the market.  Here are the ones that I know of:

	Object Design
	Objectivity
	Ontologic
	Servio Logic
	Versant Object Technology
	Xidak

Most, if not all of them, offer C++ interfaces to their databases.
Most also have C interfaces, but the C interfaces generally are not 
as powerful (easy to use) as the C++ interfaces.  The various companies
give different tradeoffs (efficiency, transparency, languages supported,
size of databases, number of databases open at the same time, heterogenity,
distribution, locking, transaction model, schema definition, schema
modification, ...).

-- 

	    Rick L. Spickelmier
	    Electronics Research Laborartory
	    University of California at Berkeley

	    ricks@berkeley.edu, ...!ucbvax!ricks