English 中文(简体)
语言与可扩展性之间的关系
原标题:Relation between language and scalability

我在埃兰社区网站Trapexit发表以下声明:

Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability.

我还记得,在其他地方,Twitter从鲁比拉转到了Schala,以解决可扩展性问题。

www.un.org/Depts/DGACM/index_spanish.htm 因此,我想知道方案拟定语言与可扩展性之间的关系是什么?

我认为,可扩展性仅取决于系统设计、例外处理等。 这是否是因为执行语言、图书馆或其他一些原因?

希望开明。 感谢。

最佳回答

埃尔兰在电信环境中得到高度优化,时间为5 9天左右。

它包含一套称为“检察官办公室”的图书馆,有可能在飞行申请中重载编码,而不必停止申请! 此外,还有监督模块框架,因此,如果某个单元失败,它就会自动重新启动,否则,如果不进入能够处理链条的监督模块,就无法逐步运作。

这当然也可以用其他语文。 在C++中,你可以重载机、载荷pl。 在沙尔,你可以重载模块。 在C#中,你可以装上手法,使用思考等等。

只是在埃尔兰建立这一功能,这意味着:

  • it s more standard, any erlang developer knows how it works
  • less stuff to re-implement oneself

尽管如此,各语文之间有一些根本差异,如某些语文被解释,有些则与按字母顺序排列,有些语言是本土汇编的,因此性能和类型信息的提供情况也有所不同。

灰尘在运行时间的图书馆周围有一个全球性的口译锁,因此无法使用SMP。

埃尔兰最近才有变化,以利用SMP。

总的来说,我赞同你的看法,即我认为,在建图书馆方面,差别很大,而不是语言本身之间的根本差异。

最后,我感到,任何具有巨大风险的项目,无论它用何种文字书写,都会陷入瘫痪。 你们说,我感到结构和设计对于可衡量性具有根本意义,选择一种语言而不是另一种语言,我不会感到可笑。

问题回答

埃尔兰是思考可靠性和如何实现可靠性的另一个文化。 了解文化是重要的,因为埃尔兰法不会因为埃尔兰教而变得过错容忍。

一种基本想法是,高时不仅来自非常长的日间歇,如果出现故障,也来自非常短的时对回收。

人们随后认识到,在发现故障时,需要自动重新启动。 人们认识到,在第一次发现一些并非完全正确的东西时,应当“停下来”重新启动。 恢复工作必须优化,信息损失必须尽可能少。

这一战略之后,许多成功的软件,如新闻档案系统或交易记录数据库。 但绝大多数情况下,软件倾向于只考虑平均时间档,并向系统记录发送关于错误标识的信息,然后试图继续运行,直到不可能再行。 通常需要人监测该系统和人工 re。

大部分战略都是在埃尔兰的图书馆。 语言特征的一部分是,过程可以相互“连接”和“对话”。 第一个是双向合同,即“如果你坠毁,那么我就拿到你的坠毁信息,如果你不把这个信息困在我身边”,第二个是“如果你坠毁,就获得信息”。

连接和监测是各图书馆用来确保其他进程未发生故障的机制。 工艺分为“超级”树木。 如果树木的工人工艺失败,主管将试图重新开始树木,或者所有在树林中处于同一水平的工人。 如果失败,就会升级等等。 如果高层主管放弃申请坠毁和虚拟机器停机,届时系统运营商应当重新启用计算机。

进程飞跃之间的完全孤立是埃尔兰大饥荒的另一个原因。 除了少数例外,不可能在进程之间“共享价值”。 这意味着,所有进程都非常自足,往往不受另一个进程坠毁的影响。 这种财产也属于埃尔兰集群的节点,因此,处理无法脱离该组的节点的风险较低。 重复和发送变革事件,而不是一个失败点。

埃尔兰通过的哲学名称很多,即“快车”、“只管系统”、“以回收为导向的方案”、“有缺陷”、“重复”......

埃尔兰语是用意一致的语言。 虽然大多数语言都依靠本组织进行多读,但是在埃尔兰,还是建立了共识。 埃尔兰方案可以由数千至数百万个极端轻重的工艺进行,这些过程可以由单一加工商操作,可以由多个加工商操作,也可以由加工商网络操作。 埃尔兰也支持不同进程之间传递的信息、错误宽容等。 埃尔兰的核心是实用的语言,实用的方案拟订是建立并行系统的最佳范例。

简言之,在埃尔兰建立一个分布式、可靠和可扩展的系统是容易的,因为它是专门为这一目的设计的一种语言。

www.un.org/Depts/DGACM/index_spanish.htm 简言之,“语言”主要影响到的垂直轴心/em>,但并不是你在你的提问中已经提到的所有方面。 这里有两点:

(1) 需要根据具体的衡量标准确定可衡量性。 页: 1

<>S = 用户人数/成本

如果没有适当的定义,我们将讨论ad vitam eternam<>。 采用我的拟议定义,比较系统实施更容易。 一种可扩展的系统(现成:盈利),然后:

随着S级的提高,可扩展性也随之增加。

2) Asystem,可按2个主要轴线按比例分摊:

  • a) Vertical
  • b) Horizontal

a)Vertical Reduction与加强隔离的节点有关,即增加服务器、更多的RAM等。

b)<斯特隆>Horizontal Level与通过增加节点加强系统有关。 这一过程涉及更多的方面,因为它需要处理诸如speed of Light(相对应)、 Intolerance to partition、各种失误等真正的世界财产。

(Node=>物理分离,与他人不同的“fate distribution”)

遗憾的是,的可计算性这一术语经常被滥用


English with libraries & implementation。 所有这些都是不同的。 是什么样子? a 特定系统更适合使用上述语文:图书馆、发展工具、执行效率(即记忆足迹、建筑功能的履行等)

就埃尔兰而言,正是根据投入要求设计的。

不管怎么说,我可以走这么长时间。

首先,你们必须区分语言及其执行。 例如,风气支持胎面,但在正式实施过程中,胎面不会使用多芯片。

然后,在支持平行计算(例如通过多面计算)时,语言/执行/分类通常称为可测量<>;如果CPU在增加(见Amdahl法)时出现快速增长的话。

某些语言,如Erlang,Scala,Oz。 等等,还有帮助撰写清晰和正冰平行编码的辛加(或冰箱)。

除了这里就埃尔兰(我不知道Which)提出的问题外,有一种感觉是,某些语言更适合描述和缩小任务。

诸如废墟和金星等语言具有一些特点,这些特点对于繁荣和创造力来说是巨大的,但对大型项目来说是可怕的。 可以说,它们的最佳特征是它们缺乏“形式”,在大型项目中伤害了你。

例如,静态打字是小笔字体的 has,使 languages语等语言变得非常好。 但是,在一个有数百或数千个班级的项目上,你很容易看到各种类型。 相比之下,可以持有异质收集的地图和阵列比较,作为某类消费者,你可以很容易地告诉其持有何种数据。 随着系统扩大,这类事情变得更加复杂。 e.g. 你们也可以做确实难以追踪的事情,例如,在业余课时(如果你试图在数据来自哪里再次表示)或采用不由汇编者强迫宣布例外而引起例外情形的方法,则会增加借方。 如果没有你能够用良好的设计和有纪律的方案规划来解决这些问题,那就更加困难。

作为一个极端的情况,你(业绩问题除外)可以建立一个庞大的手法系统,你或许可以处理一些特异性、缺乏打字和全球变数等问题,严格和谨慎地与编码和命名公约(在这种情况下,你会建立一种固定的打字系统,“通过公约”来建立这种系统),但那不会是徒劳的。

推特将其建筑的某些部分从鲁比拉转到了Schala,因为当他们开始使用错误工具从事工作时。 他们正在使用Ruby铁路——高度选择建立绿色地面电离层电离层电离层网应用系统——试图建立电传系统。 AFAIK公司仍在使用铁路作为Twitter的CRUD部分,例如建立一个新的用户账户,但将电离组件移至更合适的技术。

埃尔兰是建立在同步通信(合用同一地点和分布的交往)基础上的核心,是平台实现可扩展性的关键。 你们可以在许多平台上进行同步沟通,但埃尔朗语和埃尔兰/塔普框架提供了使这一框架在技术上和在你的头上能够加以管理的结构。 例如:如果不实行由土兰进程提供的孤立,你将徒步击 yourself。 有了联系/对话机制,你可以更快地对失败作出反应。





相关问题
Ruby parser in Java

The project I m doing is written in Java and parsers source code files. (Java src up to now). Now I d like to enable parsing Ruby code as well. Therefore I am looking for a parser in Java that parses ...

rails collection_select vs. select

collection_select and select Rails helpers: Which one should I use? I can t see a difference in both ways. Both helpers take a collection and generates options tags inside a select tag. Is there a ...

RubyCAS-Client question: Rails

I ve installed RubyCAS-Client version 2.1.0 as a plugin within a rails app. It s working, but I d like to remove the ?ticket= in the url. Is this possible?

Ordering a hash to xml: Rails

I m building an xml document from a hash. The xml attributes need to be in order. How can this be accomplished? hash.to_xml

multiple ruby extension modules under one directory

Can sources for discrete ruby extension modules live in the same directory, controlled by the same extconf.rb script? Background: I ve a project with two extension modules, foo.so and bar.so which ...

Text Editor for Ruby-on-Rails

guys which text editor is good for Rubyonrails? i m using Windows and i was using E-Texteditor but its not free n its expired now can anyone plese tell me any free texteditor? n which one is best an ...