On May 7, 2008, at 4:20 PM, Alex Mizrahi wrote:

IE> Given that in Elephant, the cost of a btree instance is negligable,

it postmodern backend each btree is backed by a database table,
so i think it's not that negligable there..

Ah, I think the CL-SQL and BDB have different performance implications then. What is the purpose of doing it this way? Are you specializing the table on the type of the keys in some way?

IE> one way to do this is the just have a set of messages for each user in
IE> a user slot (a pset or set-valued slot).

but i think it's quite easy to make cheap psets -- just a dup-btree of pset-oid->item

That's nice; that was the intention of the default pset implementation.

IE> messages. Of course to get the full efficiency you want, we'd have to
IE> make a sorted-pset that sorts on some fn of the elements.

sorted-pset? how can we sort something in database without having a key?

BDB can sort on values as well. The pset abstraction is currently guaranteed to be an unordered collection or unique objects.

i think that would be more like indexed-pset, with indices being btrees.

as an interface, it could look like:
 (get-by-range (messages-of user) 'date yesterday nil)

but, damn, it would be much harder to make cheap btrees with SQL..

You could just do this directly using an indexed-btree if you really needed to.

Probably better to work on a native-lisp solution than to try to contort SQL to do this!

IE> I'd like to think about different metaphors for solving these problems IE> so we don't end up turning Elephant's interface into a less efficient
IE> variation of an ORM!

i thought elephant is a BDB wrapper :)

It was, once. It's slowly evolving into an OODB, but people are so used to SQL and ORM that I sense a strong leaning towards making the data representation and query access look like those you find in ORM systems. Especially since many users are using postmodern, and the effective way to make the Elephant model faster on top of Postmodern is to change the abstractions to look more like tables and SQL.

Ian


_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

Reply via email to