向量时钟算法

news2024/10/6 6:52:45

向量时钟不仅同步本进程的时钟值,而且还同步已知的其他进程时钟值

分布式系统中每个进程Pi保存一个本地逻辑时钟向量值VCi,VCi(j)代表进程Pi知道的进程Pj的本地逻辑时钟值

  1. 初始化VCi向量为[0,…]
  2. 进程Pi每发生一次事件,VCi[i]加一
  3. 进程Pi给进程Pj发送消息,需带上自己的向量时钟VCi
  4. 进程Pj接收消息后
    1. 更新VCj向量为VCj向量与VCi向量中的最大值
    2. 将VCj中自己对应时钟值加一,也就是VCj[j]加一

从以上算法可以很容易地得出下面两个结论:

  1. 同一个进程内的两个事件a和b,如果 a → b,那么 VCi (a) < VCi (b)。
  2. a是Pi进程的消息发送事件,b是Pj进程该消息的接收事件,那么 VCi (a) < VCj (b)。

那么如何证明VC(a) < VC(b) 可以推导a → b呢?

如果事件a、b在同一个进程,那么肯定a->b

如果事件a、b分别在进程Pa和Pb中那么设c为发送a更新事件,d为接收a更新时间

在这里插入图片描述

  • 如果a=c且d=b,那么显然a->b
  • 如果a=c且d->b,那么a->b
  • 如果a->c且d=b,那么a->b
  • 如果a>c且d->c,那么a->b

因此可得VC(a)<Vc(b)的情况下,a->b

Ref

  1. https://yang.observer/2020/09/12/vector-clock/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/510086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应付模块无法关账问题 APP-AR-11332 您必须在关闭此期之前过账其中的所有事务处理

问题描述 AR关账时遇到了这个问题&#xff0c;根本原因是&#xff0c;因为用户录入另一个贷项的发票&#xff0c;做过核销&#xff0c;后来又取消了核销&#xff0c;未创建会计分类&#xff0c;未传送总&#xff0c;不想要这个贷项发票了&#xff0c;前台删除不了&#xff0c;…

经验分享,api 接口设计原则有这几条

结合我多年在 API 行业摸爬滚打的经验&#xff0c;我总结了一下&#xff0c;API 接口设计原则有这几条&#xff1a; 接口设计应该简单易用&#xff0c;易于理解和使用&#xff1b; 接口设计应该支持多种格式&#xff0c;如JSON、XML等&#xff1b; 接口设计应该支持多种请求方…

渲染速度慢,使用云渲染会快多少?

设计师在使用软件制作效果图和动画师在制作动画时&#xff0c;其中有一个比较关键的环节就是渲染成像&#xff0c;渲染的效率主要跟使用的电脑显卡或CPU性能有关&#xff0c;如果性能太低&#xff0c;渲染的速度会很慢&#xff0c;拉长了项目整体的交付周期&#xff0c;云渲染速…

Vite + Vue3 实现前端项目工程化

Vue3 发布至今&#xff0c;周边的生态、技术方案已足够成熟&#xff0c;个人认为新项目是时候切换到 Vite Vue3 了。今天就给大家操作一下这种技术方案实现前端工程化。 1. 初始化项目 通过官方脚手架初始化项目 第一种方式&#xff0c;这是使用vite命令创建&#xff0c;这种…

FM33A048B SPI1/2

概述 芯片的2 个SPI 接口模块SPI1 和SPI2&#xff0c;可配置为主设备或从设备&#xff0c;实现与外部的SPI 通信。 特点&#xff1a; ⚫ 全双工3线串行同步收发 ⚫ 2路独立通道 ⚫ 主从模式 ⚫ 可编程时钟极性和相位 ⚫ 可编程比特速率 ⚫ 从模式最大频率为FAHBCLK/2 ⚫ 传输结…

Hello算法——笔记

文章目录 1 引言算法数据结构算法和数据结构的关系 2 复杂度分析时间复杂度空间复杂度 3 数据结构数据与内存数据结构分类 4 数组与链表 参考资料 1 引言 算法 算法是一组用于解决特定问题或执行特定任务的明确定义的计算步骤或指令集合。算法可以被视为一种解决问题的方法或…

【iOS】--手势操作

文章目录 UIGestureRecognizer 的继承关系&#xff1a; 使用手势步骤UIPanGestureRecognizer&#xff08;拖动&#xff09;UIPinchGestureRecognizer(拖动&#xff09;UIRotationGestureRecognizer&#xff08;旋转&#xff09;UITapGestureRecognizer&#xff08;点按&#xf…

浅谈造纸配电室环境监控系统的应用案例

摘要&#xff1a;智能配电室环境监控系统可实现自动巡检、自动预警等功能&#xff0c;减少人员到现场巡视次数&#xff0c;能及早发现设备的潜在风险&#xff0c;迅速检测故障&#xff0c;节约维护保养时长&#xff0c;为配电生产检修、运行、各业务的标准化、规范化管理提供有…

【Flowable】Flowable候选人和候选人组

在流程定义中在任务结点的 assignee 固定设置任务负责人&#xff0c;在流程定义时将参与者固定设置在.bpmn 文件中&#xff0c;如果临时任务负责人变更则需要修改流程定义&#xff0c;系统可扩展性差。针对这种情况可以给任务设置多个候选人或者候选人组&#xff0c;可以从候选…

IntelliJ IDEA编辑模板变量详解(Edit Template Variables)

函数描述annotated(“annotation qname”)使用驻留在指定位置的注释创建类型符号。 例如&#xff0c;请参见迭代组中的活动模板。anonymousSuper()为Kotlin对象表达式建议一个超类型。arrayVariable()建议当前作用域中适用的所有数组变量。 例如&#xff0c;请参见迭代组中的活…

ACM - DP习题集(word里面的一小部分题集)

DP 一、经典问题1、编辑距离2、扔鸡蛋问题3、整数背包4、最大独立集5、最长公共子序列6、最长公共递增子序列7、最长公共子串&#xff08;ing&#xff09;8、最长上升子序列9、最长回文子序列10、最长回文子串&#xff08;ing&#xff09;11、最长不重复子字符串&#xff08;in…

OpenGL教程中矩阵Matrix的介绍

变换 原文Transformations作者JoeyDeVries翻译Django, Krasjet, BLumia校对暂未校对 尽管我们现在已经知道了如何创建一个物体、着色、加入纹理&#xff0c;给它们一些细节的表现&#xff0c;但因为它们都还是静态的物体&#xff0c;仍是不够有趣。我们可以尝试着在每一帧改变…

Python 操作 Excel,如何又快又好?

➤数据处理是 Python 的一大应用场景&#xff0c;而 Excel 则是最流行的数据处理软件。因此用 Python 进行数据相关的工作时&#xff0c;难免要和 Excel 打交道。Python处理Excel 常用的系列库有&#xff1a;xlrd、xlwt、xlutils、openpyxl ◈xlrd &#xff0d; 用于读取 Exce…

import一个“太极”库,让Python代码提速100倍!

众所周知&#xff0c;Python的简单和易读性是靠牺牲性能为代价的—— 尤其是在计算密集的情况下&#xff0c;比如多重for循环。 不过现在&#xff0c;大佬胡渊鸣说了&#xff1a; 只需import 一个叫做“Taichi”的库&#xff0c;就可以把代码速度提升100倍&#xff01; 不信…

0-1规划在编程问题中的应用(UnityC#脚本/折返约瑟夫/OpenGL机器人摆臂循环)

一、0-1规划的定义 百度百科的解释&#xff1a;0-1规划是决策变量仅取值0或1的一类特殊的整数规划。在处理经济管理中某些规划问题时&#xff0c;若决策变量采用 0-1变量即逻辑变量&#xff0c;可把本来需要分别各种情况加以讨论的问题统一在一个问题中讨论。 如上面所说&…

记csdn打不开或打开缓慢后的修复--如何查找dns并修改hosts文件

记csdn打开缓慢后的修复–如何查找dns并修改hosts文件 问题&#xff1a; CSDN文章打开的十分缓慢&#xff0c;经常出现无法打开页面的错误提示 &#xff08;以前用的好好的&#xff0c;现在不知道公司局域网改了什么东西&#xff0c;导致我的电脑打开CSDN经常缓慢好久&#x…

ACM - 其他算法 - 基础(前缀和 + 差分)

ACM- 其他算法 一、前缀和模板例题1、区间余数求K倍区间个数&#xff1a;AcWing 1230. K倍区间例题2、前缀和哈希求最长个数平分子串:Leetcode 面试题 17.05 字母与数字 二、差分1、一维差分2、二维差分 一、前缀和 模板 //一维前缀和 S[i] a[1] a[2] ... a[i] a[l] ... …

【行情速递】MLCC龙头涨价;车厂砍单芯片;台积电28nm设备订单全部取消!

导语&#xff1a;进入第二季度&#xff0c;MLCC龙头三环集团官宣涨价!风华高科紧随其后。车市价格战蔓延至芯片端&#xff0c;车厂开始砍单芯片&#xff0c;短短半年时间不到&#xff0c;车用芯片市场从价格飞涨和一片难求的背景&#xff0c;转为砍单与降价促销...更多详情请阅…

智能警示输出器在ESD系统中的作用

ESD&#xff08;Electrostatic Discharge&#xff09;是指静电放电&#xff0c;是一种电子元器件损坏的主要原因之一。在电子制造业中&#xff0c;ESD防静电系统是非常重要的&#xff0c;可以有效地保护电子元器件&#xff0c;避免因静电放电而造成的损坏和故障。而智能警示输出…

Spring事务(编程式事务声明式事务)

Spring中编程式事务的实现&#xff1a; 此方式包含了三个重要的操作&#xff1a;获取事务、提交事务、回滚事务。 以及依赖两个重要的对象&#xff1a;DataSourceTransactionManager、TransactionDefinition 使用编程式事务示例&#xff1a; RestController public class Use…