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
When restarting, we currently preload 50% of max vats online, starting with static vats then dynamic vats in the original creation order. This is most likely the wrong set of vats, which will result in the first few runs to be potentially slower than they could be had the process not been restarted.
This is particularly a problem if the node restarted is a validator and it doesn't manage to reload all needed vats by the time it catches up with the chain: it will incur a slow execution during a voting block, and will likely miss the voting period, resulting in missed rewards.
Description of the Design
Cache the list of paged vats in the non consensus section of the swing-store and page back all vats from that list (up to maxVatsOnline) when restarting. If the list is empty or shorter than 50% of max vats online, heuristically preload using the current logic. It would be nice to be able to somehow query transcripts to figure out which vat was most recently used, but transcript don't currently include any shared crank data.
Security Considerations
None. We do run the risk of creating a more homogeneous network while not officially putting the homogeneity of which vats are paged in within consensus. If we ever introduce a bug in the restart logic which affects consensus, it may be more difficult to detect as the nodes would be less likely to diverge because of restarts.
Scaling Considerations
We will likely pay a higher restart time by paging more vats it, but in general it's better to pay these kind of execution costs upfront.
Test Plan
TBD
Upgrade Considerations
Requires a new chain software but this should not affect consensus data in any way.
The text was updated successfully, but these errors were encountered:
What is the Problem Being Solved?
When restarting, we currently preload 50% of max vats online, starting with static vats then dynamic vats in the original creation order. This is most likely the wrong set of vats, which will result in the first few runs to be potentially slower than they could be had the process not been restarted.
This is particularly a problem if the node restarted is a validator and it doesn't manage to reload all needed vats by the time it catches up with the chain: it will incur a slow execution during a voting block, and will likely miss the voting period, resulting in missed rewards.
Description of the Design
Cache the list of paged vats in the non consensus section of the swing-store and page back all vats from that list (up to maxVatsOnline) when restarting. If the list is empty or shorter than 50% of max vats online, heuristically preload using the current logic. It would be nice to be able to somehow query transcripts to figure out which vat was most recently used, but transcript don't currently include any shared crank data.
Security Considerations
None. We do run the risk of creating a more homogeneous network while not officially putting the homogeneity of which vats are paged in within consensus. If we ever introduce a bug in the restart logic which affects consensus, it may be more difficult to detect as the nodes would be less likely to diverge because of restarts.
Scaling Considerations
We will likely pay a higher restart time by paging more vats it, but in general it's better to pay these kind of execution costs upfront.
Test Plan
TBD
Upgrade Considerations
Requires a new chain software but this should not affect consensus data in any way.
The text was updated successfully, but these errors were encountered: