3 ms·
Yep. I could imagine a deterministic method of just sending the executable + changed pages. Then load the program in the same way on the other machine, and then
by fwsgonzo 2y ago
Yep. I could imagine a deterministic method of just sending the executable + changed pages. Then load the program in the same way on the other machine, and then apply the changed pages. It would be a minimal transfer. Thread state can also be migrated, but Linux-kernel stuff like FDs cannot or at least, that's not my area of expertise!
- vidarh 2y agoThere was Condor for this[1], a couple of decades ago. Condor would checkpoint the process and restart it on another machine entirely user-level (but requiring processes to link to their library) by continuing to forward system calls. It of course had plenty of limitations, and some of their decisions would be considered serious security risks now (e.g. they intercept open() and record the name, and assume that its safe to reopen a file by the same name after migration), but it was an interesting system. I think migrating cooperating processes would be fairly simple, and the big challenge is rather to decide on the right set of tradeoffs. [1] https://chtc.cs.wisc.edu/doc/ckpt97.pdf https://chtc.cs.wisc.edu/doc/ckpt97.pdf
- fwsgonzo 2y ago> the big challenge is rather to decide on the right set of tradeoffs Agreed. That's a good way to sum it up.
- conradev 2y agoYeah, that would be very cool! With a read-only operating system that is identical across machines (i.e. NixOS or Silverblue), you would only have to send the dirty pages, too!