SimpleDBM is an open source transactional database, written in Java. It has a
very small footprint and can be embedded in the address space of an
application. It provides a simple programming API, which can be learned
very quickly.
Features
SimpleDBM has the following features:
- Transactional - SimpleDBM fully supports ACID transactions.
SimpleDBM uses a STEAL/NO-FORCE buffer management strategy for
transactions.
- Multi-threaded - SimpleDBM is multi-threaded and
supports concurrent reads and writes of data.
- Write Ahead Log - SimpleDBM uses a write ahead log to
ensure transaction recovery in the event of system crashes.
- Lock based concurrency - SimpleDBM uses shared, update
and exclusive locks to manage concurrency. Row locks are used.
- Multiple Isolation Levels - SimpleDBM supports
read-committed, repeatable-read, and serializable isolation levels.
- B-Tree Indexes - SimpleDBM implements B-plus Tree
indexes, that fully support concurrent reads, inserts and deletes.
SimpleDBM B-Trees continually re-balance themselves, and do not suffer
from fragmentation.
- Tables - SimpleDBM supports tables, but for maximum
flexibility, treats table rows as blobs of data. Table rows can have any
internal structure as you like, and can span multiple disk pages.
- Latches and Locks - SimpleDBM uses latches for internal
consistency, and locks for concurrency. Latches are more efficient
locking mechanisms that do not suffer from deadlocks.
- Deadlock detection - SimpleDBM has support for deadlock
detection. A background thread periodically checks the lock table for
deadlocks and aborts transactions to resolve deadlocks.
- Network API - A network client/server API is being developed and will be released soon!
| Status
SimpleDBM is currently in early BETA and not suitable for use in
Production systems. The latest builds can be downloaded from http://code.google.com/p/simpledbm/downloads/list.
LicenseSimpleDBM is licensed under GPL V2 with
Classpath exception. This means that you can freely extend SimpleDBM
without having to GPL your own code. Links |