cap是什么意思翻译中文,cap是什么意思翻译成中文

  

  CAP是所有分布式系统的基础理论,任何分布式系统只能满足以下三种状态中的任意两种。   

  

  一致性、可用性、分区容差什么是上限理论?CAP理论是指一个分布式系统不能同时满足一致性、可用性和分区容错的要求。听起来很简单,但是什么是一致性、可用性、分区容错呢?什么是分布式系统?   

  

  在本文中,我们将介绍一个简单的分布式系统来解释什么是可用性、一致性和分区容错。更多信息,请参考吉尔伯特和林奇的论文《CAP定理透视》。   

  

  分布式系统假设我们有这样一个简单的分布式系统,它包含两个服务G1和G2,这两个服务持有同一个变量V,它的初始值是v0。G1和G2可以互相通信,也可以和其他客户端通信,如下图所示。   

  

  客户端可以读取和修改任何服务器的值。当服务器收到请求时,它会处理请求并回复客户端。如果是写请求,执行过程如下图所示:   

  

     

  

  如果是读请求,执行过程如下:   

  

     

  

  现在我们已经建立了一个简单的分布式系统,让我们分别看看一致性、可用性和分区容错。   

  

  吉尔伯特和林奇的论文中对一致性的描述如下:   

  

  写操作完成后开始的任何读操作都必须返回该值,或者后面写操作的结果   

  

  写操作完成后的任何读操作都必须返回写操作写入的值,或后续写操作写入的值。   

  

  在一致的系统中,如果客户端向任意服务器写入某个值,并且得到了服务器的确认,那么当客户端再次读取时,无论读取哪个服务,都期望得到写入的值或者更新的值。   

  

  下图显示了一个不保证一致性的系统。   

  

  向客户端G1发送写请求,将V的值从v0更改为v1,然后确认G1的写操作成功,但是从G2读取的数据仍然是旧数据v0。   

  

  下图是保证一致性的系统。   

  

  在这个系统中,当客户端将数据v1写入G1时,G1也会将数据同步到G2,只有在G1和G2完成数据更新后,G1才会告诉客户端写入成功。之后,无论客户端是从G1还是G2读取,它都会读取最新的值v1。   

  

  可用性吉尔伯特和林奇的论文对可用性的描述如下:   

  

  系统中非故障节点接收的每个请求都必须产生响应。任何在线节点接收的请求必须相应地做出。   

  

  在保证可用性的系统中,如果客户端向没有停机的服务器发送请求,服务器必须响应客户端的请求,而不能选择忽略客户端的请求。   

  

  分区容错Gilbert和Lynch的论文对分区容错的描述如下:   

  

  网络将被允许丢失仲裁从一个节点发送到另一个节点的许多消息允许网络丢失从一个服务节点到另一个服务节点的任何信息。   

  

  这意味着在我们的分布式系统中,G1发送给G2的信息可能会丢失。如果所有的信息都丢失了,我们的系统可能会变成这样。   

  

  为了保证分区的容错性,我们的系统必须在任何被阻塞的网络分区下正常工作。   

  

  现在我们知道了什么是一致性、可用性和分区容错,让我们来证明为什么一个分布式系统不能同时满足这三个。   

  

  假设有一个满足一致性、可用性和分区容错的分布式系统。首先我们把系统分成两部分,如下图所示。接下来,客户端将G1中的V从v0更改为v1,因为G1必须响应客户端的写请求才能满足可用性要求,但是因为网络问题,G1无法将数据同步到G2。吉尔伯特和林奇称这个阶段为alpha1,如下所示:   

  

     

  

  那么,假设一个客户端从G2读取V的值,因为符合可用性要求,G2也必须正常响应。因为网络问题,G2没有更新数据到G1,所以G2只能返回v0。吉尔伯特和林奇把这个阶段称为alpha2,如下图所示:   

  

     

  

  这里G1返回v1,G2只能返回v1,导致不一致,这与我们的假设相反。从而证明满足一致性、可用性和分区容错的分布式系统是不存在的。   

  

  原文链接https://mwhittaker.github.io/blog/an _插图_论文_理论论文/   

  

  本文来自https://blog.csdn.net/xindoo.   

相关文章