[elephant-devel] Migration and garbage collection

Ian Eslick eslick at media.mit.edu
Sat Mar 22 15:47:19 UTC 2008


Good suggestion!

I implemented this via the original :index class option which is 't'  
by default but can also be 'nil' (asserts an error on get-instances-by- 
class/map-class) and ':weak' which inhibits copying class elements  
that aren't reachable from root during migration, but allows map-class  
for any non-deleted class.  When we have an online GC solution map- 
class will operate with the same semantics as weak arrays/hashes.

Ian

On Mar 22, 2008, at 8:20 AM, Henrik Hjelte wrote:
>
>
> On Sat, Mar 22, 2008 at 5:11 AM, Ian Eslick <eslick at media.mit.edu>  
> wrote:
> In the past, we've been able to reclaim instances that were not
> reachable from the root or in an indexed object.  However, with the
> new schema model, all persistent objects are reachable implicitly by
> being in the store's oid->class table (i.e. a get-instances-by-class
> now works for any persistent class).  Thus to reclaim storage you have
> to explicitly drop an instance.
>
> Is this good or bad?  It's nice to always be able to reach instances
> of a class, but for reclamation we could have a class option which is
> something like :weak-class-index t.  That is instances may be
> reachable by get-instances-by-class but it's not guaranteed after a gc
> or migration.
>
>
>
> Anyone have thoughts on this?  How should we define reachability in
> this new model?
>
> I think this is a good idea. In some cases you might *not* want the  
> instances to be reached, there could be an option for that as well  
> such as :class-indexed nil.
>
> /Henrik
>
> _______________________________________________
> 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