Concurrency Erlang并发/分发—当时与现在

Concurrency Erlang并发/分发—当时与现在,concurrency,erlang,distributed-computing,Concurrency,Erlang,Distributed Computing,至于一个erlang系统在实际(而非理论)层面上可以有多少个节点的问题,我看到的答案从大多数情况下的100个到一个表示“最多150-200个”的答案 看到这一点我很惊讶,因为erlang不是为实现电信网络、电话交换机等而设计的大规模并发和分发吗?如果是这样的话,您是否会假设(我知道我是这样做的)这将在一个系统中包含100多个节点(我总是假设成百上千个) 我想我的问题是:当这些老电信公司使用erlang时,什么被认为是“大规模并发/分发”?他们通常会连接多少台机器,运行erlang并进行并发 只是

至于一个erlang系统在实际(而非理论)层面上可以有多少个节点的问题,我看到的答案从大多数情况下的100个到一个表示“最多150-200个”的答案

看到这一点我很惊讶,因为erlang不是为实现电信网络、电话交换机等而设计的大规模并发和分发吗?如果是这样的话,您是否会假设(我知道我是这样做的)这将在一个系统中包含100多个节点(我总是假设成百上千个)

我想我的问题是:当这些老电信公司使用erlang时,什么被认为是“大规模并发/分发”?他们通常会连接多少台机器,运行erlang并进行并发


只是好奇,谢谢你的回答。

你得到了答案,对于一个节点集群,使用当前技术,实际限制是100到200个节点:因为我们说的是几乎透明的分布。文档中解释了此限制的原因,简单地说是由于每个节点的相互调查,因此应用程序可用的带宽和资源正在越来越快地减少

要拥有更多节点,必须对集群和/或单个节点之间的协作进行编程。这些库提供了一些实现这一点的工具,但它当然不是透明的,也不是特定于erlang的


出于安全原因,还建议避免使用大型集群:现在在erlang集群中,您可以在任何其他节点上不受限制地执行任何操作。

这取决于您的需要。这取决于许多你没有具体说明或定义的事情,我怀疑如果你详细说明了一个“真实”的答案,你会失望,因为它没有用处。这就是为什么这类问题通常不被鼓励的原因

你不会说“这些老电信公司何时使用Erlang”是指什么日期范围。他们仍然使用它(在爱立信之外,爱立信从未有过牵引力,爱立信也从未比现在更多地使用它)。下面是一段视频,他们在视频中谈论如何在自己的服务器上使用Erlang:

你不会说出你所说的“Erlang系统”是什么意思。那是一台机器吗?Erlang启动时没有SMP支持(这就是您要问的时间范围吗?)。你是说并发进程吗

这是使用
net\u内核:connect\u node/1
的单个集群吗?如何定义集群?默认情况下,Erlang簇是一个完整的网格。这将根据网络和机器接口的性能限制限制最大大小。但是你可以连接一个链中的节点,这样就没有限制了。但是,如果您将其计算为一个集群,为什么不在使用自己的TCP连接而不仅仅是net_内核时计算它呢。互联网上有很多爱立信路由器,因此我们可以将互联网视为一个“系统”,其中许多组件路由器使用Erlang


在我链接的视频中,你可以看到在21世纪初,爱立信的SGSN产品是一个单一的盒子(包含多台机器),可以同时为数千部手机提供服务。我们可以假设每个连接的电话都有一个Erlang进程来管理它,加上可忽略不计的系统进程。

此网站的目的更多是帮助人们找到解决实际问题的方法。对于一般性讨论,我认为还有其他地方可以这样做。为了建立自己对OTP环境的看法,我制作了一些应用程序,阅读文档(一开始就很好),并试图找出一些大型应用程序(如RiakThis)的工作原理。这不是“一般性讨论”。我问了一个问题,我没有征求讨论。我讨厌这种倾向,即关闭任何涉及大致表现数字的问题。当然,这将取决于很多事情,但一切都是如此。对于这个并非“完全基于观点”的问题,完全有可能给出有用的答案。@Enno-我100%同意。我在这里也遇到了这样的情况:有趣的是,有人完全理解了我想要的,并完美地回答了我。我认为这个问题最好在这里提议的更具体的QA站点中解决:如果你喜欢这个提议,在那里问你的问题,并遵循建议也许你可以通过给出明确的例子来改进你的答案,目前的形式似乎有点太笼统了。你是说,在过去,爱立信或任何人会在100-200台机器之间运行,连接在一起实现电信交换,而不是什么?我总是设想成千上万的人,这就是我为什么要问的原因。起初我详细说明了很多,但问题被搁置了。具有讽刺意味的是,通过删除大部分具体内容,问题被贴出来了。日期范围简单地说是“回到Erlang发明的时候”,“Erlang系统”是他们所拥有的通用系统,可以完成他们发明Erlang的目的。你说Erlang当时没有SMP支持。那么,请告诉我,为什么所有关于它的“并发性”的喧嚣呢?首先,因为计算机之间的并发性。第二,因为即使你只有一个内核(所以从技术上讲,没有什么是并发的),线程仍然非常困难,每个人都把它搞砸了。计算机。。。你是说Erlang集群?当然,我同意线程的观点。是的,一个Erlang集群。如果您不关心网络、内存和处理器缓存的细节,那么单个多处理器机器和多个单处理器机器集群之间没有太大的区别。