Freebase
Open Source Relational Database
Copyright 1999,2006
Release Date: May 1, 2006
Author: JJ Furman
Features
- ACID Transactions (Durable only if using persistent log
implementations)
- Write Ahead Logging (WAL) - Recovery (checkpoint almost complete)
- COMMIT, ROLLBACK, SAVEPOINT
- Statement level atomicity - Failed statements revert system to
prior state
- Multi View Concurrency (MVC) - readers don't block writers (ala
Oracle, Postgres, InnoDB)
- Row level locks - lock information stored with row data, thus no
escalation ever needed
- Table Locks - row share, row exclusive, share, share row
exclusive, and exclusive modes all supported
- Unique Keys
- Isolation Levels - read uncommitted, read committed, repeatable
read, and serializable
- Deadlock Detection
- Partial SELECT implementation - no outer joins, subselects nor
set operations (union [all], intersect)
- INSERT, UPDATE, DELETE
- Sequences - nextval and currval
- Partial JDBC Driver - batches and prepared statements
implemented, but no meta data yet.
- SQL Client available - explain plan
- Connection management and cleanup
- Database Metadata stored in catalog tables
Here is the list of features that the system doesn't do (yet?). This
is is here to give you an idea of what I am thinking about.
Basics
- poor data validation currently
- rough edges on commands
- no securitity
- no legitimate BLOB support
- no Unicode
Queries
- current index utilization offers poor selectivity (easy to
improve)
- no select for update (plan in place, implementation deferred)
- no subselects (in where clause, from clause or anywhere)
- no outer joins (SQL 92 join semmatics not implemented yet)
- no views
- prepared statements are simulated (ie, no true statement cache)
- parallel query
Core Capabilities
- no Stored Procedures
- no triggers
- temp tables
- no foreign keys
Enterprise
- memory only db very limiting
- replication (hot or warm) - warm using log replication and fast
recovery straightforward, hot more difficult
- clustering
- hot backup (not need yet)
And so on...
Two of the core limitations of the current implemetation are in the
following areas:
- A world class query engine
- A highly scalable block based disk persistence
License
Freebase License
Download
freebase_src_0.7.zip
Build/Run Instructions
TODO: for now, contact me.
TODO: Remove log4j dependencies and use java logging.
Contact
email me: jjf at alumni.cse.ucsc.edu