modification is made. In addition to these standard
write-back cache functions, the Multi-version Disk
Cache provides functionality specific to the database
engine. It allows the storage subsystems to lock
blocks in memory. Whenever a block is needed by
the storage subsystem for certain operations, such as
binary search within the block, the storage
subsystem does not create its own copy of the block.
Instead, it requests the disk cache to lock this block
in memory for the duration of operation and uses the
same copy of the block. Sharing of the block copy is
possible since the modules in the Kernel, including
the disk cache, run in the same address space. This
type of sharing eliminates the necessity of block
copy operations. It is important that the lock is held
for only a short period of time, since all the locked
blocks have to be present in memory. If locks are
held for a long time, the system may run out of
memory.
The disk cache provides support for block
versioning. A block ID in the cache is two-
dimensional: it is composed of a sequential block
number in the database file and a sequential database
version (B, V). The transaction coordinator increases
the database version with every read-write
transaction and assigns the version to the
transaction. Whenever the transaction requests block
B for modification, the block ID is composed of B
and the database version V assigned to the
transaction. If the block does not already exist, a
new copy of the block is created. The new copy is
based on the block with the same block number B
and the database version that was current at the
beginning of the transaction. The old block is
retained until a transaction in the system requests it.
The Binary Server module hides the file structure of
the database and provides the user with flexible
storage options. The module is used to store data of
the database engine’s files with fixed size blocks to
the disk. The Binary Server implements a simple file
system that can provide this functionality by using
one disk file or several disk files or even raw disks
not formatted by the operating system. The Binary
Server can also distribute the database across
multiple computers. All storage subsystems share
the same space of disk blocks provided by the
Binary Server. Whenever a block is freed from a
storage structure, it goes into the common pool of
free blocks. This allows for better management of
space allocated to the database.
5 CONCLUSION
Semantic databases have many advantages over
relational databases that will allow them to grow in
popularity as the complexity of data increases.
However, the semantic database engine should be
implemented in a way that is not prohibitively
expensive on operations typical to relational
databases. We have shown that a number of
reasonable tradeoffs are possible in the design of the
semantic database engine that can make it
competitive on applications that are widely-used
today.
This work shows how a framework that allows
investigation of advantages and disadvantages of
different approaches in each of the database engine
modules can be built. A number of conclusions have
been made on the feasibility of particular choices
based on theoretical considerations, as well as
practical experience implementing various parts of
this design in several combinations.
Innovative technologies missing in the previous
semantic database theory and prototype
implementations have been designed and discussed.
These technologies are expected to overcome some
of the shortcomings that have kept semantic
databases from being widely accepted in the field.
ACKNOWLEDGEMENTS
This material is based on work supported by the
National Science Foundation under Grants No.
HRD-0317692, EIA-0320956, EIA-0220562, CNS-
0426125, IIS-0326284, CCF-0330342, IIS-0086144,
and IIS-0209190.
REFERENCES
Rishe, N., 1992. Database Design: the semantic modeling
approach, McGraw-Hill. 528 pp.
Rishe, N., 1994. Semantic Schema Design Language,
available at request, http://hpdrc.cs.fiu.edu .
Vaschillo, A. 2000. A Semantic Paradigm for Intelligent
Data Access. Ph.D. Dissertation, Florida International
University, 143 pp.
Rishe, N., 1999. Semantic SQL, available on request at
http://hpdrc.cs.fiu.edu .
Rishe, N., et.al. 2000. SemanticAccess: Semantic Interface
for Querying Databases. In Proceeding of the VLDB
Conference, pp. 591-594, September 10-14, 2000,
Cairo, Egypt.
ICEIS 2005 - DATABASES AND INFORMATION SYSTEMS INTEGRATION
436