[bknr-devel] SBCL and OpenMCL ports done properly

Hans Hübner hans.huebner at gmail.com
Tue Feb 7 14:07:13 UTC 2006


Hi Hoan,

I don't really plan to make the BKNR Datastore compete with
AllegroStore, AllegroCache, cl-versant, or any of the O/R mapping
database products.  There may be some overlap between such a project
and the BKNR Datastore, but I don't expect it to be large.  The
requirements for a disk-based database are very different from those
of in-memory, transaction based system.  For example, with the BKNR
Datastore you can make arbitary in-memory datastructures persistent by
making all destructive operations be transactions.  In a disk-based
database system, the changes to the persistent data itself is being
written to disk, which requires different mechanisms - In practice,
you would propably restrict such a system to make CLOS objects
persistent and hook into the slot access functions.

I am not opposed to object database systems, but I want to see the
BKNR Datastore developed towards better maintainability and
reliability.  Also, I fail to see what advantages a traditional,
disk-based approach would have, despite the inherently lower
performance.

What is the reason that makes you think that the BKNR Datastore should
move towards a disk-based system?  Maybe I am overlooking something or
fail to see where the current approach does not work.

I see the most severe limitation of the current approach in it's size
limit.  A store, in practice, is limited to a few 100 MB of data. 
Beyond that, the restore times will be too high and also global
garbage collections can become a problem, at least if the GC is very
naive. In practice, a few 100 MB of data is a lot of data and will be
enough for even very large applications.  There are limits, but to me
they are more theoretical.

Check out some design scribbles I wrote a while ago: 
http://common-lisp.net/project/bknr/templates/development-style.xml
and http://common-lisp.net/project/bknr/templates/why-no-db.xml

Cheers,
Hans



More information about the Bknr-devel mailing list