On Apr 5, 2008, at 8:45 PM, Vagif Verdi wrote:
AM>in elephant we have several different backends:
AM > * BDB one is primary one, APIs were modelled according to
capabilities
AM> of BDB
AM> * CLSQL can work with any SQL database supported by CLSQL
(that's good),
AM>but has some significant "sub-optimalities"
AM> * Postmodern can work with PostgreSQL only (uses "postmodern"
library,
AM>hence the name) and has less sub-optimalities than CLSQL
I do not see any technical reason using elephant with relational
backend
stores. It does not buy me sql capabilities, because table schema is
butchered to make it work as key-value store. And trying to query it
with
sql from outside of elephant would be hard (if not impossible)
Yet choosing sql backend, I'm gonna lose speed on the order of
magnitude (in
simple cases) and I suspect more in case of complex hierarchies of
objects.
Actually what it buys you is scalability (multi-process, multi-machine
operation) on top of the licensing benefit. That's important for
externally facing, commercially-oriented websites.
The reason you would bother to do this vs. sticking with pure SQL (via
CL-SQL, for instance) is for the simplicity of the integration with
lisp. Slots are dynamically typed, you can easily redefine classes,
call change-class, and have the system do the right thing.
The only non technical reason I see to use non Berkeley db backends
is due
to licensing. But BDB's GPL licensing works fine for me (inhouse use.)
_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel
_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel