[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