Closed gootik closed 6 years ago
Curious: how is Kubernetes handling net splits? And how can we apply that to distributed Erlang?
It uses etcd
which uses an implementation of Raft
to ensure correctness when a partition occurs. I doubt upstream would merge an implementation of some consensus algorithm to use in global. There's a lot of latency penalties for using consensus, and sometimes you don't need to pay them.
For that matter, using global itself you pay a lot of latency penalties, so honestly the whole node-to-node communication pathway (imo) ought to be augmented to use straight up TCP (no epmd or other intermediaries)
Interesting, thanks! Maybe there already are some lib that brings etcd
into the BEAM as a 'global' module.
At 2600Hz we had a similar thing in the form of gen_listener
so that nodes could talk through AMQP and may be federated.
DATE (yyyy/mm/dd)
2018/04/20
CATEGORY (article/library update/announcement/OTP/employment/event)
article
DESCRIPTION
This article talks about how Erlang teaches you to think about distributed systems. It also, briefly, compares Kubernetes (as a distributed system) vs. Erlang VM.
LINK
https://blog.kenforthewin.com/what-erlang-taught-me-about-distributed-systems/
AUTHOR NAME
Kenny Bergquist
AUTHOR TWITTER
kenforthewin92