分布式系统中的通信5076.pptx
《分布式系统中的通信5076.pptx》由会员分享,可在线阅读,更多相关《分布式系统中的通信5076.pptx(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 分布式系统中的通信分布式系统中的通信1 1 概述概述1.1.系统中各部分通信的基本方式系统中各部分通信的基本方式 利用共享存储区利用共享存储区 消息传送消息传送2.2.分布式系统中通信考虑的关键问题分布式系统中通信考虑的关键问题 发送策略发送策略 固定策略固定策略 虚拟线路策略虚拟线路策略 动态发送策略动态发送策略 固定策略简单,但不顾及网络负载;虚拟策略对此有所改进,亦能保固定策略简单,但不顾及网络负载;虚拟策略对此有所改进,亦能保证消息发送与到达次序一致,但不能最大限度利用带宽;动态策略可充证消息发送与到达次序一致,但不能最大限度利用带宽;动态策略可充分利用带宽,但不能严格保
2、证消息发送与到达次序一致。分利用带宽,但不能严格保证消息发送与到达次序一致。第三章第三章 分布式系统中的通信分布式系统中的通信 连接策略连接策略 线路转换:永久物理链路,固定独占使用线路转换:永久物理链路,固定独占使用 消息转换:物理链路动态分配,临时共享使用消息转换:物理链路动态分配,临时共享使用 信包转换:物理链路与信包捆绑,消息拆分传输信包转换:物理链路与信包捆绑,消息拆分传输 冲突解决策略冲突解决策略 冲突检测冲突检测 令牌传递令牌传递 消息槽消息槽 保密保密 单密钥技术单密钥技术 公公密钥技术公公密钥技术 第三章第三章 分布式系统中的通信分布式系统中的通信2 2 分布式系统中的同步机
3、制分布式系统中的同步机制 条件限定条件限定 有关信息分散在不同计算机上有关信息分散在不同计算机上 只能根据本地得到的信息进行决策只能根据本地得到的信息进行决策 应能回避单点故障或错误应能回避单点故障或错误 系统中不存在公共时钟或全局时钟装置系统中不存在公共时钟或全局时钟装置1.1.时钟同步时钟同步 逻辑时钟逻辑时钟:一个单调增长的计数器一个单调增长的计数器 记号:顺序记号:顺序 a b a b;并发;并发 ab ab;进程;进程p p的逻辑时钟记为的逻辑时钟记为Cp 事件事件a a在进程在进程P P中的时间邮戳为中的时间邮戳为Cp(a),事件事件x在任何在任何进程中的时间邮戳记为进程中的时间邮
4、戳记为C(x),a b a b 则则C(a)C(b)C(a)ba-b可以保证可以保证C(a)C(b)C(a)C(b),但反之不然。但反之不然。上图中事件上图中事件e e和和f f分别是进程分别是进程3 3中的事件,虽然可以看出存在中的事件,虽然可以看出存在C(f)C(e)C(f)C(e),但但efef。使用逻辑时钟只能对事件作部分排序!。使用逻辑时钟只能对事件作部分排序!可以通过对发生的事件加上进程标识符且对进程标识符进可以通过对发生的事件加上进程标识符且对进程标识符进行排序,来实现对事件的完全排序。行排序,来实现对事件的完全排序。进程进程P P上的事件上的事件a a时间邮时间邮戳为戳为T T
5、a a,进程,进程Q Q上的事件上的事件b b时间邮戳为时间邮戳为T Tb b,定义:,定义:a a、b b的全局时间邮戳分别为的全局时间邮戳分别为(T(Ta a,p)p),(T(Tb b,q)q),(T(Ta a,p)(Tp)(Tb b,q)q)当且仅当当且仅当T Ta a T Tb b 或者或者T Ta a=T=Tb b但同时有但同时有p qp TTj j则将令牌交给则将令牌交给P Pj j,否则删除该请求继续查,否则删除该请求继续查看,直至队列为空。若队列已空令牌仍在手中,等到看,直至队列为空。若队列已空令牌仍在手中,等到m mj jTTj j的的请求出现时,再转移令牌。无令牌进程接到请
6、求将其插入请请求出现时,再转移令牌。无令牌进程接到请求将其插入请求队列即可。求队列即可。实际上,临界区实际上,临界区C C已经扩大为(已经扩大为(C C,T T)了。)了。第三章第三章 分布式系统中的通信分布式系统中的通信3.协调者选择问题协调者选择问题 分布式系统中常常会有分布式系统中常常会有“协调者协调者”,如何选择。,如何选择。Bully算法算法 系统中有系统中有n个进程个进程P1,P2,Pn,假定进程号最大者为,假定进程号最大者为协调进程。某一进程在规定时间内无法与协调者联系,可以协调进程。某一进程在规定时间内无法与协调者联系,可以发起竞选。发起竞选。Pi发起竞选,广播附有本进程号的竞
7、选消息。发起竞选,广播附有本进程号的竞选消息。Pi接到消息,若自己号小则沉默,否则发回拒绝消息,接到消息,若自己号小则沉默,否则发回拒绝消息,自己发起竞选。自己发起竞选。竞选者在规定时间内未接到拒绝消息,自动当选。广竞选者在规定时间内未接到拒绝消息,自动当选。广播当选消息,运行协调程序,成为协调进程。否则竞选失败,播当选消息,运行协调程序,成为协调进程。否则竞选失败,准备接受他人当选消息。若规定时间内未接到当选消息,可准备接受他人当选消息。若规定时间内未接到当选消息,可再度发起竞选。再度发起竞选。第三章第三章 分布式系统中的通信分布式系统中的通信 环形算法环形算法 结点组成逻辑环。结点组成逻辑
8、环。进程进程Pi发起竞选,创建一活跃表,填入本进程号,发发起竞选,创建一活跃表,填入本进程号,发送给左邻,若左邻规定时间内未应答,则故障,跳过其向下送给左邻,若左邻规定时间内未应答,则故障,跳过其向下一个发送,直至非故障者。一个发送,直至非故障者。进程进程Pj接到右邻的竞选消息接到右邻的竞选消息 若为第一次接到,将本进程号加入表中向左邻发送若为第一次接到,将本进程号加入表中向左邻发送 若为第二次接到,又若本进程号最大,则向左邻发若为第二次接到,又若本进程号最大,则向左邻发布自己当选消息,否则继续传送活跃表布自己当选消息,否则继续传送活跃表 进程接到当选消息必须立即向左邻转发,直至当选者进程接到
9、当选消息必须立即向左邻转发,直至当选者从右邻获得自己当选消息为止。从右邻获得自己当选消息为止。第三章第三章 分布式系统中的通信分布式系统中的通信4.原子事务原子事务 事务模型事务模型 事务原语事务原语 begin-transaction 事务开始事务开始 end-transaction 事务结束事务结束 abort-transaction 退出事务,恢复事务开始状态退出事务,恢复事务开始状态 等。等。事务的特性事务的特性 顺序性顺序性 原子性原子性 永久性永久性 嵌套事务:父子事务提交的时机与分布式环境嵌套事务:父子事务提交的时机与分布式环境第三章第三章 分布式系统中的通信分布式系统中的通信
10、分布式系统中事务的实现分布式系统中事务的实现 副本问题副本问题 一致性一致性 读写分开问题读写分开问题 修改日志修改日志 两阶段提交两阶段提交 第一阶段:发送消息,检查提交准备工作并回送检查第一阶段:发送消息,检查提交准备工作并回送检查结果结果 第二阶段:发送消息,要求提交或第二阶段:发送消息,要求提交或abort 事务发起者即为协调者事务发起者即为协调者第三章第三章 分布式系统中的通信分布式系统中的通信 协调者需要:协调者需要:知道事务涉及的所有结点知道事务涉及的所有结点 让所有参与者知道谁是协调者让所有参与者知道谁是协调者 做法做法 Client向每个服务器发送事务函数向每个服务器发送事务
11、函数 Addserver(事务名,协调者名)(事务名,协调者名)每个参与者(非协调者)向协调者发送报到消息每个参与者(非协调者)向协调者发送报到消息 Newserver Newserver(事务名,本结点名)(事务名,本结点名)协调者生成一张参与者表,在收到参与者消息后将协调者生成一张参与者表,在收到参与者消息后将每个参与者列入表中每个参与者列入表中 第三章第三章 分布式系统中的通信分布式系统中的通信 事务并发控制事务并发控制 锁机制锁机制 可能引起死锁可能引起死锁 空间数据上锁的粒度问题空间数据上锁的粒度问题 乐观机制乐观机制 冲突处理:为每个数据结构记录读、写时间,在提冲突处理:为每个数据
12、结构记录读、写时间,在提交时刻检查,若已被其他事务修改,本事务中止,否则提交时刻检查,若已被其他事务修改,本事务中止,否则提交。在重负载时,失败率急剧上升。交。在重负载时,失败率急剧上升。时间邮戳时间邮戳 约定:每个数据只有一个版本约定:每个数据只有一个版本第三章第三章 分布式系统中的通信分布式系统中的通信 方法方法1 1:设置两类时间邮戳:事务开始邮戳,数据访问邮戳设置两类时间邮戳:事务开始邮戳,数据访问邮戳 事务提交前检查:若事务戳晚于所涉及数据上其它的数事务提交前检查:若事务戳晚于所涉及数据上其它的数据辍,表示该事务开始后所有数据未被其他事务访问,可据辍,表示该事务开始后所有数据未被其他
13、事务访问,可以提交,否则中止提交过程,失败!以提交,否则中止提交过程,失败!方法方法2 2:时间戳分为两类四种:读(尝试读时间戳分为两类四种:读(尝试读TTr r,结束读,结束读T Tr r)、)、写(尝试写写(尝试写TTW W,结束写,结束写T TW W),读写进行时用盖),读写进行时用盖“尝试尝试”,提交时盖,提交时盖“结束)。结束)。不要求严格保证互斥,只需保证不同事务的先后次序即不要求严格保证互斥,只需保证不同事务的先后次序即可。可。不会引起死锁,但实现复杂。不会引起死锁,但实现复杂。第三章第三章 分布式系统中的通信分布式系统中的通信例例两个事务两个事务a,b(其中(其中a先开始)的情
14、形。先开始)的情形。A.无冲突,可继续进行,其中无冲突,可继续进行,其中x,y代表任意的事务代表任意的事务B.B.有冲突,需中止有冲突,需中止C.C.对对A而言,等待而言,等待B的提交的提交Tr(x)Tw(y)Tw(a)Tr(a)Tr(x)Tw(y)Tr(a)Tr(b)Tw(a)Tr(b)Tw(a)Tw(b)Tr(a)Tw(b)Tr(a)Tw(b)Tw(b)Tr(a)第三章第三章 分布式系统中的通信分布式系统中的通信3 Client/Server3 Client/Server模型模型 应用系统的逻辑层次:应用系统的逻辑层次:表表 示示 逻逻 辑辑应应 用用 逻逻 辑辑数数 据据 操操 纵纵 逻
15、逻 辑辑数数 据据 库库 逻逻 辑辑第三章第三章 分布式系统中的通信分布式系统中的通信 应用系统的工作方式与结构:应用系统的工作方式与结构:Host-Based Device-Shared Client-Server Peer-to-Peer 从分布式系统角度来看,从分布式系统角度来看,client与与server的关系就是一组的关系就是一组协同进程关系,而且是一种主从关系协同进程。形成一对多协同进程关系,而且是一种主从关系协同进程。形成一对多的关系。的关系。第三章第三章 分布式系统中的通信分布式系统中的通信1.寻址问题:三种寻址方式寻址问题:三种寻址方式Client核心核心server核心核
16、心121:请求:请求 2:服务应答:服务应答Client核心核心server核心核心34121:广播:广播 2:应答:应答 3:请求:请求 4:服务应答:服务应答Client核心核心server核心核心Name server核心核心12341:查找:查找 2:NS应答应答 3:请求:请求 4:服务应答:服务应答第三章第三章 分布式系统中的通信分布式系统中的通信 评论:第一种:绑定,不透明;第二种:开销大;第三种:评论:第一种:绑定,不透明;第二种:开销大;第三种:集中式。集中式。2.消息传送原语消息传送原语 执行方式执行方式 阻塞方式,同步通信阻塞方式,同步通信 非阻塞方式,异步通信非阻塞方式
17、,异步通信 实现方式实现方式 缓冲方式,设置邮箱,消息在邮箱暂存。问题:邮箱缓冲方式,设置邮箱,消息在邮箱暂存。问题:邮箱满如何处置满如何处置 非缓冲方式,不设邮箱,消息直接送入接收者指定的非缓冲方式,不设邮箱,消息直接送入接收者指定的存储区,问题:存储区,问题:receive必须早于必须早于send,第三章第三章 分布式系统中的通信分布式系统中的通信3.可靠性问题可靠性问题 两次确认方法两次确认方法Client核心核心server核心核心13241.服务请求服务请求 2.请求确认请求确认 3.服务应答服务应答 4.应答确认应答确认2.确认在核心之间进行确认在核心之间进行一次确认方法一次确认方
18、法 省略请求确认,以服务应答隐含代替省略请求确认,以服务应答隐含代替第三章第三章 分布式系统中的通信分布式系统中的通信Client-server通信协议通信协议消息代码消息代码 消息类型消息类型 发送者发送者 接收者接收者 说说 明明REQ 服务请求服务请求 client server client请求服务请求服务REP 服务结果应答服务结果应答 server client server回送结果回送结果ACK 接收消息确认接收消息确认 任意任意 任意任意 消息已经收到消息已经收到AYA 询问:还活着吗询问:还活着吗 client server 了解是否故障了解是否故障IAA 回答:还活着回答:
19、还活着 server client 回答:无故障回答:无故障TA 再试一次再试一次 server client server邮箱已满邮箱已满AU 地址不详地址不详 server client 无进程用此地址无进程用此地址消息代码消息代码 消息类型消息类型 发送者发送者 接收者接收者 说说 明明REQ 服务请求服务请求 client server client请求服务请求服务REP 服务结果应答服务结果应答 server client server回送结果回送结果ACK 接收消息确认接收消息确认 任意任意 任意任意 消息已经收到消息已经收到AYA 询问:还活着吗询问:还活着吗 client se
20、rver 了解是否故障了解是否故障IAA 回答:还活着回答:还活着 server client 回答:无故障回答:无故障TA 再试一次再试一次 server client server邮箱已满邮箱已满AU 地址不详地址不详 server client 无进程用此地址无进程用此地址第三章第三章 分布式系统中的通信分布式系统中的通信4.组通信组通信 组有动态性,单个结点可以是多个组的成员组有动态性,单个结点可以是多个组的成员 组通信分类组通信分类 原子组播原子组播 所有组员要么全部收到,要么都不收到所有组员要么全部收到,要么都不收到 实现:设置定时器,发送者在定时结束时发出停止传递消息实现:设置定
21、时器,发送者在定时结束时发出停止传递消息 接收者若未收到停止传递消息则转播(组播)接收者若未收到停止传递消息则转播(组播)可靠组播可靠组播 任意组员有应答即可任意组员有应答即可 不可靠组播不可靠组播 播出去即可播出去即可第三章第三章 分布式系统中的通信分布式系统中的通信 定序问题定序问题 网络传播时间上具有不确定性,定序不当将破坏数据一网络传播时间上具有不确定性,定序不当将破坏数据一致性。两个冗余的数据库服务器:致性。两个冗余的数据库服务器:server 1server 2client1client11234Client1首先组播:首先组播:A改为改为5,B改为改为4;client4组播:组播
22、:A改为改为10,B改为改为A+B;正确结果:两库均为:;正确结果:两库均为:A=10,B=14 若通信次序如图,若通信次序如图,server1中中A=10,B=14;server2中中A=5,B=4库中库中A、B初值任意初值任意第三章第三章 分布式系统中的通信分布式系统中的通信 全局定序全局定序ABCAST 类似两阶段提交,发送者对消息附加类似两阶段提交,发送者对消息附加“序列邮戳序列邮戳”并并组播;接收者返回一个自己的序列邮戳(大于它任何收到或组播;接收者返回一个自己的序列邮戳(大于它任何收到或发送的邮戳值);发送者收到所有回执后,选其中最大者附发送的邮戳值);发送者收到所有回执后,选其中
23、最大者附加在提交消息中组播,服务器的提交工作按邮戳次序进行。加在提交消息中组播,服务器的提交工作按邮戳次序进行。因果定序因果定序CBCAST 每个组员都维护一个其个数与组员相等的向量,分别每个组员都维护一个其个数与组员相等的向量,分别每个分量与一个组员对应,初值均为零。每个组员组播消息每个分量与一个组员对应,初值均为零。每个组员组播消息时,将代表自己的分量加时,将代表自己的分量加1后发出消息,接收者接收来自成后发出消息,接收者接收来自成员员j的消息并处理必须符合条件:的消息并处理必须符合条件:Vj=Lj+1且且ViLi(ij),否),否则延迟接收与处理。则延迟接收与处理。第三章第三章 分布式系
24、统中的通信分布式系统中的通信ABC(0,0,0)(0,0,0)(0,0,0)M1(1,0,0)M2(1,0,0)(1,1,0)消息消息2虽到达,但必须推迟提交虽到达,但必须推迟提交消息消息1到达并提交到达并提交消息消息2 2推迟后提交推迟后提交第三章第三章 分布式系统中的通信分布式系统中的通信468210368215358215378215268215378315成员号成员号012345组播组播接收接收延迟延迟接收接收延迟延迟接收接收第三章第三章 分布式系统中的通信分布式系统中的通信 组播的设计组播的设计 原则原则 效率:充分利用网络层提供的组播寻址功能效率:充分利用网络层提供的组播寻址功能
25、可靠性:防止消息没有送到或只有部分送到后故障可靠性:防止消息没有送到或只有部分送到后故障 可监控:能判断成员故障,能必要时重发可监控:能判断成员故障,能必要时重发 设计问题讨论设计问题讨论 封闭式与开放式小组:前者适合并行处理,后者适封闭式与开放式小组:前者适合并行处理,后者适合冗余服务器情形合冗余服务器情形 对等式与层次式结构:前者可靠但开销大,后者有对等式与层次式结构:前者可靠但开销大,后者有集中式缺点集中式缺点第三章第三章 分布式系统中的通信分布式系统中的通信 组的管理问题:设立组管理器,有集中式弊病但简单;组的管理问题:设立组管理器,有集中式弊病但简单;组管理分散则复杂,开销大组管理分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 系统 中的 通信 5076
限制150内