Xref: utzoo comp.object:1599 comp.databases:6811 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!ncar!dinl!noren From: noren@dinl.uucp (Charles Noren) Newsgroups: comp.object,comp.databases Subject: Re: Object-Oriented Databases and Memory Mapped Files Message-ID: <1693@dinl.mmc.UUCP> Date: 13 Aug 90 21:38:10 GMT References: <1990Aug13.095316@shambhala.Berkeley.EDU> Reply-To: noren@dinl.UUCP (Charles Noren) Organization: Martin Marietta I&CS, Denver CO. Lines: 40 In article <1990Aug13.095316@shambhala.Berkeley.EDU> ricks@berkeley.edu writes: >One quick method of implementing a persistent store for a language >is to layout the persistent store just like main memory (including >pointers) and use memory mapped files or shared memory to >transparently map the data from disk to the appropriate location in >memory... This will provide a persistent store for a single process. Other things are needed to make it a database, notably concurrancy protection (read and write locks) to prevent bad things from happening when more than one process access the same object in memory. At least one Object-Oriented Database (OODB) company does this, Object Design Inc. (Eastern US phone: (617) 270-9797, Western U.S. phone: (213) 412-8411). Their product, ObjectStore (which is in Beta right now, currently works only on Sun 3's and 4's with more to come soon) puts database fetches into physical memory and maps the process address space into it. The C++ process referencing the data uses C++ dereferencing mechanisms to access the data making for very fast access for data in cache memory. For data referenced outside of cache, the ObjectStore runtime environment catches the segmentation violation signal and determines what to bring in an remaps the process address space into it. We are in the process of purchasing ObjectStore from Object Design because our evaluation of it (and particularly, the evaluation done by another project in our company) has found this database to be very fast. The database is also extremely easy to use, basically you're just writing C++ code to use the database. ...now if I can just coax Objective-C to use ObjectStore in the same way, what a combination that would make! -- 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