[elephant-devel] Re: Persistent indexing after restart

Ian Eslick eslick at csail.mit.edu
Sun Apr 30 18:42:39 UTC 2006


Pierre-François,

That's actually fundamental to the current design of elephant.  Class
definitions themselves are not persistent, merely the instances.  When
the lisp image starts up, it loads in a new class definition which does
not specify indexing.  As far as the image knows, the current class is
not indexed.  When you open a store, there is an index stored there but
without scanning the class root, finding all indexed classes and then
updating all definitions there's no way to know whether the user wants
to stick with the most recent defclass definition, or with the
underlying persistent store.

There are a couple of ways to approach fixing this:
1) We could add an option to open-store which specified 'reconnecting'
to indexed classes
2) A check when you request a class indexing operation that result in an
interactive error to the user requesting clarification (annoying to do
for lots of classes though)
3) Go ahead an implement persistent class definitions; this means
figuring out how to resolve whether the store's defclass or image's
defclass is dominant upon an open-store operation.

I prefer, for now, to stick with the explicit defclass option - the
defclass statement in your source code is then the golden standard for
what is or is not indexed and upon connecting to a store that definition
updates the store's indexes.

I'm open to alternatives if you want to provide a clear specification of
the functionality you want under all cases.  I don't know when I"ll get
around to implementing such a spec myself, but would be happy to support
you if you want to go in and try to make the changes yourself!

Ian

Pierre-François Gomez wrote:
> On 30/04/06, Ian Eslick <eslick at csail.mit.edu> wrote:
>> > So using the second form ("global" class index) is no longer an issue
>> > for me, but it may be for others.
>> >
>> Are you saying that the :index t class option is working for you now?
>
> Unfortunately, not completely : it works if I manually say
> "enable-class-indexing" after the restart : it then successfully
> retrieve the old index (I can re-send you the transcript if you didn't
> receive it).
>
> I was merely saying that it wasn't annoying for me anymore, as I now
> use the other form : this doesn't really solve the problem, though :)
>
> -- Pierre-François



More information about the elephant-devel mailing list