Erlang distribution with redundant network
Loïc Hoguin
essen@REDACTED
Thu Apr 9 17:22:28 CEST 2020
Only if you setup a port that dist will use directly. You can also setup
a process that will communicate with dist via the erlang:dist_ctrl_*
functions and that process can use SCTP or any other means to
communicate with other nodes. This is what ssl is doing for example.
Cheers,
On 09/04/2020 16:09, Tristan Sloughter wrote:
> I did at one point. But it ended when I learned any transport for distribution must have ERL_DRV_FLAG_SOFT_BUSY flag set for the port driver. SCTP does not which causes a badarg here https://github.com/erlang/otp/blob/maint/erts/emulator/beam/dist.c#L4017-L4018
>
> On Thu, Apr 9, 2020, at 04:54, Ulf Wiger wrote:
>> The idea of using SCTP for Distributed Erlang has been discussed off
>> and on, but I'm not aware of anyone who has actually done it in anger.
>>
>> https://groups.google.com/d/msg/erlang-russian/42mEmwjtiSk/ieX6k0OScwAJ
>>
>> If you would do it that way, i.e. using a multi-homing transport
>> protocol, you would be able to use all the standard components, like
>> mnesia and global.
>>
>> BR,
>> Ulf
>>
>> Den tors 9 apr. 2020 kl 12:06 skrev Mikhail Pustovalov <mpustovalov@REDACTED>:
>>>
>>> Hi,
>>>
>>> I have two nodes connected via two separate networks and I would
>>> like to use this redundancy.
>>> The usage is obvious: assign one of the interfaces a primary role and use
>>> it while it is up and automatically fall back to the secondary when it goes down.
>>> Also I would naturally want to monitor both connections.
>>> Does Erlang support this out of the box somehow? And if not are there
>>> any reasonably mature 3rd party libraries available? Or is my only option
>>> is to roll out my own TCP/UDP based solution (this way I assume I
>>> would not be able to use standard modules like 'global' AND take
>>> advantage of this redundancy)?
>>>
>>> Thanks.
>>>
>>
--
Loïc Hoguin
https://ninenines.eu
More information about the erlang-questions
mailing list