[erlang-questions] Distributed Process Registry

Michael Truog mjtruog@REDACTED
Sun Feb 8 23:57:34 CET 2015


On 02/08/2015 02:09 PM, Roberto Ostinelli wrote:
>> in contrast with the CA (of global/gproc).
> Sorry I meant CP.
>
Yeah, this is a tricky one.  You are attempting to say global/gproc handles partitions, but they don't handle global state in a consistent way after a netsplit (e.g., unsplit with mnesia allows you to arbitrary resolve a different data after a netsplit).  Due to this lack of consistency it is incorrect to say global or gproc are partition tolerant.  Yes, they can handle a netsplit occurring, but they do not tolerate the failure in a consistent way.  The handling is ad-hoc, based on your specific use-case, which might as well be based on random numbers to pick which data is correct, so then that is leading to data loss.  The time spent resolving the netsplit causes availability problems, but I believe that is less significant than the partition tolerance short-comings, so I would rather look at them as CA systems, despite the fact others would disagree, since they do try hard to handle a netsplit, without handling the state involved. You can call it CP if it helps you sleep 
better at night.




More information about the erlang-questions mailing list