[elephant-ticket] Re: #25: Class schemas

elephant elephant-devel at common-lisp.net
Wed Apr 11 18:10:40 UTC 2007


#25: Class schemas
--------------------------+-------------------------------------------------
  Reporter:  ieslick      |       Owner:  ieslick      
      Type:  enhancement  |      Status:  new          
  Priority:  critical     |   Milestone:  Release 0.9.1
 Component:  system-wide  |     Version:               
Resolution:               |    Keywords:               
--------------------------+-------------------------------------------------
Old description:

> Enhance support for classes.  Save class schemas to disk for comparison
> purposes. Verify class that is in-memory on first readout from store.
> Can also be used for standard-objects to compress serialization storage?
> (No slot names)
>
> Add an oid->class table and allow class versioning (fwd ptr to latest
> class) to enable lazy updates via update-instance-for-changed-class (how
> to handle 3 versions?).  Perhaps we have a universal persistent slot for
> instances that has a pointer to the class object so that class ids are
> stored close to slot values and avoiding the traversal of a different
> btree.

New description:

 Enhance support for classes.  Save class schemas to disk for comparison
 purposes. Verify class that is in-memory on first readout from store.  Can
 also be used for standard-objects to compress serialization storage?  (No
 slot names)

 Add an oid->class table and allow class versioning (fwd ptr to latest
 class) to enable lazy updates via update-instance-for-changed-class (how
 to handle 3 versions?).

 Perhaps we have a universal persistent slot for instances that has a
 pointer to the class object so that class ids are stored close to slot
 values and avoiding the traversal of a different btree.  But how do we
 find all objects if we need to?  (extents?)

 This would also allow us to trivially implement forwarding pointers
 (dynamically modify class reference of object without re-serializing it).

 We could also implement extents; simply iterate over all valid instances
 in the DB by iterating over the oid->class btree to, for instance, ensure
 that update-instance-for-class is properly applied.

-- 
Ticket URL: <http://trac.common-lisp.net/elephant/ticket/25>
elephant <http://common-lisp.net/project/elephant>
elephant


More information about the elephant-ticket mailing list