分布式学习最佳实践:从分布式系统的特征开始(附思维导图) (4)

  比如前面介绍到节点更新策略时,可能是异步的,那么secondary上的数据相比primary会有一定延迟,从secondary上读数据的话无法满足强一致性要求。

  比如元数据,需要强一致性保证,所以一般都只会从primary读数据。而且,一般称主节点为active(master),从节点为standby(slave)。在这种情况下,是通过冗余 加上 快速的failover来保证可用性

一致性

  

分布式学习最佳实践:从分布式系统的特征开始(附思维导图)

  从上面可以看到,为了高可用性,引入了冗余(副本)机制,而副本机制就带来了一致性问题。当然,如果没有冗余机制,或者不是数据(状态)的冗余,那么不会出现一致性问题,比如MapReduce。

  一致性与可用性在分布式系统中的关系,已经有足够的研究,形成了CAP理论。CAP理论就是说分布式数据存储,最多只能同时满足一致性(C,Consistency)、可用性(A, Availability)、分区容错性(P,Partition Tolerance)中的两者。但一致性和可用性都是一个度的问题,是0到1,而不是只有0和1两个极端。

  一致性从系统的角度和用户的角度有不同的等级

系统角度的一致性

   强一致性、若一致性、最终一致性

用户角度的一致性

   单调读一致性,单调写一致性,读后写一致性,写后读一致性

高性能

  

分布式学习最佳实践:从分布式系统的特征开始(附思维导图)

   正式因为单个节点的scale up不能完成任务,因此我们才需要scale out,用大量的节点来完成任务,分布式系统的理想目标是任务与节点按一定的比例线性增长。

衡量指标

  高并发:

  高吞吐:

  低延迟:

  不同的系统衡量的核心指标不一样,比如MapReduce,本身就是离线计算,无需低延迟

可行的办法

  单个节点的scaleup

  分片(partition)

  缓存:比如元数据

   短事务

references

 Distributed systems for fun and profit  

刘杰:《分布式系统原理介绍》

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zysyzx.html