Menu

#3 in-place server version changes

open
nobody
1
2012-12-15
2005-06-16
No

In-place server version changes -- I'd like to see all
the data that the MUCK generates dynamically be stored
somewhere, then an exec() called on the new version of
the fbmuck executable, and the new fbmuck read the
information from the storage. (Since descriptors don't
necessarily get closed when a call to exec() occurs,
that means that the players can still stay connected.)

The data that would need to be stored for such an
undertaking would be a fairly large set. At a minimum,
we'd need to preserve the following:
the descriptor_data
the state of the MUF timequeue
the state of the MUF event queue
The state of the frame for every running frame
(including all vars, lvars, svars, try/catch info, etc)
(If possible, don't include the bytecode for the
compiled programs -- the new server should compile the
programs that are currently running, based on its
possibly-new MUF primitive tables, since the state of
the frame includes the position of the next code for
the program.)
The SSL state of each connection

It should be possible, and it would help get rid of
annoying "We're going down to upgrade the server!"
messages. (Plus, I think it'd just be damned cool. :) )

Discussion

MongoDB Logo MongoDB