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