[elephant-devel] Lisp-only data store (prototype)

Ian Eslick eslick at media.mit.edu
Fri Feb 6 22:03:30 UTC 2009


Cursors are nice low level tools, for sure.  They also allows for more  
complex iteration over the index than the pure mapping function.  I'm  
hoping that we can hide most of these cases in the query system,  
eventually.  For 1.0 at least we'll be leaving them in and simply  
encourage most people to use the higher level abstractions.

However, for this example you can hack it up with map-inverted-index

(defun get-min-log-value (type) ;; type = { :min | :max }
    (map-inverted-index
       (lambda (x)
	(return-from get-min-log-value x))
       'log 'timestamp :from-end (when :max t)))

Ian




On Feb 6, 2009, at 4:21 PM, John wrote:

> As we're still learning Elephant, we are not currently using  
> cursors. However, one thing I'm thinking is that we will definitely  
> have the following scenario:
>
> We define a class for storing log information, which is timestamped  
> and we create an index on the timestamp. The purpose for this is so  
> that we could "easily" get the MIN and MAX timestamp from a list of  
> a few million objects. Without looking at the implementation of  
> cursors and just looking at the documentation, I think it would be  
> easier (and possibly more efficient) to set a cursor on the index  
> and get cursor-first and cursor-last, instead of having to map-index  
> and the entire set of millions of objects.
>
> Would that qualify as a reasonable need of cursors?
>
> Thanks
> JD
>
> On Thu, Feb 5, 2009 at 8:44 AM, Ian Eslick <eslick at media.mit.edu>  
> wrote:
> Would map functions, as described by leslie, accomplish the same thing
> with a little rewrite?
>
> I would say that we want some way for users of a current store in
> elephant-unstable to migrate to elephant-1.0 - we do have a solid set
> of postmodern users.  I'd be surprised if anyone is still using the
> original 0.9.1 - but let's give it a few days and see if anyone  
> shouts.
>
> If you like I can look at migration in 0.9.1, but it will be a little
> bit before I can get to it.
>
> Would it make sense to include gp-export into elephant proper or make
> it an easy option to load/use?  The online migration is a bit of a
> pain to maintain over certain changes to the way the stores work; it
> would be nice if we had a path that was less prone to error to bypass
> code for complex backwards compatibility in the future if needed.
>
> Ian
>
> On Feb 5, 2009, at 6:36 AM, Alex Mizrahi wrote:
>
> > IE> How many people currently directly use the Btree/cursor  
> interface?
> >
> > we use cursors to iterate through multiple sequences in order,  
> e.g. we
> > want, say 10 latest items that satisfy certain criteria, and
> > candidates
> > come from different indices.
> >
> >
> >
> >
> > _______________________________________________
> > elephant-devel site list
> > elephant-devel at common-lisp.net
> > http://common-lisp.net/mailman/listinfo/elephant-devel
>
>
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
>
> _______________________________________________
> 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