Gossip分布式通信协议副本管理器说明

news/2024/11/25 15:33:44/

Gossip中副本管理器

副本管理器状态

  • 不考虑应用时一个副本管理器应该有的状态:
    • 值,这是由副本管理器维护的应用状态的值,每个副本管理器是一个状态机。起始于一个特定的初始值。此后的状态完全由更新操作决定。
    • 值的时间戳:代表更新的时间戳向量,每个副本管理器有一个记录,当在值上发生更新操作,时间戳会更新。
    • 更新日志:所有的更新操作,只要接收到了,就记录在日志中。
      • 一个副本管理器在日志中更新的理由:
        • 操作不稳定,副本管理器不能进行更新操作
        • 一个稳定的更新操作是可以在排序保证情况下一致的执行,不稳定的更新必须阻止。
        • 即使更新是稳定的,并且已经在值上执行更新,副本管理器并没有收到已经被其他副本管理器收到的确认,同时,它以gossip形式广播消息。
    • 复制时间戳:这个时间戳代表哪些已经被其它副本管理器接收确认更新,已经在管理器的日志中。
      • 值和时间戳不同,因为日志更新是不稳定的
    • 已执行操作表:同样的更新可以通过前端或者gossip消息广播形式发送给一个副本管理器,为了防止一个更新被执行了两次,系统维护一个已执行表操作。包含了已经执行更新的唯一标识,唯一标识由前端提供。副本管理器将更新写入日志前检查这个表
    • 时间戳表:这个表为每一个副本管理器包含了一个填充在gossip消息中的时间戳向量。
      • 副本管理器通过该表建立一个何时更新已经应用到所有副本管理器

在这里插入图片描述

核心设计

在Gossip中,每个节点都有一个状态,用于记录该节点的信息和状态。下面是Gossip中状态设计的说明:

节点状态:
每个节点都有一个状态,用于记录该节点的信息和状态。节点状态包括以下信息:

节点ID:用于唯一标识节点。
节点地址:用于标识节点的IP地址和端口号。
节点状态:用于记录节点的状态,包括活跃状态、失效状态等。
节点版本:用于记录节点的版本信息,用于判断节点之间的数据同步情况。
节点数据:用于记录节点的数据,包括键值对等信息。
状态更新:
在Gossip中,每个节点都会定期向其他节点发送状态信息,并接收其他节点的状态信息。当节点接收到其他节点的状态信息时,会根据接收到的信息更新自己的状态。状态更新包括以下几个步骤:

选择随机节点:节点会随机选择其他节点进行信息交换。
发送状态信息:节点会向其他节点发送自己的状态信息。
接收状态信息:节点会接收其他节点发送过来的状态信息。
更新状态信息:节点会根据接收到的状态信息更新自己的状态。
状态同步:
在Gossip中,节点之间的数据同步是通过状态更新来实现的。当节点接收到其他节点的状态信息时,会根据版本信息判断是否需要进行数据同步。如果版本信息不一致,节点会向其他节点请求最新的数据,并更新自己的数据。状态同步包括以下几个步骤:

判断版本信息:节点会根据版本信息判断是否需要进行数据同步。
请求最新数据:如果版本信息不一致,节点会向其他节点请求最新的数据。
更新数据:节点会根据接收到的最新数据更新自己的数据。
以上是Gossip分布式系统中状态设计的说明,节点状态、状态更新和状态同步是Gossip中的核心概念,需要在实现过程中加以考虑和处理。


http://www.ppmy.cn/news/287744.html

相关文章

苹果cms播放器html,苹果cms 全局播放器dplayer带后台Dplayer播放器苹果CMSV10插件

苹果cms 全局播放器dplayer带后台Dplayer播放器苹果CMSV10插件 在使用dplayer播放器播放视频的时候,我们可能会用的在视频播放前加个广告,暂停视频的时候,也加个广告什么的,就像爱奇艺视频、腾讯视频那样在播放前加贴片广告&#…

苹果播放器实现单曲循环

一直觉得苹果的音乐播放器比较坑。 但是,用了qq音乐播放器,发现,我竟然没法把电脑里的音乐导入到手机里。更坑。 必须重用苹果的音乐播放器。下简称MP(music player)。 因为学英语,必须要单曲循环无数遍&a…

苹果cms怎么用html5播放,苹果cms整合ckplayerx播放器教程

苹果cmsV8整合CKPlayer教程 1、首先找到苹果cmsV8的根目录,打开 /player/ 文件夹 2、新建一个 mp4.js 和 m3u8.js 文件,新建播放器代码内容如下:(两个内容一致)MacPlayer.Html ; MacPlayer.Show(); 3、新建保存后,将 mp4.js 和 m…

苹果CMX8的播放地址加密解决

修改 inc/common/template.php//url加密function encrypt($urljiami, $key2 22ad6h5){$coded ;$keylength strlen($key2);for ($i 0, $count strlen($urljiami); $i < $count; $i $keylength){$coded . substr($urljiami, $i, $keylength) ^ $key2;}return str_repla…

苹果cmsv10 dplayer播放器优化

播放器功能&#xff1a; 支持格式&#xff1a;m3u8、mp4播放记忆P2P加速(去除在视频中P2P信息)自动播放下一集&#xff08;仅电脑端&#xff09;去掉弹幕&#xff08;需要的自行去掉注释&#xff09;手机增加引导点击播放图片 使用方法&#xff1a; 将文件上传到自己的网站&…

苹果手机iphone如何播放电脑中的视频

用手机看视频已经是人们习以为常的事情了&#xff0c;随着手机容量的增大&#xff0c;很多人选择把视频下载到手机本地观看&#xff0c;但是有些视频我们存放在电脑上&#xff0c;想用手机看怎么办呢&#xff1f;很多人选择把视频用数据线传输到手机上&#xff0c;但是这样略显…

苹果cms播放器不能全屏播放解决方法

声明&#xff1a;除特殊声明外本站文档均由作者原创&#xff0c;转载请注明出处&#xff0c;原文地址&#xff1a;苹果cms播放器不能全屏解决方法 如果播放器被包含在 iframe 里&#xff0c;尝试在 iframe 上添加 allowfullscreen 属性。 默认状态&#xff0c;<iframe>…

超级lrc播放器——全平台上的lrc歌词播放器

昨晚忙了一晚上&#xff0c;终于把《超级lrc播放器》上架了应用市场。 下面&#xff0c;总结一下&#xff0c;本次上架应用市场的经验&#xff1a; 一、上架苹果市场&#xff1a; 1.1、最好不要使用Electron&#xff0c;Electron上架Apple Store存在被拒的很大风险&#xff…