分布式系统中的通信

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章 分布式系统中的通信
● 环形算法
结点组成逻辑环。 ★ 进程Pi发起竞选,创建一活跃表,填入本进程号,发 送给左邻,若左邻规定时间内未应答,则故障,跳过其向下 一个发送,直至非故障者。 ★ 进程Pj接到右邻的竞选消息 ■ 若为第一次接到,将本进程号加入表中向左邻发送 ■ 若为第二次接到,又若本进程号最大,则向左邻发 布自己当选消息,否则继续传送活跃表 ★ 进程接到当选消息必须立即向左邻转发,直至当选者 从右邻获得自己当选消息为止。
第三章 分布式系统中的通信
● 同步时钟的使用
消息传送 实现Cache的一致性
2 互斥问题
临界区规则:有空让进,无空等待,有限等待 + 定序进入 简单的实现方法:设立“仲裁者”,集中式弊端 约定:进程与结点等价 进程间发送消息遵从“管道”规则 每个消息将在有限时间内正确到达 系统全互连
第三章 分布式系统中的通信
第三章 分布式系统中的通信
● 连接策略
线路转换:永久物理链路,固定独占使用 消息转换:物理链路动态分配,临时共享使用 信包转换:物理链路与信包捆绑,消息拆分传输 ● 冲突解决策略 冲突检测 令牌传递 消息槽 ● 保密 单密钥技术 公公密钥技术
第三章 分布式系统中的通信
§2 分布式系统中的同步机制
服务器A
Ti+1
Ti+2
服务器B
T
Ti+3
第三章 分布式系统中的通信
在服务器A、B之间传送两个消息m和m’ 。令由B到A的延迟 时间为t,由A到B的延迟时间为t’,服务器A对B的本机时钟 的偏差为δ。那么, Ti+1= Ti+ t +δ;( t≥0 ) Ti+3= Ti+2+ t’-δ;( t’≥0 ) 记 a = Ti+1 - Ti,b = Ti+3 – Ti+2 ; 两个消息的总延迟时间为:d = t + t’ = a - b 令每一对消息的计算误差为 Q = ( a+b ) / 2,那么: δ= Q + ( t’ – t ) / 2,由于t,t’ ≥ 0, 于是 Q – d /2 ≤ δ ≤ Q + d / 2
第三章 分布式系统中的通信
★ 广播式令牌传递
针对非环状结构网。 对每个临界区,设令牌向量T=(T1,T2,…Tn),其中 n为进程数。 每个进程对每个临界区设立请求队列。 进程Pi希望mi次进入临界区时,广播Request (Pi, mi) 后等待令牌。收到后将Ti改为mi并进入临界区,退出时,查 看请求队列,若空则继续执行,若有请求则取出队首元素 Rquest(Pj, mj),若mj>Tj则将令牌交给Pj,否则删除该请求 继续查看,直至队列为空。若队列已空令牌仍在手中,等到 mj>Tj的请求出现时,再转移令牌。无令牌进程接到请求将其 插入请求队列即可。 实际上,临界区C已经扩大为(C,T)了。
第三章 分布式系统中的通信
§1 Байду номын сангаас述
1. 系统中各部分通信的基本方式 利用共享存储区 消息传送 2. 分布式系统中通信考虑的关键问题 ● 发送策略 固定策略 虚拟线路策略 动态发送策略
固定策略简单,但不顾及网络负载;虚拟策略对此有所改进,亦能保 证消息发送与到达次序一致,但不能最大限度利用带宽;动态策略可充 分利用带宽,但不能严格保证消息发送与到达次序一致。
第三章 分布式系统中的通信
■ 组播方式:主要用于高速网。某个或某几个服务器定
期向局域网上的服务器广播时间,服务器收到时间后,对广 播延迟做小的修正后进行同步,修改本地时钟。
■ 过程调用方式:与Cristian 算法类似。 ■ 对称方式:最适用于用于层次同步方式,精度最高。
主、从服务器之间成对交换,每个消息都附加时间邮戳。
第三章 分布式系统中的通信
● 分布式系统中事务的实现 ★ 副本问题
一致性 读写分开问题 ★ 修改日志 ★ 两阶段提交 ■ 第一阶段:发送消息,检查提交准备工作并回送检查 结果 ■ 第二阶段:发送消息,要求提交或abort ■ 事务发起者即为协调者
第三章 分布式系统中的通信
★ 协调者需要:
知道事务涉及的所有结点 让所有参与者知道谁是协调者 ■ 做法 Client向每个服务器发送事务函数 Addserver(事务名,协调者名) 每个参与者(非协调者)向协调者发送报到消息 Newserver(事务名,本结点名) 协调者生成一张参与者表,在收到参与者消息后将 每个参与者列入表中
第三章 分布式系统中的通信
★ Cristian 算法
如果进程P的时钟刷新率很低,那么发送mr所需时间、时 钟服务器处理请求的时间和接收mt所需时间的来回时间Tround 可以以合理的精度地用进程P的本机时钟计算出来。 如果从S接收的标准时间为t,近似地可以认为实际时间为 t + 0.5Tround。近似精度为±[ ( Tround/2 ) – min ]。 ★ Berkeley算法 时间服务器周期性地向所有节点发送UTC并询问当地的时 间,接收者返回各自本地时间与服务器时间的偏差信息,根 据接收到的偏差信息、当时的服务器本机时间,计算出传输 来回的平均时间,扣除后再计算出每台机器的时间偏差,向 它们分别发送,供它们修正自己的本机时间。
条件限定 有关信息分散在不同计算机上 只能根据本地得到的信息进行决策 应能回避单点故障或错误 系统中不存在公共时钟或全局时钟装置 1. 时钟同步 ● 逻辑时钟: 一个单调增长的计数器 记号:顺序 a b;并发 a‖b;进程p的逻辑时钟记为Cp 事件a在进程P中的时间邮戳为Cp(a),事件x在任何 进程中的时间邮戳记为C(x),a b 则C(a)<C(b)
● Lamport算法 ① 进程Pi要求进入临界区k,向每个进程发送消息
Request(Ti , k, i),公告进入要求,并将其置于自己请 求消息队列的队尾。其中Ti是该进程的时间邮戳 ② 进程Pj 收到消息后,按全序方式排序并插入自己的 队列中,返回带有自己邮戳的ok消息 ③ 以下条件成立时,进程Pi可以进入临界区k: Pi自己的Request(Ti , k, i)消息位于自己请求队列 的队首 Pi收到所有进程发回的时间邮戳晚于Ti的ok消息 ④ 退出时, Pi删去自己队列的相应消息,并公告退出 消息 ⑤ 进程Pj 收到退出消息后,删去自己队列的相应消息
第三章 分布式系统中的通信
● 令牌传递方法
令牌是一类点对点的、代表“许可权”的特殊消息。 ★ 循环式令牌传递 所有结点组成一个逻辑环 ■ 单向方案---被动式 只有一个令牌。令牌沿一个方向流动,需要进入临界 区者留住令牌,退出时再交出,否则立即转交下一个节点。 ■ 双向方案---主动式 请求消息与令牌反向流动。自己有令牌,不在也不想 进入,接到请求后传递令牌;自己在临界区,退出时转交; 自己也发出了请求消息,接到请求后记下,等自己有了令牌 并退出临界区时再转交;自己没有令牌,也不想进入临界区, 接到请求后立即相同方向邻居传递。
第三章 分布式系统中的通信
★ Lamport 时钟校正方法
通过在本地物理时间上加上一个偏移量来实现进程本地逻 辑时钟,进程按以下方式更新其逻辑时钟并在进程件传递逻 辑时钟的值:
■ Cp在进程P上的每一事件之前增值并加盖邮戳:Cp=
Cp + 1;
■ 当进程P发送消息m时,在m上携带逻辑时钟值t = Cp ■ 当进程Q接收消息 (m,t) 时,计算Cq= max ( Cq,
时钟同步
24 30 36 42 48 65 71
第三章 分布式系统中的通信
注意: 使用逻辑时钟,a->b可以保证C(a) < C(b),但反之不然。 上图中事件e和f分别是进程3中的事件,虽然可以看出存在 C(f)﹥C(e),但e‖f。使用逻辑时钟只能对事件作部分排序! 可以通过对发生的事件加上进程标识符且对进程标识符进 行排序,来实现对事件的完全排序。进程P上的事件a时间邮 戳为Ta,进程Q上的事件b时间邮戳为Tb,定义: a、b的全局时间邮戳分别为 ( Ta,p ),( Tb,q ),( Ta, p ) < ( Tb,q ) 当且仅当Ta < Tb 或者Ta = Tb但同时有p < q。 进程P中的事件a先于进程Q中的事件b发生,用a﹦﹦>b表 示。这里﹦﹦>表示全序关系。
第三章 分布式系统中的通信
Ricart和Agrawala对此算法做了改进,使需要发送的消 息从3(n+1)减少为2(n+1) ② 进程Pj 收到消息后,按全序方式排序并插入自己的队 列中: 若自己不在且不想进入临界区,发送ok消息 若自己在临界区,不做回答 若自己正想进入临界区,比较到达消息与自己请求消息 的邮戳,若到达邮戳早,发ok,否则不发 问题: 一旦出现故障结点,ok消息永不到达,无法进入。
第三章 分布式系统中的通信
3. 协调者选择问题 分布式系统中常常会有“协调者”,如何选择。 ● Bully算法 系统中有n个进程P1,P2,… Pn,假定进程号最大者为 协调进程。某一进程在规定时间内无法与协调者联系,可以 发起竞选。 ★ Pi发起竞选,广播附有本进程号的竞选消息。 ★ Pi接到消息,若自己号小则沉默,否则发回拒绝消息, 自己发起竞选。 ★ 竞选者在规定时间内未接到拒绝消息,自动当选。广 播当选消息,运行协调程序,成为协调进程。否则竞选失败, 准备接受他人当选消息。若规定时间内未接到当选消息,可 再度发起竞选。
第三章 分布式系统中的通信
4. 原子事务 ●事务模型 ★ 事务原语 begin-transaction 事务开始 end-transaction 事务结束 abort-transaction 退出事务,恢复事务开始状态 等。 ★ 事务的特性 顺序性 原子性 永久性 ★ 嵌套事务:父子事务提交的时机与分布式环境
t ) + 1
第三章 分布式系统中的通信
[例] 三个备有自己不同频率物理时钟的进程相互发送消息
0 6 12 18 24 30 事件e 36 42 48 54 60 D A 0 8 16 24 32 40 48 56 64 72 80 未同步前各自的时钟 C B 0 9 18 27 36 45 事件f 54 63 72 81 90 0 6 12 18 A 0 8 16 24 32 40 48 56 D 64 72 80 同步后的时钟 C B 0 9 18 27 36 45 54 63 72 81 90
第三章 分布式系统中的通信
★ 平均算法
将时间划分为定长的时间区间,大家约定一个起始时间T0, 第i个区间为[ T0+ iR, T0+ (I+1)R ],这里R为系统参数。 每个时间间隔开始时,每台计算机广播自己的本机时间。由 于本机时间各不相同,这些广播并不精确地发生在同一时刻。 每台机器也会收到其它机器的广播,仿照Berkeley算法,取 一个可信时间间隔,在该区间内收到的广播为有效广播,计 算平均值(或去掉一个最大值、一个最小值后平均),用估 计传输时间做修正后,作为自己的本机时间。 显然,这样得到的系统标准时间与UTC无关,仅仅为了系 统内部同步使用。
第三章 分布式系统中的通信
★ 网络时间协议(NTP)
NTP定义了时间服务的体系结构和在各种互连网络上分布 时间信息的协议,被Internet用作时钟同步的标准。 服务器组成层次结构,形成同步子网。主服务器位于树 根,与标准时间资源(如UTC接收机)相连,上级服务器对 下级服务器进行同步控制。 一般来说,由于每一层同步都会出现误差,较低层次的 服务器比较高层次的服务器时间更不准确。在服务器不可达 或出现故障时,可以重构同步子网。同步控制的方式大致有 三种。
第三章 分布式系统中的通信
● 物理时钟
通常,使用协同宇宙时间UTC(Universal Coordinated Time)来代替国际原子时间TAI(International Atomic Time),精度可达0.5毫秒。时间服务器S配备接收卫星授时 装置并根据请求提供标准时间。进程P在消息mr中请求时间, 并在消息mt中接收时间t,原则上它应该将自身的时钟置为 t + Ttrans,其中Ttrans为从S到P的消息传送时间。 Ttrans是不确定的,容易受到网络传输竞争的变化。实际上, Ttrans= min + x,min是理想情况下的网络传输时间,而x随 网络环境的变化而变化。
相关文档
最新文档