[Glass] List and Fast list instances

Martin McClure martin.mcclure at gemtalksystems.com
Fri Dec 10 11:46:02 PST 2021


Hi Bruno,

The list instances operations will find any object that is in the 
repository that has not been declared dead by the Atomic Promote to Dead 
step of garbage collection following a markForCollection. 
Instance-listing operations do not verify that there is a live path from 
the persistent root; only markForCollection operations do that 
considerably more expensive computation.

So in your example, I'd expect object1 to be reliably included in the 
result set of 4.

This would be true even if a markForCollection was performed between 3 
and 4. The markForCollection would identify object1 as possibly dead, 
but session 1, being still logged in and holding object1 in memory, 
would vote object1 down during voting, so object1 would never be 
promoted from possible dead to dead.

Regards,
-Martin

On 12/10/21 10:34, bruno buzzi brassesco via Glass wrote:
> Hi,
>
> In the following situation:
>
> 1) Session1 removes a persistent Object (object1) from a collection 
> (the collection was the only reference to the Object)
> 2) Session1 still hold the persistent Object (object1) in memory (so 
> it can be re-attached to the persistent root)
> 3) Session1 commits or checkpoint
> 4) Session2 login & execute listInstances: or fastListInstances:
>
> Does object1 will be included on the result set of 4) ?
>
> Because object1 is unattached to the persistent root but is still an 
> object on the repository.
>
> I did not find anything in the methods comments, but i guess object1 
> is excluded from the result set...
>
> regards,
> bruno
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> https://lists.gemtalksystems.com/mailman/listinfo/glass




More information about the Glass mailing list