This video describes how GemStone Smalltalk modifies an existing object. The object is first read into local memory. The modifications take place on a local copy of the object so that the original remains unchanged so that other sessions keep a consistent view. This explains how we can have multiple versions of an object. The obsolete versions of the object are called “shadow objects” and the page on which they are stored are called “shadow pages.” Each transaction creates a new object table.
This video describes how GemStone Smalltalk dereferences an object. If it has never been committed to the persistent storage, then it can be deleted by the local, in-memory garbage collection. If it has been referenced from a persistent root in a transaction, then it can only be deleted by a repository-wide garbage collection process.