2013-12-13 48 views
1

至於多少個節點可以在一個實際(而不是理論)級別上的erlang系統的問題,我看到的答案在大多數情況下從100到一個答案其中規定「150-200最大」。Erlang concurrency/distribution - then vs. now

看到這個,我感到很驚訝,因爲erlang並非爲了實現電信網絡,電話交換機等而設計的大規模併發和分佈?如果是這樣,你會不會假設(我知道我是),這將需要一個系統中超過100個節點(我總是假設有數百個,可能是數千個)?

我想我的問題是:當這些老電信使用erlang時,什麼被認爲是「大規模併發/分佈」?他們通常會連接多少臺機器,運行erlang並進行併發?

只是好奇,並感謝任何答案。

+2

本網站旨在幫助人們找到解決其實際問題的方法。對於一般性討論,我認爲還有其他地方可以這樣做。爲了在OTP環境上構建我自己的觀點,我已經編寫了一些應用程序,閱讀文檔(http://learnyousomeerlang.com/content真的很好開始),並試圖弄清楚如何工作一些大的應用程序,如Riak – Pascal

+2

這不是' 「一般性討論」。我問了一個問題,我沒有徵求討論。 – user1992634

+4

我討厭這個傾向,關閉任何涉及大球表演數字的問題。當然這取決於很多事情,但所有事情都是如此。對這個不完全基於意見的問題給出有用的答案是完全可能的。 –

回答

2

對於具有當前技術的節點集羣,您得到了答案,實際的限制是從100到200個節點:因爲我們講的是幾乎透明的分佈。文檔中解釋了這種限制的原因,並且很少有文字是由於每個節點相互調查所致,因此可用於您的應用程序的帶寬和資源正在越來越快地減少。

要獲得更多節點,您必須編制羣集和/或單個節點之間的協作。圖書館提供了一些設施來做到這一點,但它當然不透明,而不是erlang特有的。

爲了安全起見,建議避免使用大型集羣:今天在erlang集羣中,您可以在任何其他節點上進行任何操作,而不受任何限制。

+0

也許你可以通過給出明確的例子來改進你的答案,但它現在的形式似乎有點過於籠統。 – inf

+0

您是說,在過去的日子裏,愛立信或誰會在100-200臺機器之間運行,以實現他們的電信交換,而不是什麼?我總是設想成千上萬,這就是我問的原因。 – user1992634

1

這取決於。它取決於很多你沒有指定或定義的東西,我懷疑如果你足夠詳細地說明了一個「真實」的答案是可能的,那麼你會感到失望,因爲它不會有用。這就是爲什麼這類問題通常不受歡迎的原因。

你不會說什麼日期範圍你的意思是「當這些老電信使用Erlang」。他們仍然在使用它(它從未在愛立信以外獲得過牽引力,愛立信從來沒有像現在這樣使用過它)。這裏有一個關於他們在使用Erlang的視頻SGSN-MMEhttp://vimeo.com/44718243

你不說你的意思是「Erlang系統」。這是一臺機器嗎? Erlang在開始時沒有支持SMP(是你在詢問的時間框架?)。你的意思是併發進程?

這是一個單一的集羣使用net_kernel:connect_node/1?你如何定義一個集羣? Erlang集羣默認情況下是一個完整的網格。這會根據網絡和機器接口的性能限制來限制最大尺寸。但是你可以連接一個鏈中的節點,然後沒有限制。但是如果你把它算作一個集羣,那麼爲什麼不使用自己的TCP連接來計數呢,而不是隻使用net_kernel的。互聯網上有許多愛立信路由器,所以我們可以將互聯網想象成一個「系統」,其中許多路由器都使用Erlang。

在我鏈接的視頻中,您可以看到,在21世紀初,愛立信的SGSN產品是一個盒子(包含多臺機器),可以同時服務幾千部手機。我們可能會假設每個連接的電話都有一個Erlang進程來管理它,再加上可以忽略不計的系統進程。

+0

我最初指定了很多,但問題被擱置了。具有諷刺意味的是,通過刪除大部分的特殊性,問題被公佈了。日期範圍簡直就是「當Erlang被髮明時」。一個「Erlang系統」是他們可以做任何事情的通用系統,無論他們發明Erlang做什麼。你說Erlang當時沒有SMP支持。那麼,爲什麼要告訴,所有關於它的併發性? – user1992634

+0

首先,因爲計算機之間的併發。其次,因爲即使你只有一個核心(並且技術上並沒有任何併發​​),線程仍然非常困難,每個人都會把它搞砸。 –

+0

併發之間。電腦......你的意思是一個Erlang集羣?當然我同意這個線程點。 – user1992634