首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分布Erlang与CAP定理

分布Erlang与CAP定理
EN

Stack Overflow用户
提问于 2010-10-03 17:18:58
回答 4查看 1.7K关注 0票数 1

通过盖定理分布式Erlang系统不可能同时提供以下三种保证:

  • 一致性(所有Erlang运行时或节点同时查看相同的数据)
  • 可用性(节点故障并不妨碍幸存者继续操作)
  • 分区容忍度(尽管有任意消息丢失,系统仍继续运行)

分布式Erlang系统可以支持零、一或两个保证。

使用Erlang和OTP,如何实现每个保证?大多数分布式Erlang应用程序为更高层次的A和P做出了实际的选择,并满足于“最终的一致性”。看起来Erlang本身就是为了支持分布式(P)、容错(A)、软实时、不间断的应用程序而设计的.

编程语言(Erlang)、运行时系统(ERTS)和库集(OTP)是为构建分布式容错应用程序而设计的;我如何完成定义的分布式容错应用程序的三项工作?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-03 18:01:22

我发现的一个很好的例子是里克,这是一个基于亚马逊的Dynamo的分布式键值商店,它使用Erlang和OTP构建。可调CAP控件允许您动态地“选择”您的一致性和可用性级别;它选择关注CAP的A和P,这使其最终一致。Riak是开源的,网上有很多关于它的实现的好文章.

另一个很好的例子是戴诺密,PowerSet的发电机--Erlang克隆。虽然这个项目已经死了一段时间了,但它还是一个关于如何构建Dynamo克隆的有用的功能设计文档。

这两个项目本身都是基于亚马逊的迪纳摩,这是一个渐进的、高度可用的键值存储系统。该技术旨在使用户在保持高可用性的同时,能够降低成本、一致性、耐用性和性能。这份报纸读得很好。

票数 3
EN

Stack Overflow用户

发布于 2010-10-03 17:20:44

为清晰起见编辑的

它取决于应用程序的设计,而不是实现它的平台。您可以使用任何语言或平台组合来实现任何2种保证。

票数 5
EN

Stack Overflow用户

发布于 2010-10-04 22:02:45

Erlangs的优势应该是选择A&P,但与任何系统一样,可以选择任何两种或更少的。这在一定程度上是由于erlangs编程模型通过消息传递实现了所有通信。如果您使用良好的Erlang样式,则不使用共享内存在进程之间进行通信。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3850753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档