网站大量收购独家精品文档,联系QQ:2885784924

DOSCHSyncv.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DOSCHSyncv.ppt

第6章 分布式同步控制 东北大学信息学院 于 戈 2008年10月 主要内容 6.1 物理时钟同步 6.2 逻辑时钟同步 6.3 互斥控制 6.4 选举算法 6.5 *分布式事务管理 6.6 *分布式死锁处理 6.7 小结 6.8 习题 6.1物理时钟同步 分布式协同处理 基于时间的同步 分布式算法的特点 相关信息散布在多个场地上 每个进程只能基于本地信息做决定 应避免因单点失败造成整个系统的失败 不存在公共时钟或精确的全局时间 时钟同步问题 例:makefile误差 物理时钟与现实时钟 日中天(transit of the sun):太阳升到一天的最高点 太阳日:连续的两次日中天的时间 太阳年:地球围绕太阳旋转360o(一周)。 太阳秒:solar-day/24*3600=solar-day/86400 平均太阳秒:n solar-days/n*86400 如,格林威治时间 现实时钟 TAI秒:国际原子时间 铯133原子钟:9,192,631,770次跃迁/1秒 BIH统计50个实验室原子钟后的平均值 UTC秒:世界时间 在TAI秒中加入闰秒 时间服务: 美国WWV电台(NIST)、GEOS卫星 例:GPS全球定位系统 GPS卫星 使用4个原子时钟 周期地广播定位消息p,t 即,当前位置,当前时间 接收器 接收(xi,yi), ti di = c(tnow – ti) d =di+cΔi d = 例:GPS全球定位系统 求解方程组(扩展到3维,需4颗卫星) 可求出(xr,yr,zr),以及Δr 时钟同步算法 如何与现实时钟同步 如何使不同机器之间相互同步 设进程P的机器时钟值Cp(t), t 为UTC时间 最大偏移率(ρ) 精确时钟: dC/dt =1 快时钟: dC/dt 〉1 慢时钟: dC/dt 1 时钟同步算法 时钟校正 设存在误差率ρ,允许误差δ; 由于最大可能误差2ρΔt ≤ δ,则Δt ≤δ/2ρ 需每隔δ/(2ρ)校准时间,进行校正 校准原则:单调递增↑ 假设:每秒产生100次中断,每次中断将时间加10毫秒 若调慢时钟,中断服务程序每次只加9毫秒; 若加快时钟,则加11毫秒。 网络时间协议 Christian算法 时间服务器,可接受WWV的UTC时间 每隔δ/(2ρ),客户机向服务器询问时间 服务器返回CUTC 客户机校正自己时间=CUTC+传播时间 传播时间=(T1-T0-I)/2 T0:请求时间,T1:到达时间 I:中断处理时间 假定双向路径相同 优化处理 设定传播阈值,超出阈值,认定无效 网络时间协议 时间服务请求过程参数 假定双向路径相同 T1:A请求时间, T2:B接收时间 T3:B发送时间, T4:A接收时间 传输延时 = dTreq≈dTres 时间偏差θ T1=T2 - dTreq + θ T4=T3+dTres+ θ δ=(dTreq+dTres)/2 = θ=T4-T3-dTres=T4 -T3 - δ= Berkeley 算法 – 主动式方法 时间监控器定期查询其他机器时间 计算出平均值 通知其他机器调整时间 平均值算法 – 非集中式方法 划分固定时间间隔R; 在每个间隔,所有机器广播自己的时钟时间 启动本地计时器收集在S时间间隔中到达的其他机器广播的时间 执行平均时间计算算法,得到新的时间值 多重外部时间源法 同步时钟的应用 最多一次消息提交 每个消息携带一个ID和一个时间戳ts(timestamp) 服务器的表T中,记录每个连接C最近的时间戳t 对到达的消息m,如果ts(m)t, 则拒绝m 同步时钟的应用 基于时钟的缓存一致性 当客户读取一个副本到缓存时,设置一个租期(lease) 在租期过期之前,客户可更新副本,重续租期 如果已经过期,缓存中的副本失效 6.2 逻辑时钟同步 计时器:石英晶体+计数器 时钟偏差(clock skew) 物理时钟:真实时间 逻辑时钟:相对时间 “之前”关系: ? 事件a在b之前出现,则a?b a为发送消息m,b为接收m,则a?b 具有传递性:a?b, b?c,则a?c 并发事件(concurrent) 两个事件相互对立。既不a?b,不 b ? a Lamport算法 C(a)表示事件a的时钟值。性质: if a?b;则C(a)C(b) ?a,b C(a)? C(b) C是递增的 校正算法 a?b, if C(b)C(a), 则C(b) = C(a) +1 Lamport算法 Lamport算法 举例:全序多播(1) 问题:两个进程分别对同一个复制数据库进行更新时,造成不一致状态 原因:全局次序不一致。u1→u2; u2→u1 举例:全序多播(2) 解决方案:全序多播 发送进程多播发送

文档评论(0)

000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档