You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As mentioned in #3132 , a future task is to have the virtual object manager maintain refcounts of all the vrefs that appear inside the (offline) virtualized data. For vrefs that map to Remotables, the VOM retains a strong reference to the Remotable, to ensure that future unserialization can retrieve the object. However the current implementation has no way to ever remove a Remotable from this set.
This could occur because someone overwrites the last virtual-object state property that used to reference the Remotable, or because that virtual object itself became unreachable and got collected. It could also occur when a makeWeakStore() instance had an entry that referenced the Remotable, but that entry was .deleteed or overwritten, or because the entire WeakStore became unreachable and collected.
The task is to implement refcounts on the virtualized data, keep track of what keeps the Remotable's vref alive, and react to that refcount dropping to zero
A closely related task is to use those same refcounts to delete virtualized data, when the corresponding vref is no longer referenced by any other virtualized data, nor are there any live Representatives for it.
Both of these tasks are safe to defer for a while, because we aren't putting very much data in these virtualized structures, and so far the only use case is one Brand per Issuer, which is held strongly by the vat anyways.
refs #3106 but is out of scope (deferred for a later phase)
The text was updated successfully, but these errors were encountered:
What is the Problem Being Solved?
As mentioned in #3132 , a future task is to have the virtual object manager maintain refcounts of all the vrefs that appear inside the (offline) virtualized data. For vrefs that map to Remotables, the VOM retains a strong reference to the Remotable, to ensure that future unserialization can retrieve the object. However the current implementation has no way to ever remove a Remotable from this set.
This could occur because someone overwrites the last virtual-object
state
property that used to reference the Remotable, or because that virtual object itself became unreachable and got collected. It could also occur when amakeWeakStore()
instance had an entry that referenced the Remotable, but that entry was.delete
ed or overwritten, or because the entire WeakStore became unreachable and collected.The task is to implement refcounts on the virtualized data, keep track of what keeps the Remotable's vref alive, and react to that refcount dropping to zero
A closely related task is to use those same refcounts to delete virtualized data, when the corresponding vref is no longer referenced by any other virtualized data, nor are there any live Representatives for it.
Both of these tasks are safe to defer for a while, because we aren't putting very much data in these virtualized structures, and so far the only use case is one Brand per Issuer, which is held strongly by the vat anyways.
refs #3106 but is out of scope (deferred for a later phase)
The text was updated successfully, but these errors were encountered: