CS262B Reading Summary
The ObjectStore Database System
Charles Lamb et al.
Summary by Feng Zhou
2/23/2004
Strong points of the paper are:
- Ease-of-programming and better static checking via tight
integration with programming languages are big pluses for
object-oriented databases. This is true with ObjectStore, which
integrates with an extended version of C++. It also provides
library interfaces for vanilla C++ and C, which makes using ObjectStore
less intrusive for legacy systems.
- The use of virtual memory in the implementation of the integrated
DB interface is efficient and clean. It also seems to be the only
way to implement true transparent persistence without instrument every
pointer de-reference, which will not be an easy job to do well, both
performance-wise and correctness-wise. However, one drawback of
the VM approach is that it needs a hook to the VM part of the OS kernel
on the client machine.
This is an rather intrusive requirement.
- The fact that references (joins) are materialized in ObjectStore
databases help performance greatly. A large number of SQL join
queries are actually used simply to resolve references between data
objects. However, they incur all the overhead of query parsing,
execution and resultset construction. Teh same operations can be done
in ObjectStore via a simple pointer de-reference, which is shown by the
evaluation to be orders of magnetude faster.
One major flaw.
Tight integration with languages is a two-edge sword. One side
of it eases programming, improves performance, etc. The other
side, however, means a wider interface, harder user acceptance, reduced
portability of user applications and increase difficult in supporting
new languages.