What's a POS??
Chris Bitmead uid(x22068)
Chris.Bitmead@Alcatel.com.au
Fri, 09 May 1997 14:01:07 +1000
> It seems in this discussion about POSes, everyone is assuming that a
>PSO is whatever they've always assumed a POS was. The rest of us
>haven't the foggiest idea what YOU mean by a POS. So here's some
>questions about POSes that I'd like you guys to answer so we can
>figure out what your POS is.
>
>Is a POS completely transparent to the programmer and user?
It is 99% transparent. There might be a commit API. There might be
locking APIs. In the general case it is transparent.
>The old
>Xerox Interlisp machines used something like this. You just did your
>mornal lisp things and then the system saved everything for the next
>time you came back around. This is the dumplisp/checkpoint approach.
Not really the same thing if I understand you right. You are talking
about saving the whole state of the system as one big lump. A POS only
stores changed objects, and new objects.
>How fine a granularity does your checkpointing have?
Either object level granuluarity or page level depending on the
implementation, where a page is dependant on hardware size of pages.
>How do you handle
>different things wanting different granularities?
I'm not quite sure what you're thinking of here, but I hope the
explanation below answers your question.
>If not the above, then does the object builder or the object user
>determine if the object is persistant?
It is persistent if it is connected to something else that is
persistent. There is a single *root* that everything persistent is
ultimately connected to.
>Ie, does the object have to be
>a special kind of object (maybe a CLOS object with a particular base
>class)
No base clas.
>or can I tell the POS system to "save" any ole object?
Yep.
>If it's the latter, how do you determine where the object ends and
>some other object begins? If you aren't careful, you're going to
>implement dumplisp. :-)
Transient objects will not be pointed to by any persistent objects,
thus they will not be saved.
There might be an option to say that a certain slot of this particular
CLOS class is not saved. That is not the normal case however.