Introduction
Elephant is an object database for Common Lisp. It supports
storing CLOS objects and most lisp primitives, and access to
BTrees. It uses Sleepycat / Berkeley DB, a
widely-distributed embedded database; many unix systems have
it installed by default. Sleepycat is server-less, ACID
compliant, transactional, process and thread safe, and fast
relative to relational databases; hopefully Elephant
inherits these properties.
Goals:
- Transparency: most Lisp values are easy to persist without
much effort or special syntax. Talk to the DB with Lisp code, not SQL
or another domain-specific language. No additional server to run.
- Safety: ACID, transactions. Concurrent with good
multi-user and -thread semantics / isolation, locking and deadlock
detection.
- Simplicity: be a small library with few surprises for the
programmer. Lisp and Berkeley DB together are an excellent substrate,
try to use their features as much as possible.
- Performance: leverage Sleepycat performance and
reliability. In addition to fast concurrent / transactional modes,
elephant will (eventually) offer an accellerated single-user mode.
Join the Elephant mailing lists to ask your questions and
receive updates. They're on the Elephant website at
http://www.common-lisp.net/project/elephant.
Installation documents can be found in the file INSTALL
.