All help topics · Link to this topic
Showing help on 'checkpoint-programming'
The MOO checkpoint is created by a UNIX system fork() call, which creates a separate process but with the same memory image as the running the MOO. That process then writes that information into a database.The act of calling this separate-but-equal process is intrinsically laggy because the MOO server memory is already saturated by the running version of the MOO. Adding an equal size process to the mix results in heavy swapping between memory and harddrive. It would therefore be considered wise not to run any processor or memory intensive MOOcode during checkpoint.
If you wish to alter any of your code to avoid executing during a checkpoint, you can check the value of $login.checkpoint_in_progress, which returns 1 during checkpoint and 0 otherwise. This value is itself toggled by the verbs $sysobj:checkpoint_started and $sysobj:checkpoint_finished.
Also see help on: dump_database() @dump-database checkpoint