On Feb 20, 2008, at 8:44 PM, [EMAIL PROTECTED] wrote:

Hi all,

I don't mean to start a war here or put any work down. However, I just needed some clarification/direction into which way the data stores work is going.

One challenge is that the current implementation is setup to only work with one BDB version at a time. We tend not to exploit much of the new functionality available in later 4.x versions,a although we benefit from performance, stability and other general improvements.

From the documentation I've read, the BDB data store only supports BDB version 4.5 (or up to 4.5), so further work done in 4.6 and above is not leveraged. I don't know if there is any effort to continue evolving the BDB data store. Any comments?

Because we don't want to push people to upgrade each time BDB releases a new incremental, and because we don't keep close tabs on the BDB release schedule, we haven't been aggressively upgrading BDB's compatibility. Most Linux implementations allow you to keep multiple versions for awhile, and we haven't had any community pushback on this lazy upgrade policy.

Also I'm the only lead developer with intimate knowledge of the db-bdb data store. While I support bug fixes, and will occasionally work on features, I'm not very active right now.

Also, from what I've been reading on the list, it seems the postmodern data store is more active. Granted is a more recent data store and may need more work to get to where the BDB data store has gotten after all this time (just speculation since I haven't really used the postmodern data store). However, from what I've read, the postmodern seems to use Postgres as the backend but not in a Object- Relational mode but rather as plain storing of "btree pages". So, in essence, what I understand is that operating on this data store requires elephant to read/write "pages" or "btrees" in Postgres and once in memory, they may be treated similar to how the BDB engine works (don't mean to mock postmodern with my lack of knowledge).

That's essentially correct, although the postmodern developers can probably provide more insight.

So, putting licensing issues aside, what is the real difference/ advantage of one data store over the other? In a recent email I read by Alex, he mentions he's going to work on improving performance on the postmodern data store. So, even after that improves and performance is matched with that of BDB, is there an advantage of one data store over the other?

BDB is the fastest
Postmodern is about 4x slower (is this still true)
CL-SQL on Postgresql is about another 2x slower yet
CL-SQL on SQLite3 is even slower (another 2x?), although there is speculation that this is artificial but we haven't investigated.



Since Postgres does allow for features such as replication, clustering, and fail-over with multiple active simultaneous client connections, does this mean that I could have multiple (separate) lisp clients using elephant connecting to a separate Postgres cluster with no concurrency issues?

Yes.

You can do this on BDB, but only on the same system as it relies on shared memory locks between processes. This helps for multi-CPU systems (one lisp process per CPU) but not for distributing Elephant across

Thanks,
Waldo
_______________________________________________
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

Reply via email to