转自:http://www.cnblogs.com/aspnetdream/p/6105687.html

一、问题产生

时间是一个绝对量,而实体计算机的时间是相对量

1、  物理天地本身导致的时间不一致,地球自转、闰年、闰秒

2、  现实的不能绝对一致性,A机器时间同步至B机器,网络传输时间是不确定性的,AB存在绝对不一致性

如上图,computer A在2144  Tick点执行分布式任务 create output.o,注意2144是A的绝对计算量、而此时的集群computer B也许出于2143 Tick点,即使B也运气恰到好处的出于2144 Tick,A任务同步至B消耗的Tick是不确定的。获取是2144也有可能是2143,倘若如上图,ouput.c created在B小于created 2144时间点,时间戳make问题就出现了。

二、逻辑时钟

1、Berkeley算法:分布式服务器定时轮询所有服务器,各台服务器依据同步结果,决定本台服务器的Tick快慢同步是时间


三台服务器明显不一致,3:00仲机器在轮询其他机器时候,分别有2:50,3:25,那么他们是分别加10分钟和减20分钟来同步时间吗?显然不行,各台机器本身是存在事务日志的,如果本身时间进行人为修改,事务时间戳就会出现混乱。此时应该是各台服务器调慢或调快各自时间Tick已达到三台时间Tick一致。

2、  Lamport算法时钟同步

在红箭头时间点,从理想主义角度而言,始终应该是一致的,但现实是明显不一致的,两条偏移线要向Perfect看齐

T2的时间传播到T1,T1时间Tick慢,T4在应答时间戳上要进行同步了,解决上述问题

保证逻辑的一致性就需要计算出偏移量,偏移量用途

P1发起分布式任务到P2大于任务时间戳6,继续传播到P3小于时间戳40,应答回传56,时间戳小了,如果继续回传P1 54,更小了,于是需要计算偏移量机型时间一致性

如:

偏移量调整时间过程示意

Perfact解决方案

不使用同步算法,导致的结果是灾难性的,update1和update2的任务在1和2上的执行顺序显然不能混乱,并且需要连续性。就好比银行是先转账还是先计息,也许,或者可能这是业务需要考虑的问题,ok,那么1和2能够一致性执行update1和update2就是分布式需要解决的技术问题。

解决

1在执行update1时候进行广播,”你们都给听好了,我要执行update1操作”

2收到广播“好的,你执行,我也开始执行了”

于是update1的执行保障了一致性。当2故障或者2没有收到update1或update2,广播应答结果就是“NO,你别执行哈,执行要出乱子的”,ok,connection refused or time out。

3、因果一致性

P0执行任务,写入时间戳100,广播P1、P2,P2执行相同的分布式任务,P2这是发起了分布式任务写入时间戳110,100和110广播到P2时候,P2执行100时候,发现时间戳有问题,告诉P2不能执行110和000, 因为100尚未执行,那么按照时间戳排序执行。

锁的因果一致性

1执行3并取得3 locker,2需要执行3,不好意思,3已经被locker,进入队列,当3被释放才有2的执行权。

分布式系统时钟同步方案相关推荐

  1. 北斗卫星同步时钟在分布式系统时钟同步的重要性

    北斗卫星同步时钟在分布式系统时钟同步的重要性 因为分布式系统使用分布式算法,所以它的同步机制比集中式系统更为复杂.在集中式系统中能够做到的,在某一位置上能集收到系统的所有信息,然后由某些进程检测这些信 ...

  2. FusionCloud 桌面云时钟同步方案介绍

    FusionCloud 桌面云时钟同步方案介绍 时钟同步是桌面云系统稳定运行的必备条件.如果时钟不同步,会导致桌面云系统管理混乱.时钟同步保证桌面云系统时钟.虚拟机时钟一致. 当客户未提供外部时钟源, ...

  3. 中兴如何远程服务器时间同步,IPRAN时钟同步方案分析

    随着4G通信技术越来越广泛的应用,无线回传网络进入全IP时代.传统无线基站通过GPS完成时钟.时间同步,但GPS占据一定的工程成本,并且存在较大国家安全隐患,再加上有些室内覆盖场景无法部署GPS,运营 ...

  4. 时钟同步技术解析:原子钟实现 Ture-time 机制

    导读 在分布式数据库系统中,为了解决不同集群.节点事件发生的先后顺序问题,时钟同步至关重要.本文将为大家介绍业界现有的几种主流的时钟同步解决方案,以及分布式数据库云溪数据库基于原子钟技术实现的 Tur ...

  5. GPS北斗授时服务,NTP让网络时钟同步更精确

    GPS北斗授时服务,NTP让网络时钟同步更精确 GPS北斗授时服务,NTP让网络时钟同步更精确 1.时间同步技术必定将是整个大数据处理系统的重要支撑和保障.时间同步技术使数据产生与处理系统的所有节点具 ...

  6. 时钟同步产品(时间同步系统)技术应用方案

    时钟同步产品(时间同步系统)技术应用方案 分布式系统由Tanenbaum定义,"分布式系统是一组独立的计算机,在"分布式系统 - 原理和范例"中作为用户的单一,连贯的系统 ...

  7. 电厂时钟同步设备(卫星同步时钟)应用方案

    电厂时钟同步设备(卫星同步时钟)应用方案 电厂时钟同步设备(卫星同步时钟)应用方案 目前国内电网逐步形成以大机组,超高压和高自动化为主要特征的现代化大电网,电网运行瞬息万变,发生事故后更要掌握实时信息 ...

  8. 电力方案 | 国产助力!时钟同步服务器对电力系统有多重要?

    随着计算机和网络通信技术的飞速发展,火电厂热工自动化系统数字化.网络化的时代已经到来.一方面它为控制和信息系统之间的数据交换.分析和应用提供了更好的平台,另一方面对各种实时和历史数据时间标签的准确性提 ...

  9. 1588PTP时钟同步(网络时钟服务器)技术应用方案

    1588PTP时钟同步(网络时钟服务器)技术应用方案 1588PTP时钟同步(网络时钟服务器)技术应用方案 京准电子科技(VX-ahjzsz)原创文章,请勿转载. 概述 1.1. PTP起源 伴随着网 ...

  10. 分布式系统-同步化-时钟同步-物理时钟与Lamport时间戳(逻辑时钟)

    1.概述 同步化是分布式系统中的一个重要概念,同步化主要解决的是排序问题.例如:多个线程不能同时操作一个变量,而是将多个线程使用锁或无锁结构进行同步,同步的目的就是将多个线程排序为一个操作时序对这个变 ...

最新文章

  1. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~
  2. async js 返回值_JS异步编程 | Async / Await / Generator 实现原理解析
  3. 知识图谱资源-NLP
  4. [bzoj5405]platform
  5. php phpredis,PHP_PHP中redis的用法深入解析,redis是一个key-value存储系统。 - phpStudy...
  6. Java基础学习总结(152)——JDK 1.7和 JDK 1.8中HashMap的实现有什么不同?
  7. svn从本地更新了资源库的资源后删除了某个文件夹无法恢复(已解决)
  8. C#学习笔记二: C#类型详解
  9. quartz mysql 配置_quartz的数据库配置
  10. 示波器上1G/S 100MHZ的含义
  11. 热敏电阻温度计算 公式 程序
  12. 微信支付服务商平台(商户平台)扫码登录后提示“登录超时,请重新登录”时该怎么处理?
  13. mysql mysqld multi_MySQL 使用mysqld_multi部署单机多实例详细过程 (转)
  14. 一位苦逼程序员的找工作经历
  15. 【C++】DISALLOW_COPY_AND_ASSIGN
  16. android 装苹果系统,安卓机子安装苹果IOS系统?
  17. (仿微信Android)IM聊天+抢红包+直播+朋友圈源码发布了
  18. 尝试用Unity还原蔚蓝(Celeste)—— 真·操控、移动、手感篇
  19. ant man什么意思_-ant是什么意思_-ant的翻译_音标_读音_用法_例句_爱词霸在线词典...
  20. Base64编码和Python解码

热门文章

  1. ios隐私政策_新的iOS 14已经揭露了严重的隐私问题
  2. Oracle Toad 导数,麒峰
  3. Linux下基础命令(二)
  4. android 一个比较好的CoolRefreshView 上啦下拉刷新
  5. chatter命令详解(用来记录知识)
  6. 蚂蚁的愤怒之源(落日余晖)-终结篇
  7. 深度学习图片数量较少扩充数据集的方法
  8. MySQL锁与事务知识结构脑图
  9. CodeLite配置
  10. EnjoyToShare | 考研英语复试口语