[elephant-devel] Newbie question: Index on collections

Ian Eslick eslick at media.mit.edu
Sat May 3 14:21:42 UTC 2008


Thanks Alex.

The ports of CL-SQL and Postmodern are the primary things holding up  
the release process right now.  If there are major issues there, I may  
have to refactor my implementation.  It would be really helpful to get  
an ETA on a port and get the main and unstable branches integrated.  I  
just pulled all new patches from the main branch into the unstable  
branch which, fortunately, wasn't too much work.  The BDB store tests  
pass for me locally.

My goal is to build momentum towards a 1.0 release given that the  
current functionality seems to be getting good traction and is holding  
up well under real-world use.  That will give us a stable platform  
that people can depend on being kept up to date with bug fixes and  
also give us some freedom from developing any major new features for  
awhile.  To this end, I'd like to produce a beta candidate (1.0b1) as  
soon as the back-ends are ported and we've updated the test suite a bit.

The upgrade should be pretty easy, I tried to touch the data store API  
as little as possible.  Here are some pointers from my e-mail of  
3/23/08:

FYI - The backend updates will require:

UPDATE STORE CONTROLLER (trivial)
- Initialization of store-controller base class slots with btrees that  
have static oids
(schema-table :reader controller-schema-table
		 :documentation "Schema id to schema table, an indexed btree")
(instance-table :reader controller-instance-table
		  :documentation "Contains indexed btree of oid to class ids")
(index-table :reader controller-index-table
	       :documentation
	       "This is another root for class indexing that is
	       also a data store specific persistent btree instance
	       with a unique OID that persists between sessions.
              No cache is needed because we cache in the class slots.")

BOOKKEEPING FOR SCHEMA IDS (should be easy)
- next-cid (sequence of schema id values)
- specialize oid->schema-id (accounts for reserved oids for the fixed  
btrees above)
- default-class-id (map class typename to class schema id for reserved  
types)
- default-class-id-type (map class schema id to class type name for  
reserved types)

DUPLICATE BTREES (this is the only part that may be tricky)
- Implement duplicate btrees (allow duplicate keys ordered by key,  
value)
- add remove-kv-pair operator to augment remove-kv

For examples of all of the above see bdb-controller and bdb-collections.

I may be forgetting something, but these are the main items.


Thank you,
Ian

On May 3, 2008, at 10:02 AM, Alex Mizrahi wrote:

> IE> but we haven't had any work done on this in Postmodern yet.
>
> by the way, are there any people waiting for postmodern being  
> ported, or is it causing any problems if it's not ported yet (i.e.  
> delaying release or something)?
>
> because for now projects i'm working on seem to be working more-or- 
> less good as they are,
> and there is no big need to move them onto new elephant version --  
> there are other things to do.
>
> but if some people are waiting for it, i can at least check how hard  
> this porting will be, and actually port if it will be easy.
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel




More information about the elephant-devel mailing list