Re:Local State Is Poison (2012)
by stcredzero on Friday December 27, 2013 @01:55PM
(#6972025)
What, and why would you want to upgrade during a loop?
VisualWorks Smalltalk VMs had this ability, provided you were a bit careful about how you modified the system. The system would update atomically, and if you were doing things like adding instance variables that safely defaulted values, the system could update in the middle of transactions, then complete them with the new code base. There was the caveat the adding an instance variable to a class meant that every instance of the class basically had to be recopied with the new slot, which could potentially pause the VM for a significant span of time while it performed this operation.
There are embedded RTOS that have similar capabilities. Sometimes, you just want to get very close to zero downtime.
VisualWorks Smalltalk VMs had this ability, provided you were a bit careful about how you modified the system. The system would update atomically, and if you were doing things like adding instance variables that safely defaulted values, the system could update in the middle of transactions, then complete them with the new code base. There was the caveat the adding an instance variable to a class meant that every instance of the class basically had to be recopied with the new slot, which could potentially pause the VM for a significant span of time while it performed this operation.
There are embedded RTOS that have similar capabilities. Sometimes, you just want to get very close to zero downtime.