5 ms·
Does anyone have any insight into how Orleans handles failure? The only mentions I found in the documentation suggest that "grains cannot fail", which seems fai
by tonyg 12y ago
Does anyone have any insight into how Orleans handles failure? The only mentions I found in the documentation suggest that "grains cannot fail", which seems fairly odd to me. What about exceptions? Can grain state become corrupted? How does the system recover? Is there anything like Erlang's links or monitors here? Are supervisors relevant at all in this system?
- sudioStudio64 12y agoThere was a build 2014 session on how it works...it was pretty in depth. The video is on channel 9.
- us0r 12y agoI couldn't find the original but this gets into it a bit: Using Orleans to Build Halo 4’s Distributed Cloud Services in Azure http://channel9.msdn.com/events/Build/2014/3-641 http://channel9.msdn.com/events/Build/2014/3-641
- SergeyBykov 12y agoIn Orleans an actor cannot physically fail, just like an object in a process cannot fail. If an unhandled exception is thrown by actor code, the runtime will deliver the exception to the caller and break the TPL task of the call. Actor code is free to logically fail, e.g. by catching an exception, detecting an internal inconsistency, etc., and can handle such a case any way it wants. For example, it can set an internal failure flag and/or ask runtime to deactivate it immediately. I guess it's a bit of a philosophical question - what is considered a failure. Orleans doesn't impose its own definition of that on actors.