Windows Cluster 分布式算法

news2024/9/23 1:31:34

在分布式系统中,都需要解决分布式一致性问题。那么,在Windows 集群中,使用了什么算法来保证集群的一致性呢——Paxos。Windows Server 故障转移集群 (WSFC) 使用 Paxos 算法在整个系统中同步更改。通过记录 Paxos Tag 值并保留历史记录,可以轻松监控节点之间的集群数据库同步。在分布式系统中,每个节点都存储提案数据。在Windows 集群中,节点和见证磁盘存储提案数据。

注意:文件共享见证并不存储集群数据(历史原因这就不得而知了)

在 Windows Server 集群中,集群数据库是存储集群配置的地方。这是一个名为 CLUSDB 的文件,其中包含一些辅助文件(CLUSDB.1.container、CLUSDB.2.container、CLUSDB.blf),你可以在 C:\Windows\Cluster (%systemroot%\Cluster) 中找到这些文件。

图片

集群数据库也存在于一个注册表配置单元中,该配置单元在集群服务启动时会被加载。数据在 HKEY_LOCAL_MACHINE\cluster。

图片

现在我们知道注册表存在于多个位置并在节点之间进行复制。这种复制对于一个健康的集群来说是至关重要的。你可以在名为 PaxosTag 的集群键下看到一个 DWORD 值(如上图)。这个就是版本号,它跟踪记录集群的任何更改,这对于节点和磁盘见证(如果存在)之间的集群数据库一致性很重要。如果你更改了集群配置,Paxos Tag的数值也将变化。

这是新版的 Paxos Tag 格式,也是使用冒号分隔为三段数据,例如 2021/01/13-07`59`06.363_28:2021/01/13-07`59`06.363_28:123416

每次更改集群配置时,内部同步过程都会向集群中的所有节点发送提案。这由一个序列号(Sequence Numbe)和一个提案号(ProposalNumber)组成。一旦提案者从大多数节点获得共识,它将选择一个值并将其广播给所有其他节点以提交该值。这是Paxos Tag算法的内部工作原理。
 

在Windows Server 2008 故障转移群集中,Paxos Tag由三个数字组成, 每个数字用冒号分隔开,例如 3:3:276。这三个数字表示NextEpochNumber、 LastUpdateEpoch Number和Sequence Number。该数字存储在注册表HKLM\Cluster 的PaxosTag中,在各个节点中应是保持相同的。

图片

当集群形成时,Epoch 数值将改变(新版本为集群形成时间戳)。每次对集群配置进行更新时,都会更最后的改序列号值。集群中的同步过程向集群中的所有节点发送一个提案。该提案由一个序列号和一个提案号组成。集群节点检查其集群配置的本地副本,以查看它是否具有更新的序列号或更高的提案号。如果节点没有更高的数字,则节点将接受提案值并发送回提案节点。如果集群中的大多数节点都接受了同一个提案,那么集群将达成“共识”。

所以,只有当集群恢复正常、或使用/forcequorum 开关(/FQ)启动集群时,Paxos Tag 的Epoch会发生改变。

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

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

相关文章

连锁门店如何搭建B2B2C多用户商城系统?

现在很多的线下店铺都开始慢慢的转型线上了,想线上线下相结合,但是最近很多的商家都在问什么样的B2B2C商城系统开发适合线下店铺呢?这个问题今天加速度jsudo小编给大家一起整理如下,相信商家看完后就知道如何选择一款合适的商城系统了。 一、…

【C语言】求序列前N项和

问题描述 输入一个正整数n&#xff0c;输出2/13/25/38/5…的前n项之和&#xff08;该序列从第2项起&#xff0c;每一项的分子是前一项分子与分母的和&#xff0c;分母是前一项的分子&#xff09;&#xff0c;保留2位小数。试编写相应程序。 代码实现 #include<stdio.h>…

spring-14优化性能

原始Junit测试Spring的问题 这里的&#xff1a;第一行代码获得应用上下文对象&#xff0c;第二行代码获得你那个对象 2、原先测试找junit&#xff0c;现在测试找spring&#xff0c;然后再找&#xff0c;junit&#xff0c;告诉我配置文件是什么&#xff0c;然后注入测试对象&am…

LeetCode 172.阶乘后的零

基础方法就是暴力解&#xff0c;其次是数学归纳。 具体思路如下&#xff1a;&#xff08;copy大佬的&#xff09; 耐心看完&#xff01; 代码如下&#xff1a; #include <iostream> #include <vector> #include <cmath> #include <algorithm> #incl…

Android GridPager实战,从RecyclerView to ViewPager

这个简单的的案例展示了如何从RecyclerView to ViewPager&#xff0c;以网上的公开图片为样例。 安卓开发中从RecyclerView 到 ViewPager demo运行结果demo项目工程目录结构关键代码 MainActivity关键代码GridFragment关键代码ImageFragment关键代码ImagePagerFragment关键布局…

关于示波器引入50HZ工频干扰的解释

前几天&#xff0c;小白在实验室工作时&#xff0c;听到同事抱怨示波器有问题。上前查看&#xff0c;才知道&#xff0c;小白的那位同事在测量信号波形时&#xff0c;实际与理想相差甚远。于是乎&#xff0c;在探头什么也不接的情况下&#xff0c;发现示波器本身也存在波形信号…

2022Robocom国赛-u2 女王的大敕令

副本是游戏里的一个特色玩法&#xff0c;主要为玩家带来装备、道具、游戏资源的产出&#xff0c;满足玩家的游戏进程。 在 MMORPG《最终幻想14》里&#xff0c;有一个攻略人数最大达到 48 人的副本“零式贡希尔德神庙”&#xff0c;其中守关 BOSS “天佑女王”有一个很有趣的技…

图形编辑器开发:一些会用到的简单几何算法

大家好&#xff0c;我是前端西瓜哥。 开发图形编辑器&#xff0c;你会经常要解决一些算法问题。本文盘点一些我开发图形编辑器时遇到的简单几何算法问题。 矩形碰撞检测 判断两个矩形是否发生碰撞&#xff08;或者说相交&#xff09;&#xff0c;即两个矩形有重合的区域。 …

C生万物 | 程序员必备实用调试技巧分享

一起来学习调试~ 一、前言二、什么是Bug&#xff1f;三、调试是什么&#xff1f;有多重要&#xff1f;1、导学引入2、调试的基本步骤3、Debug和Release的介绍 四、Windows环境下VS调试介绍1、调试环境的准备2、学会快捷键3、调试的时候查看程序当前信息3.1 查看临时变量的值3.2…

基于SSM的购物商城系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

SpringBoot中通过自定义Jackson注解实现接口返回数据脱敏

场景 SpringBoot中整合Sharding Sphere实现数据加解密/数据脱敏/数据库密文&#xff0c;查询明文&#xff1a; SpringBoot中整合Sharding Sphere实现数据加解密/数据脱敏/数据库密文&#xff0c;查询明文_霸道流氓气质的博客-CSDN博客 上面讲的是数据库中存储密文&#xff0…

音乐格式转换mp3软件有哪些?分享三个方法给大家!

要将音乐文件转换为MP3格式的情况&#xff0c;以便在各种设备上播放。为了帮助大家完成这个任务&#xff0c;下面将分享三种实用的方法和工具&#xff0c;其中方法一是使用记灵在线工具进行音乐格式转换。无论您是音乐爱好者还是需要将音频文件转换为MP3格式的专业人士&#xf…

障碍物距离显示需求功能定义

1. 需求 来源 整车功能定义清单中SAF-10 -06 条需求 。泊车视觉辅助 &#xff0c;360全景 -距离树数值显示时&#xff0c;显示车辆与障碍物的距离数字 。 2. 开发 范围 项目带全景功能的配置&#xff0c;见最新配置表&#xff1a; 3. 功能 定义 在雷达报警激活状态下&#xff0…

SSM入门—Spring框架-IOC简单案例

目录 控制反转&#xff1a;创建对象 基于XML实现 基于注解实现 依赖注入&#xff1a;对象赋值 通过xml注入 控制反转&#xff1a;创建对象 把对象的创建权交给了Spring容器 基于XML实现 1、maven 导入依赖 <!--Maven会自动添加当前jar依赖的其他jar--> <depen…

第一章 数据库的操作

第一章 数据库的操作 一、库的操作1、创建数据库&#xff08;1&#xff09;语法&#xff08;2&#xff09;字符集与校验规则a.定义 &#xff08;3&#xff09;创建不同字符集与校验规则的数据库 2、查看数据库&#xff08;1&#xff09;语法&#xff08;2&#xff09;示例 3、显…

自定义类型——结构体,枚举,联合(详,真的太详了)

一.结构体 1.1什么是结构体&#xff0c;结构体如何声明和定义变量&#xff1f; 结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量。 struct 变量名 { 不同类型的成员变量&#xff1b; }&#xff1b; 一定要记得在花括号的后面加上分…

5.4 python内置高阶函数之--map、reduce、filter、sorted

高阶函数满足条件&#xff1a;1、 函数名被作为参数传给另外一个函数2、 函数返回值为另外一个函数&#xff08;返回为自己&#xff0c;则为递归&#xff09;一、 高阶函数&#xff1a;map 【 map函数】说明可以去查看源码&#xff0c; 会发现&#xff1a;map的__init__中有两个…

deeplabv3+源码之慢慢解析 第二章datasets文件夹(3)cityscapes.py--Cityscapes类

系列文章目录&#xff08;更新中&#xff09; 第一章deeplabv3源码之慢慢解析 根目录(1)main.py–get_argparser函数 第一章deeplabv3源码之慢慢解析 根目录(2)main.py–get_dataset函数 第一章deeplabv3源码之慢慢解析 根目录(3)main.py–validate函数 第一章deeplabv3源码之…

MyBatis-Plus学习总结

目录 1.MyBatis-Plus介绍 2.第一个MyBatis-Plus程序 3.配置日志输出 4. 主键生成策略 4.1 ID_WORKER -- 雪花算法 4.2 主键生成策略 -- 详情 5. 自动填充 6.MyBatis-Plus的CRUD 6.1 insert -- 插入 6.2 delete -- 删除 6.3 update -- 更新 6.4 select -- 查询 7. …

Nacos报错Could not resolve placeholder ‘order.name‘ in value “${order.name}“怎么解决?

出现这个原因有两个&#xff1a; 1.首先在Nacos配置中心&#xff0c;写入yml配置文件的数据和后端服务在取数据的时候名称不一致 如下图&#xff0c;现在我的配置中心为order-service 看看其中的文件内容信息&#xff1a; 再看看后端是怎么取的&#xff1a; 看出上面错误了吗…