[elephant-devel] Re: Multi user client-server performance

Robert L. Read read at robertlread.net
Mon Apr 7 02:38:57 UTC 2008


On Sat, 2008-04-05 at 12:51 +0300, Alex Mizrahi wrote:
> in elephant we have several different backends:
>  * BDB one is primary one, APIs were modelled according to
> capabilities of 
> BDB
>  * CLSQL can work with any SQL database supported by CLSQL (that's
> good), 
> but has some significant "sub-optimalities"
>  * Postmodern can work with PostgreSQL only (uses "postmodern"
> library, 
> hence the name) and has less sub-optimalities than CLSQL 

As an aside, I am currently trying to implement Ian's latest extensions
to the internal BTree model under CLSQL in order that we we can be green
on all backends with his latest features (in the "elephant-unstable"
branch.)

Reviewing the code I wrote two or three years ago for CLSQL, which
unfortunately influenced the PostModern stuff in some ways, it does seem
pretty heinous.

The lesson I take from this is mostly that we should try to prioritize a
native-LISP backend as much as possible.

Although I agree with the defense of using a relational database as a
store given the engineering advantages (such as automated backups) that
it provides, it is also clear that if we had a native-LISP backend we
would broaden the choices that a user would have.

One could then experiment with Elephant "out-of-the-box" (via the native
LISP backend), then implement on top of PostModern, then perhaps move to
BDB if you like.

The main reason for maintaining the CL-SQL backend is that it would be a
good starting point for an Oracle, MS Sql Server, or Mysql
implementation.  The PostModern backend actually would also be a model
for those implementations, though a less direct one.

I personally think the PostModern work made CL-SQL less important, and a
Native LISP backend would make it less important still.  I can imagine a
time when we would deprecate the CL-SQL backend entirely.  In
particular, if we had something like PostModern for one other major
database we would then have two models of how to implement that way, and
could probably mothball the CL-SQL backend.




More information about the elephant-devel mailing list