Google分布式监管模型的架构

时间:2014-04-07 16:29:01

标签: architecture erlang distributed apache-zookeeper supervisor

我在线阅读了一篇有趣的帖子,其中一位Google员工讨论了Google不会从Erlang的监管模式中受益,因为他们已经在他们的基础架构中构建了一个等效的监管模型:

  

(完全披露:我在谷歌工作,也喜欢erlang)Erlang拥有出色的设施   为了健壮性和并发性。它没有的是类型安全   并且以高性能的方式处理文本很糟糕。所以,如果你   不关心这些事情中的任何一个,只关心健壮性   和并发,然后Erlang是伟大的。有内部讨论   关于Erlang在这里,但结果是。我们已基本完成了   在我们的基础设施中重复Erlangs监管模型,只有我们   是为所有语言做的,而Erlang并没有提供任何好处   我们的表现。

     

来源http://erlang.org/pipermail/erlang-questions/2013-August/075135.html

尽管在网上搜索,我找不到有关其监管模式的任何信息(我最有​​可能使用错误的搜索条件进行搜索)。

问题

  1. Google的监管模式架构是什么?
  2. 对于谷歌发布的许多创新,后来有一些开源软件提供相同的功能(例如Google BigTable - > HBase,MapReduce - > Hadoop等)。 Netflix's Exhibitor是否会执行上述报价中提到的Google监管基础架构的所有角色?

1 个答案:

答案 0 :(得分:14)

我们对Google的内部基础架构知之甚少。你唯一可以看到的就是在Google工作或者阅读论文。

Google使用的模型在UNIX进程级别进行分发和监督。这有道理,原因有很多:

  • 由于受到内存管理单元的保护,进程在UNIX中具有隔离功能。
  • 可以在另一台计算机上重新启动崩溃进程。
  • UNIX是一个众所周知的目标。

除此之外,Google还构建了基础架构,允许您插入"插入"顺序系统,以便轻松地使它们分布。 " Chubby锁定经理"想到这里。

相比之下,Erlangs模型也是关于保护,但适用于在相同内存空间中运行的轻量级进程或通过TCP套接字进行通信。它提供自己的生态系统,以处理监督和分配。因此,尽管表面上的问题是相同的,但细节却不同。

引用也有很多错误:

  • Erlang是一种安全语言,因为程序要么计算一个值,要么出错,通常会导致崩溃所述过程。程序无法出错#34;在未定义的行为意义上。 Erlang确实支持静态类型的变体,即成功键入。然而,类型强制完全在运行时。 Erlang没有 rich 类型系统,就像有些人所说的那样#34;强类型"。

  • Erlang的字符串处理速度非常快。我不知道神话来自哪里。使用Erlangs字符串处理需要更多的知识,但它具有明显的优势,它排除了在处理其他语言的字符串时出现的许多典型错误。

没有人回答这个问题的原因是它很难。由于IP泄漏,谷歌员工可能无法做到。非Google员工只能指向有关其基础架构的相关文章。

可以说,您现在需要在任何更大的系统设置中使用分发功能。但问题是"你是通过复制谷歌5到10年前所做的事来得到这个吗?"