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