zoukankan      html  css  js  c++  java
  • 分布式系统阅读笔记(十五)-----协调和一致性

    介绍

    这里说的协调和一致性指的是在分布式系统的环境下,对于多进程访问共享资源的一个协调和数据状态的一致性的保证。其中的措施包括分布式的共有排除机理,在组通信中的协调和一致性的手段,还有这其中可能会出现的一些问题。在整个协调服务的过程中,有一个东西非常重要,就是失败的监听,这里需要一个失败监听器。可以用一个进程作为失败监听进程,都其他的进行进行监听,方式可以通过类似心跳机制,发送消息证明自己目前是活着的状态。

    分布式的共有排除

    这个指的是一堆的进程共同的访问共享的一堆资源的情况,通过分布式的共有的排除的执行机理,保证资源状态的一致性。比如访问一个文件服务器,你可以通过一个锁服务,只保证当前只能有1个进程可以操作文件,只有当操作文件的进程释放锁的时候,其他的进程才有资格继续操作。

    1、共有排除的本质就是让哪个进程能够进入资源的临界区。这里说说一些共有排除机理实现的一些算法:1、通过中心服务器通过grant授权token给客户端的方式进行。2、基于环状的算法,进程组成一个逻辑环的样子,每个进程只能与他的下一个进程进行通信。3、通过多播和逻辑时钟的方式。每个进程通过与其他的进程之间的沟通。4、最后当然还有投票选举算法的系列方式。

    选举

    这里所说的选举指的是从众多进程中选出一个进行能够进入资源访问临界区,就是那个幸运的能够访问临界区的算法。这里只提供一些算法的基本方式:1、基于环状的选举算法。2、bully算法。

    组通信中的协调和一致性

    1、在组通信中,2个核心的方式是基础的多播方式和可信赖的多播方式,其中可信赖的多播方式可以是在基础多播方式进行修改,也可以在IP多播机制上做修改。

    2、多播有序性,这里主要为3大有序性:1、FIFO ordering,先进先出有序,他的实现可以通过序列号码的方式。2、Causal Ordering 因果有序性。3、Total Ordering 全局有序性,他的实现方式可以通过排序标识。

    相关的问题

    在协调与一致性的过程中,可能会出现3大问题:1、共识,一致的问题。2、byzantine generals(拜占庭将军问题),意指一个系统能够容忍其中一个或多个组件的失效。3、交互的一致性问题。以上的3个问题在同步的系统中是存在解决方案的,在异步的系统中则不那么简单。

    参考文献:<<Distributed Sysytems Concepts And Design>>原版第五版,author:George Coulouris,Jean Dollimore, Tim Kindberg,Gordon Blair

  • 相关阅读:
    HDU 3681 Prison Break 越狱(状压DP,变形)
    POJ 2411 Mondriaan's Dream (状压DP,骨牌覆盖,经典)
    ZOJ 3471 Most Powerful (状压DP,经典)
    POJ 2288 Islands and Bridges (状压DP,变形)
    HDU 3001 Travelling (状压DP,3进制)
    POJ 3311 Hie with the Pie (状压DP)
    POJ 1185 炮兵阵地 (状压DP,轮廓线DP)
    FZU 2204 7
    POJ 3254 Corn Fields (状压DP,轮廓线DP)
    ZOJ 3494 BCD Code (数位DP,AC自动机)
  • 原文地址:https://www.cnblogs.com/bianqi/p/12184052.html
Copyright © 2011-2022 走看看