Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The approach of check-pointing computation such that it is restartable sounds similar to a time-traveling debugger, like rr or WinDbg:

https://rr-project.org/

https://learn.microsoft.com/windows-hardware/drivers/debugge...

Some Googling found Checkpoint/Restore In Userspace, or CRIU. It’s like Flawless, but for Linux processes:

https://criu.org/Main_Page

I bet that Flawless can make better guarantees about reliability due to constraints of the WebAssembly sandbox.



Our time travel debugger at undo.io also uses a similar approach.

But the world is different for time travel debug, in that you can replay the whole history of the recorded execution (my understanding is that this is not required for Durable Execution) but you cannot resume the real process.

In fact, since it's used for capturing faults, you wouldn't generally want to resume execution - it's going to fail the same way (whereas a higher level restart framework might allow you to throw away some bad state and continue the computation - at the cost of not being able to precisely duplicate the bug).


There's also an implementation of time-traveling debugging in Qenu[0], which sounds really nice but does not actually work reliably on larger use-cases.

[0] https://www.linux-kvm.org/images/d/d0/02x06b-DeterministicRe...


Docker[0] supports CRIU, but it has always been experimental. I always assumed it would be a valuable tool for test cases, but I never used it.

[0]: https://docs.docker.com/engine/reference/commandline/checkpo...


I have been looking for an excuse to use RR, a problem that would have been solved much easier if I had it. I haven't yet found one.

Does anyone here have experience with it? Maybe know the sort of problems RR excels at helping find?

EDIT: And is there some way to still use a better visual overlay a-la Visual Studio or QTCreator?


I saw a tech demo somewhere that showcased that Qt applications on wayland could be checkpointed and restored with CRIU.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: