0%

云计算的核心算法(CAP)

2019年3月27日 下午12:33

CAP提出三个问题

  1. 一致性:通常通过算法、规则来实现
  2. 可用性:通常提高硬件水平,所以不是学习的重点
  3. 分块性:也是就部分坏了,不影响整体。别一块臭骨头坏了整锅汤

解决一致性的方法:

  1. 加锁

    1. 问题:可能出现死锁
  2. 事务

    1. 模式一:ACID
      注:这里里面解释的一致性很不好:看这里最下面 分布式的整体理解
    2. 模式二:BASE
      1. 分布式系统中BASE原理:
        1. 我认为实际生产中我们使用的就是BASE,因为CAP这是一个很强的要求,我们的光信号传播本身就是需要时间的,所以不可能保持绝对的一致性
        2. BASE中的关键词有核心可用+中间状态
          1. 允许中间状态,但是该中间状态不会影响系统的整体可用性
        3. 也就是我们作为一个将军,打仗的时候要保证自己的核心力量的安全,用小的失利换取更大的收益。
  3. 分布式事务:

    1. 定义:分布式事务是指事务的参与者、支持事务 的服务器、资源服务器以及事务管理器分 别位于分布式系统的不同节点。通常一个 分布式事务中会涉及对多个数据源或业务系统的操作
    2. 存在的问题:共识问题 :分布式系统中的进程 经常需要就一些值达成协定,即共识问题
  4. 解决方式:2PC(Two-Phase Commit Protocol)两段式提交

    1. 定义:PPT 任勇毛云计算
    2. 存在的问题:同步阻塞、数据不一致、单点问题、太过保守 PPT

Paxos:

  1. 目的
    1. 解决一致性,一堆人,选谁的问题。eg:服务器中选出master服务器
  2. 为什么一个value会对应多个n值?
    1. 针对同一个问题的方案是可以更新补充的。
  3. 对于proposer,为什么value从accepter获取最新的值?
    1. value相同,代表大家讨论的是同一个问题。
    2. 要针对同一个问题进行讨论。
  4. 一个强假设:
    1. accepter只看最新的时间的,这个时间就是n来表示的。
    2. 由于并发,有稍微旧一毫秒的怎么办?更新一下自己的n,重提就行了。
  5. 简要了流程说明:
  6. 具体的例子
    1. PPT

Gossip:

  1. 目的:解决容错问题方法就是让流言多复制几次,这样其中一台坏了也无所谓。
  2. 三种模式
    1. in the push style,
      1. nodes periodically send (push) the current content of variable value to a node selected randomly
    2. in the pull style,
      1. nodes periodically ask (pull) new updates of the replicated variable from other, randomly selected nodes
    3. in the push-pull style,
      1. push and pull are combined together