is it safe to quit Squeak with an open session

Chris Muller asqueaker at gmail.com
Tue Mar 4 02:18:16 UTC 2008


If, by "closing Squeak", you mean an ungraceful termination via the
OS-Window exit or termination of the process:

 - Session resources remain in the server image until enough commits
by other sessions exceeds a threshold whereby the stale session
resources are reclaimed.
 - All uncommitted changes in the image are lost, of course.
 - The image restarts in its previous state.

If, by "closing Squeak", you mean gracefully using the World menu,
"quit" without saving:

 - Since open transactions must be aborted.  A (resumable) warning is
signaled if any session has an open transaction.
 - The session resources are cleaned up on the server.
 - Uncommitted object changes are persisted in the image file, of course.

If, by "closing Squeak" you mean using the World menu to "save and
quit", the following additions apply to the above:

 - While the image is sleeping on disk, many updates committed to the
persistent model are by other sessions are possible.
 - The image is restarted in its previous state, persistent objects
are throughout the image.  The existing MagmaSession instances are
still aware of those persistent objects, so it is able to establish a
new connection.
 - But the image state could be way behind the current state of the repository.
 - Therefore, beginning in release 41, the reconnection process also
includes a "super refresh", where every cached object is brought up to
date from the server.  This can add some time to the image startup
since, if a lot of objects are behind, their updates must be
downloaded.
 - All sessions which were connected when the image was saved will
startup in this way.

Regards,
 Chris
- Show quoted text -


More information about the Magma mailing list