SimpleDBM - A Database Manager
Introduction
The goal of SimpleDBM project is to build a Relational Database
Manager in Java. The planned features include support for:
- Transactions
- Write Ahead Log
- Multiple Isolation Levels
- BTree Indexes
- Entry Level SQL-92
- System Catalogs
A distinguishing feature of the project is that the DBMS is being
built in a modular fashion. The aim is ensure that each module is usable
on its own ; for example, the Lock Manager or the Log Manager modules
can be used on their own even if the rest of the system is not of
interest.
There will be two major sub-systems in the dbms backend. The Data
Manager subsystem is named RSS, and is responsible for implementing
transactions, locking, tuple management, and index management. This
sub-system is currently under development.
The second major sub-system will be called SQL Manager. Its job will
be to parse SQL statements, produce optimum execution plans, and execute
the SQL statements. Development of this sub-system is expected to start
sometime in 2006.
SimpleDBM is being built in Java 5.0 and will use new features such
as java.util.concurrent package and Generics available in this version
of Java. SimpleDBM will not be compatible with previous versions of
Java.
History
SimpleDBM is descended from a previous project in C++ called DM1. The existing
DM1 C++ codebase has been ported to SimpleDBM.
News
- 20 Feb 2006 - Build number 0.55 is now available. This contains
an implementation of Tuple Scans which makes the Tuple Manager
feature complete.
- 27 Jan 2006 - Latest build contains fixes for a few bugs, implementation of
missing features in the Transaction Manager and Log Manager modules
that were on the TODO list for a while, and some refactoring of code.
- 14 Jan 2006 - First draft of a paper on Multi-Version Concurrency
implementations is available
here.
- 29 Dec 2005 - Completed first cut implementation of Tuple
Manager. See WEBLOG for
a discussion of this module.
- 4 Dec 2005 - Added a Demo program for BTree module that allows
an interactive session involving two threads. Here is a
screen shot.
- 25 Nov 2005 - Bug fixes, test cases, refactoring and documentation
updates are the theme for this month.
- 09 Nov 2005 - Documentation page
added.
- 04 Nov 2005 - BTree scans implemented. The basic functionality of
BTree indexes is now available.
- 28 Oct 2005 - BTree Insert Key operation implemented.
- 6 Oct 2005 - Short paper on some of the space
management issues in B-link trees.
- 18 Sep 2005 - Work on BTree module is starting today. The
implementation will be based upon the algorithm for B-link tree
published in
Concurrency control and recovery for balanced B-link trees, by Ibrahim
Jaluta, Seppo Sippu and Eljas Soisalon-Soininen.
- 17 Sep 2005 - In preparation for the BTree module, the Buffer
Manager module has been enhanced to support additional (update) latch
mode. A new Latch implementation added to support this requirement.
Also, SlottedPage Manager module implemented to handle the common
requirements of manipulating slots and items within a page.
- 16 Sep 2005 - Port from DM1 code completed. A lot of refactoring
and bug fixes have been done in the process. The DM1 code is now truly
defunct.
- 7 Sep 2005 - Most of the Space Manager module is done. Testing
should be completed by this week.
- 28 Aug 2005 - Transaction Manager implementation is now available.
New milestone release available here.
- 23 Aug 2005 - Added a Latch implementation and started work on
Transaction Manager
- 19 Aug 2005 - Source Code checked into UNSTABLE_V100 branch.
- 19 Aug 2005 - Initial port of Buffer Manager.
- 14 Aug 2005 - There is now a WEBLOG for the
project.
- 28 July 2005 - Code for Lock Manager ported.
- 09 July 2005 - Code for Log Manager ported.
- 10 June 2005 - Project started.
Topics
Copyright © 2005 by Dibyendu Majumdar
