<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 3 Aug 2011, at 15:16, Mihai Balea wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br>On Aug 2, 2011, at 3:11 PM, Ulf Wiger wrote:<br><br><blockquote type="cite"><br></blockquote><blockquote type="cite">On 2 Aug 2011, at 17:00, Mihai Balea wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">Still, generally speaking, what would it take to add netsplit handling to gproc? It would be nice to be able to use some of gproc advanced features. Besides, I believe the initial intention for gproc was to be a replacement for global, and it cannot fill that role until it handles netsplits.<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">The first step is to make gen_leader detect netsplits.<br></blockquote><br>I suspect netsplit detection is not the main issue here, but rather what happens after the split is resolved and the dictionaries must be reconciled.<br></div></blockquote><br></div><div>Well, sure, but if gen_leader (as is currently the case) doesn't even detect netsplits and does something sane at the leader election layer, there really isn't much gproc can do (at least not much that could be called "elegant"). But naturally, once gen_leader has detected a netsplit and ordered all candidates into some safe mode, it needs to give the callback module a chance to reconcile the state.</div><div><br></div><div>The approach would be similar to my old 'locker' contribution (<a href="http://forum.trapexit.org/viewtopic.php?p=30186#30186">http://forum.trapexit.org/viewtopic.php?p=30186#30186</a>), but perhaps gproc could do with some vector clocks as well? I usually borrow that stuff from the riak codebase. :)</div><div><br></div><div>BR,</div><div>Ulf W</div><br><div>
<div>Ulf Wiger, CTO, Erlang Solutions, Ltd.</div><div><a href="http://erlang-solutions.com">http://erlang-solutions.com</a></div><div><br></div><br class="Apple-interchange-newline">
</div>
<br></body></html>