掌桥专利:专业的专利平台
掌桥专利
首页

分布式集群的数据同步方法及其相关设备

文献发布时间:2024-04-18 19:58:21


分布式集群的数据同步方法及其相关设备

技术领域

本申请涉及计算机技术领域,特别是涉及分布式集群的数据同步方法及其相关设备。

背景技术

本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。不应以此处的描述包括在本部分中就承认是现有技术。

制品仓库存在需要在不同站点进行冗余备份,不同站点之间进行制品同步,这样在出现区域性问题时可以进行主从切换达到高可用的目的,同时,由于区域因素造成网络延迟也可以通过多站点部署解决。此外,在不同部署环境之间也存在制品同步的需求,未经验证的制品需要先在开发环境进行验证,在通过验证之后通过站点同步功能同步至稳定的生产环境中。

制品仓库的不同站点之间隔离,因此常规的在线数据同步方法不能实现制品仓库的不同站点之间的数据同步。相关技术中隔离的不同站点之间数据的迁移通常采用停机迁移的方式,然而停机迁移将会导致服务暂时不可用,而且对于增量数据也无法实现实时同步。

发明内容

本发明实施例提供的分布式集群的数据同步方法及其相关装置,至少解决隔离的不同站点之间停机迁移导致的服务不可用的问题。

一种分布式集群的数据同步方法,包括:

基于分布式集群中存储管理单元组的主从状态切换,确定同步时间片;

生成所述存储管理单元组中的主存储管理单元在同步时间片内的数据操作日志;

将所述数据操作日志同步至所述存储管理单元组中的从存储管理单元,以使所述从存储管理单元基于所述数据操作日志进行数据同步。

在其中的一些实施例中,所述方法还包括:

生成所述主存储管理单元的元数据,以使得在将所述数据操作日志同步至所述存储管理单元组中的从存储管理单元时,基于所述元数据确定所述数据操作日志中待同步的数据操作日志,其中,所述元数据包括所述数据操作日志的同步状态;

基于所述数据操作日志的同步结果,更新所述元数据。

在其中的一些实施例中,生成所述存储管理单元组中的主存储管理单元在同步时间片内的数据操作日志包括:

按照数据操作的执行顺序,持久化所述分布式集群中集群的数据操作信息,其中,所述数据操作信息包括操作对象、操作内容和执行数据操作的存储管理单元的信息;

根据所述集群的数据操作信息,获取所述主存储管理单元在所述同步时间片内的数据操作日志,其中,所述数据操作日志按照数据操作的执行顺序排序。

在其中的一些实施例中,基于分布式集群中存储管理单元组的主从状态切换,确定同步时间片包括:

获取所述存储管理单元组的主从状态切换逻辑时钟,根据所述主从状态切换逻辑时钟确定所述同步时间片以及所述同步时间片的序号。

在其中的一些实施例中,所述方法还包括:

在所述分布式集群中集群的存储管理单元的主从状态切换时,所述集群将主从状态切换逻辑时钟上报至存储系统,由所述存储系统将根据所述主从状态切换逻辑时钟对同步时间片的序号有序自增后下发给所述分布式集群。

在其中的一些实施例中,所述方法还包括:

所述分布式集群定期从所述存储系统获取同步时间片的序号。

在其中的一些实施例中,将所述数据操作日志同步至所述存储管理单元组中的从存储管理单元包括:

根据所述数据操作日志的索引号、所述元数据中记录的已提交的数据操作日志的索引号以及所述同步时间片的序号,确定主存储管理单元中的待同步的数据操作日志,将所述待同步的数据操作日志同步至从存储管理单元。

在其中的一些实施例中,在所述主存储管理单元和所述从存储管理单元的同步时间片的序号相同的情况下,确定所述待同步的数据操作日志及进行所述待同步的数据操作日志的同步。

在其中的一些实施例中,初始状态下,所述分布式集群中主集群中的存储管理单元均为主存储管理单元,所述分布式集群中从集群中的存储管理单元均为从存储管理单元,所述存储管理单元组的主从切换通过预设控制器管理。

在其中的一些实施例中,所述预设控制器通过将存储管理单元的标识加入灰度名单的方式,将具有该标识的存储管理单元置为主存储管理单元,以实现所述分布式集群中存储管理单元组中的存储管理单元的主从状态切换。

在其中的一些实施例中,在有数据待写入所述存储管理单元组的情况下,通过查询所述预设控制器确定所述存储管理单元组中的主存储管理单元,将数据写入主存储管理单元。

在其中的一些实施例中,所述方法还包括:

所述存储管理单元的数据存储状态作为有限状态机,在所述主存储管理单元和所述从存储管理单元中分别选举一个leader节点和至少一个follower节点,由leader节点基于所述数据操作日志在所述存储管理单元组内进行所述有限状态机的副本同步。

一种分布式集群系统,包括多个集群和存储系统,所述多个集群包括主集群和至少一个从集群,所述存储系统分别与所述多个集群连接;

所述存储系统用于存储所述同步时间片的序号;所述多个集群均通过上述的数据同步方法进行数据同步。

在其中的一些实施例中,所述分布式集群系统还包括预设控制器,所述预设控制器用于控制存储管理单元的主从状态切换,以及记录存储管理单元的主从状态。

一种电子设备,包括:处理器,以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述的数据同步方法。

一种存储有计算机指令的非瞬时机器可读介质,其中,所述计算机指令用于使所述计算机执行上述的数据同步方法。

本发明实施例提供的分布式集群的数据同步方法及其相关设备,通过基于分布式集群中存储管理单元组的主从状态切换,确定同步时间片;生成存储管理单元组中的主存储管理单元在同步时间片内的数据操作日志;将数据操作日志同步至存储管理单元组中的从存储管理单元,以使从存储管理单元基于数据操作日志进行数据同步,解决了隔离的不同站点之间停机迁移导致的服务不可用和增量数据同步一致性的问题,实现了隔离站点间的不停机迁移数据,实现了隔离站点之间增量数据同步。

本发明的一个或多个实施例的细节在以下附图和描述中提出,以使本发明的其他特征、目的和优点更加简明易懂。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1是本发明实施例的分布式集群的数据同步方法的流程图。

图2是本发明实施例的生成存储管理单元的数据操作日志和元数据的示意图。

图3是本发明实施例的存储管理单元发送数据操作日志请求的流程图。

图4是本发明实施例的存储管理单元接收数据操作日志请求的流程图。

图5是本发明实施例的作为Master的存储管理单元发送数据快照的流程图。

图6是本发明实施例的多存储管理单元同步控制的示意图。

图7是本发明实施例的基于分布式一致性算法的同步任务处理的示意图。

图8是本发明实施例的分布式集群的结构示意图。

图9是本实施例的电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本实施例的实施例。虽然附图中显示了本实施例的某些实施例,然而应当理解的是,本实施例可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本实施例。应当理解的是,本实施例的附图及实施例仅用于示例性作用,并非用于限制本实施例的保护范围。

制品库顾名思义是制品的仓库,制品是软件交付的成果性产物,通常是可运行的二进制形式,因此制品库通常也被称之为二进制制品仓库。制品库在开发阶段为使用各种开发语言的微服务开发者提供依赖解析的唯一入口。在构建阶段为各种语言的构建工具提供唯一的依赖解析源和统一的各种语言制品管理库。进入测试阶段后,所有测试环境部署工具从制品库拉取满足测试条件的制品进行部署,测试结束后将测试结果数据反馈到制品库,并且与制品进行关联。部署阶段依据质量关卡检查制品是否满足部署条件,满足则由部署工具从制品库拉取制品对接环境进行部署。

实时数据同步方案为了保证数据同步的安全性,需要不同设备间具有统一的同步时钟,从而避免数据同步错误,保障数据可回滚性。然而,制品仓库采用多region(区域)隔离,由于相互隔离的区域间无同步时钟,无法采用相关技术中常规的实时数据同步方法,而只能采用停机迁移的方式。

例如,相关技术中Jforg的repository replication数据迁移方案通过http调用方式,通过在已有制品系统中调用未有制品系统的接口上传制品,但这种方式无法避免非拜占庭问题下的数据同步安全性及稳定性,仅支持制品迁移但不支持其他格式的数据迁移,也无法对多region数据进行隔离操作。

相关技术中Rsync的open source数据迁移方案,通过和目标系统建立ssh连接进行数据传输,调用远程系统上的数据接口进行数据传输。这种方式需要手动迁移且无法自动同步增量数据,且仅仅是简单的文件同步,无法建立文件与系统之间的联系。

本实施例的分布式集群系统包括一个主集群(Master cluster)和至少一个从集群(Slaver cluster)。每个集群包括多个节点,这些节点又被按照区域划分为相互隔离的多个存储管理单元,存储管理单元又称为region。进行数据同步的主存储管理单元和从存储管理单元作为一个存储管理单元组,在存储管理单元组中有且仅有一个主存储管理单元,有至少一个或者多个从存储管理单元。存储管理单元组内的存储管理单元的主从状态可以切换。在初始状态下,主集群中的region都为主控角色,也即处于Master状态,从集群中的region都为从控角色,也即处于Slaver状态。主集群在数据同步过程中作为发起数据同步的集群;从集群在数据同步过程中作为接收数据同步的集群。但是在主从集群内的region的主从状态切换后,数据同步也可能由从集群发起而由主集群接收。

例如,数据同步时,在初始状态下,数据写入主集群中作为主控角色的region后同步至从集群中作为从控角色的region。当互为主从的两个或者两个以上的region的主从状态切换后,数据写入从集群中作为主控角色的region后同步至主集群中作为从控角色的region。

为了实现隔离站点之间的数据同步并避免服务停机不可用,本发明实施例提供了一种分布式集群的数据同步方法。图1是本发明实施例的分布式集群的数据同步方法的流程图,如图1所示,该流程包括如下步骤:

步骤S101,基于分布式集群中存储管理单元组的主从状态切换,确定同步时间片。

步骤S102,生成存储管理单元组中的主存储管理单元在同步时间片内的数据操作日志。

步骤S103,将数据操作日志同步至存储管理单元组中的从存储管理单元,以使从存储管理单元基于数据操作日志进行数据同步。

通过上述步骤,基于分布式集群中存储管理单元组的主从状态切换,确定同步时间片,对同步时间片内的存储管理单元的数据存储状态基于数据操作日志进行同步,解决了隔离的多存储管理单元之间的实时数据同步的问题。该数据同步方法不仅能够实现存量数据的实时数据同步,还能够实现增量数据的实时数据同步,无需停机迁移,也适用于任意类型的数据同步。

其中,数据操作日志的同步状态,例如,已同步的数据操作日志、已提交给从存储管理单元的数据操作日志等信息,这些信息可以保存在元数据中,并根据数据操作日志的同步结果进行更新,以确定在同步数据时各个存储管理单元的数据存储状态。在其中的一些实施例中,方法还包括:生成所述主存储管理单元的元数据,以使得在将所述数据操作日志同步至所述存储管理单元组中的从存储管理单元时,基于所述元数据确定所述数据操作日志中待同步的数据操作日志,其中,所述元数据包括所述数据操作日志的同步状态;基于所述数据操作日志的同步结果,更新所述元数据。

在其中的一些实施例中,将存储管理单元的数据存储状态作为有限状态机,从而可以基于有限状态机的副本同步机制,实现存储管理单元的数据同步。在有限状态机的副本同步机制中,基于同步日志(log)进行副本同步,在本实施例中,将数据操作日志作为有限状态机的副本同步的同步日志。

在本实施例中,预先定义的数据对象包括集群对象,节点对象和有限状态机。其中,集群对象包括各个集群节点的状态。节点对象包括节点的元数据(metadata),metadata用于记录数据同步过程中集群的状态信息,包括存储管理单元的同步时间片的序号(term)、用于标记数据操作日志的位置信息的数据操作日志的索引(logIndex),快照所包含的最后一条数据操作日志的索引号(snapshotIndex)、快照所包含的最后一条数据操作日志的同步时间片的序号(snapshotTerm),以及已经应用到slave的最大日志的索引号(preLogIndex)。节点对象还包括节点位置信息(endpoint),用于表示节点的坐标,在网络环境中一般为终端的IP地址。节点对象还可以包括数据同步过程中发起数据同步集群的主节点的状态。有限状态机包括执行的数据对象、执行的动作(即数据操作)。在本实施例中,具有主从关系的存储管理单元视为一个有限状态机。

其中,数据存储状态包括存量数据,也包括在存量数据的基础上进行的增删改等数据操作。其中,存量数据通常以数据快照(snapshot)的方式存储,数据操作则记录在操作日志中。在互为主从关系的存储管理单元之间,若存量数据已经完成同步,即各存储管理单元的存量数据相同,则也可以仅用对存量数据的数据操作来表示存储管理单元的数据存储状态。

有限状态机具有有限的状态,状态机开始于给定的开始状态(例如初始状态,或者具有相同的存量数据的状态),状态机每收到的输入都通过过渡方程和输出方程来产生一个新的状态以及相应的输出。这个新的状态会一直保持到下一个输入到达,产生的输出会传递给相应的接收者。同一状态机的多个副本可以基于复制状态机方式在多个存储管理单元之间同步,同一状态机的多个副本以开始状态开始,并且以相同顺序接收相同输入将到达已生成相同输出的相同状态,即复制状态机。

上述的同步时间片的序号(term)是作为分布式集群中所有集群的同步时钟,该同步时间片的序号从设定值(例如0)开始严格有序自增。同步时间片的序号将会缓存到具有高性能存储介质的存储系统中。

在上述步骤中,以任一组存储管理单元的主从状态切换更新有限状态机的同步时间片。由于同步时间片的序号的更新以存储管理单元的主从状态切换作为标志,因此,对于任一个存储管理单元在主从状态切换后的有限状态机的状态,都落入到至少一个同步时间片内,即在存储管理单元的有限状态机和同步时间片的序号之间能够建立对应关系。因此,集群通过获取集群中任一组存储管理单元的主从状态切换逻辑时钟,就能够确定该存储管理单元从主从状态切换逻辑时钟开始进入的同步时间片的同步时间片的序号。由于同步时间片的序号也受到分布式集群中其他组的存储管理单元的主从状态切换的影响而自增,因此,对于某一个存储管理单元而言,有限状态机的状态变化可能跨越多个同步时间片,而对应于多个同步时间片的序号。在本实施例中,对于每个同步时间片内产生的数据操作日志和元数据,都标注上相应的同步时间片的序号。

在分布式集群中任一集群的任一组存储管理单元的主从状态切换时,任一集群将主从状态切换逻辑时钟上报至存储系统,存储系统中的同步时间片的序号自增一,存储系统将根据主从状态切换逻辑时钟对同步时间片的序号有序自增后下发给分布式集群。此外,分布式集群中的集群都会定时拉取同步时间片的序号,以防止同步时间片的序号下发失败。

本实施例中有限状态机的输入数据为数据操作信息。为了满足复制状态机所要求的输入相同的要求,数据操作信息不仅需要操作内容相同,还需要保证执行顺序也相同。因此,在分布式集群的任一集群中,都按照数据操作的执行顺序,持久化分布式集群中集群的数据操作信息,其中,数据操作信息包括操作对象、操作内容和执行数据操作的存储管理单元的信息。

具体地,在接收数据写入的集群(一般为Master集群)中,可以通过在每一处写操作附加埋点记录,以记录操作对象、操作内容、执行数据操作的存储管理单元的信息,封装后作为数据同步发起方产生的增量的操作日志(pendingLog),然后将增量的操作日志持久化到数据库中,通过数据库来保证增量的操作日志按照执行顺序存储。

由于在接收数据写入的集群中,将所有的存储管理单元执行的增量的操作日志都按照执行顺序存储在一起。为了进行以存储管理单元为单位进行数据同步,可以对增量的操作日志进一步按照存储管理单元进行分组处理。例如,如图2所示,接收数据写入的集群中选择用于处理同步任务的节点开启线程从数据库中批量读取增量的操作日志,然后按照存储管理单元进行划分,在同一个存储管理单元中对每一条日志标注同步时间片的序号和数据操作日志的索引号(logIndex)信息生成用于数据同步的数据操作日志。

若当前存储管理单元为第一次生成同步日志(log),则数据操作日志的索引号从0开始有序自增,同时初始化该存储管理单元的元数据(metadata),metadata中的数据快照索引号(snapshotIndex)为随机值n(例如可以是1-100之间的任意整数)。存储管理单元的元数据中还包括用于进行数据同步管理的数据,例如,该存储管理单元的上一条已经被从节点应用的数据操作日志的索引号(lastAppliedIndex),以及该存储管理单元的已经提交的数据操作日志的索引号(committedIndex)。在初始化时,lastAppliedIndex和committedIndex置为与snapshotIndex相同的值n。元数据中的同步时间片的序号置为当前的同步时间片的序号。持久化数据操作日志和元数据,即完成了数据同步的数据准备工作。

若当前存储管理单元不是首次生成同步日志(log),即已经存在历史的数据操作日志(包括已经被同步过的数据操作日志,以及未被同步过的数据操作日志),则新生成的数据操作日志的索引号从上一次生成的最后一条数据操作日志的索引号加一,元数据中snapshotIndex、lastAppliedIndex、committedIndex也都是以上一次生成的snapshotIndex、lastAppliedIndex、committedIndex各自加一,同步时间片的序号同样置为当前的同步时间片的序号。持久化数据操作日志和元数据,即完成了数据同步的数据准备工作。

在进行数据同步时,基于有限状态机的副本同步实现数据同步。对于存储管理单元,接收数据写入的集群将根据数据操作日志的索引号、元数据中记录的已提交的数据操作日志的索引号以及同步时间片的序号,确定主存储管理单元中的待同步的数据操作日志,将待同步的数据操作日志同步至从存储管理单元。

参考图3,主存储管理单元选择用于处理同步任务的节点,由该节点处理同步任务,筛选出需要同步的存储管理单元。同步任务中首先在缓存中获取下一个需要同步的日志索引号,如果不存在则查询元数据中最后一条已提交日志的索引号,然后将上一条已数据操作日志索引号preLogIndex置为已提交索引号减一,通过判断preLogIndex与snapshotIndex的大小决定是否发送snapshot(有限状态机当前数据快照),若preLogIndex不小于snapshotIndex则说明已经迁移过存量数据,否则将从数据库中取出一批需要同步的数据操作日志发送到从存储管理单元中处理。

从存储管理单元中处理数据操作日志的流程如图4所示,从存储管理单元也选出用于处理数据同步的节点。该节点负责处理数据操作日志。

在其中的一些实施例中,在同一个存储管理单元组中,主存储管理单元和从存储管理单元的同步时间片的序号相同的情况下,则确定待同步的数据操作日志及进行待同步的数据操作日志的同步,如同步时间片的序号不相同,则进行重试。

若接收到的数据操作日志的同步时间片的序号与当前节点的同步时间片的序号不一致,则可能是当前节点的同步时间片的序号还未更新或者数据操作日志的同步请求已经过期,此时节点将会把当前节点的同步时间片的序号返回给主存储管理单元。如果同步时间片的序号一致则说明数据操作日志的同步请求有效,再次校验当前存储管理单元在所在集群中是否处于从控角色(Slaver)状态,若为Slaver状态,则进行log校验。

从存储管理单元的当前FSM的状态由已提交数据操作日志的committedIndex和同步时间片的序号决定,若能够和同步请求匹配,则只需要直接将主存储管理单元发送的log进行应用,更新当前FSM的状态和metadata信息,将结果返回给主存储管理单元,否则需要将当前FSM的状态返回给主存储管理单元,以期望主存储管理单元在下次同步请求中发送能够匹配的log。主存储管理单元可能因为响应超时接收不到从存储管理单元的返回值,此时将重试,若接收到从存储管理单元的返回值,根据从存储管理单元返回的状态更新下一次发送的同步请求。

上述的同步方法可以用于增量数据的同步,还可以用于存量数据的同步。继续参考图3,当第一次发送数据操作日志请求时,从存储管理单元中还没有该存储管理单元的数据操作日志写入,返回给主存储管理单元的冲突位置为0,主存储管理单元更新nextLogIndex后继续发送数据操作日志,此时数据操作日志的preLogIndex必然小于随机生成的snapshotIndex,所以主存储管理单元会发送snapshot进行存量数据的迁移。snapshot是主存储管理单元生成的当前存储管理单元的FSM的快照,snapshot中保存了所有的数据(例如制品)的索引以及相关的数据。在一些实施例中,主存储管理单元发送的snapshot可以是snapshot的URL,实际生成的snapshot会上传到文件存储系统中,这样能够减轻发送snapshot请求的数据大小。主存储管理单元发送snapshot的流程如图5所示,首先在需要发送snapshot的集合中确定需要存量迁移的存储管理单元,生成该存储管理单元的FSM快照,发送安装snapshot请求到从存储管理单元后,判断从存储管理单元的安装状态,若请求和从存储管理单元的同步时间片的序号不匹配或从存储管理单元安装snapshot失败,则会将安装snapshot请求加入发送snapshot的集合进行重试。

在其中的一些实施例中,初始状态下,分布式集群中主集群中的存储管理单元均为主存储管理单元,分布式集群中从集群中的存储管理单元均为从存储管理单元,存储管理单元的主从切换通过预设控制器进行管理。预设控制器通过将存储管理单元的标识加入灰度名单的方式,将具有该标识的存储管理单元置为主存储管理单元,以实现分布式集群中存储管理单元的主从状态切换。

例如,参考图6,设置不同存储管理单元在不同集群的主从关系,将其保存在可供查询的主从控制器中。设置统一接入的主从控制器,当存储管理单元不处于灰度名单中时,集群1(例如主集群)的存储管理单元均处于Master状态,集群2(例如从集群)的存储管理单元均处于Slaver状态,此时数据流向为从集群1流入集群2中。若存储管理单元处于灰度名单中,则集群2的存储管理单元为Master状态,数据从集群2流入集群1中。由于数据双向写入,在安全状态下同一存储管理单元组中的主存储管理单元和从存储管理单元的有限状态机(FSM)始终保持一致状态,此时通过控制存储管理单元是否处于灰度名单中,以控制不同存储管理单元在不同集群中的角色从而控制数据同步的流向。用户在任意集群中新增的数据不会丢失,新增数据会以同步日志(log)的方式在集群1和集群2中进行同步。其中,上述的安全状态是指同一存储管理单元中的主存储管理单元和从存储管理单元的FSM状态保持一致,不存在已经应用到主存储管理单元但还未应用到从存储管理单元的数据操作日志。

在设置了可供查询存储管理单元的主从状态的预设控制器的情形下,在其中的一些实施例中,在有新数据写入存储管理单元的情况下,通过查询预设控制器确定主存储管理单元,将新数据写入主存储管理单元。例如,用户在需要执行数据操作时,用户可以直接访问集群1或者集群2;用户通过查询主从控制器中保存的存储管理单元的标识,以确认访问的是主节点还是从节点。

为了保证数据同步的可靠性,避免因单一节点故障导致的数据同步失败,在其中的一些实施例中,在主存储管理单元和从存储管理单元中,分别选举一个leader节点和至少一个follower节点,由各存储管理单元中的leader节点进行具有主从关系的存储管理单元的有限状态机的副本同步。参考图7,本实施例中可以基于raft(一种分布式一致性算法),在每一个集群或存储管理单元中选举出一个leader节点用于处理同步任务;同时配置多个follower节点,以在leader节点出现故障后能够接替leader节点继续处理同步任务,确保数据不会丢失且一定能够同步到从存储管理单元中去,当主存储管理单元的leader节点出现宕机等异常情况时,在主存储管理单元中的数据已经持久化所以不会丢失,在follower节点中选取新的leader后,能够根据持久化的log和metadata继续向从存储管理单元同步数据,所以从存储管理单元仍然能够和主存储管理单元保持一致。

本发明实施例,基于raft日志同步技术,能够实现多存储管理单元的存量数据迁移和增量数据同步,可以应用于任意格式文件而不局限于Jforg的制品文件,同时通过raft保证了在非拜占庭问题下的数据同步安全性和可靠性。所有的同步数据都是经过FSM应用到系统中的,数据之间的关联关系也能够在不同系统之间同步。通过多存储管理单元将数据进行隔离,可以控制不同存储管理单元在不同站点之间的同步方向。

本实施例还提供了一种分布式集群系统。图8是本实施例的分布式集群系统的示意图,如图8所示,该系统包括集群81、至少一个集群82和存储系统83,集群81作为主控角色,集群82作为从控角色,存储系统83分别与上述的多个集群连接。

存储系统83用于存储同步时间片的序号;集群均通过上述的分布式集群的数据同步方法进行数据同步。

在其中的一些实施例中,集群基于分布式集群中存储管理单元组的主从状态切换,确定同步时间片;生成存储管理单元组中的主存储管理单元在同步时间片内的数据操作日志;将数据操作日志同步至存储管理单元组中的从存储管理单元,以使从存储管理单元基于数据操作日志进行数据同步。

在其中的一些实施例中,集群生成主存储管理单元的元数据,以使得在将数据操作日志同步至存储管理单元组中的从存储管理单元时,基于元数据确定数据操作日志中待同步的数据操作日志,其中,元数据包括数据操作日志的同步状态;基于数据操作日志的同步结果,更新元数据

在其中的一些实施例中,集群按照数据操作的执行顺序,持久化分布式集群中集群的数据操作信息,其中,数据操作信息包括操作对象、操作内容和执行数据操作的存储管理单元的信息;根据集群的数据操作信息,获取主存储管理单元在同步时间片内的数据操作日志,其中,数据操作日志按照数据操作的执行顺序排序。

在其中的一些实施例中,集群获取存储管理单元组的主从状态切换逻辑时钟,根据主从状态切换逻辑时钟确定同步时间片以及同步时间片的序号。

在其中的一些实施例中,在分布式集群中集群的存储管理单元的主从状态切换时,集群将主从状态切换逻辑时钟上报至存储系统,由存储系统将根据主从状态切换逻辑时钟对同步时间片的序号有序自增后下发给分布式集群。

在其中的一些实施例中,分布式集群定期从存储系统获取同步时间片的序号。

在其中的一些实施例中,集群根据数据操作日志的索引号、元数据中记录的已提交的数据操作日志的索引号以及同步时间片的序号,确定主存储管理单元中的待同步的数据操作日志,将待同步的数据操作日志同步至从存储管理单元。

在其中的一些实施例中,集群在主存储管理单元和从存储管理单元的同步时间片的序号相同的情况下,确定待同步的数据操作日志及进行待同步的数据操作日志的同步。

在其中的一些实施例中,分布式集群系统还包括预设控制器,预设控制器用于控制存储管理单元的主从状态切换,以及记录存储管理单元的主从状态。

在其中的一些实施例中,初始状态下,分布式集群中主集群中的存储管理单元均为主存储管理单元,分布式集群中从集群中的存储管理单元均为从存储管理单元,存储管理单元组的主从切换通过预设控制器管理。

在其中的一些实施例中,预设控制器通过将存储管理单元的标识加入灰度名单的方式,将具有该标识的存储管理单元置为主存储管理单元,以实现分布式集群中存储管理单元组中的存储管理单元的主从状态切换。

在其中的一些实施例中,在有数据待写入存储管理单元组的情况下,通过查询预设控制器确定存储管理单元组中的主存储管理单元,将数据写入主存储管理单元。

在其中的一些实施例中,存储管理单元的数据存储状态作为有限状态机,在主存储管理单元和从存储管理单元中分别选举一个leader节点和至少一个follower节点,由leader节点基于数据操作日志在存储管理单元组内进行有限状态机的副本同步。

本发明实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。上述存储器存储有能够被上述至少一个处理器执行的计算机程序,上述计算机程序在被上述至少一个处理器执行时用于使电子设备执行本发明实施例的方法。

本发明实施例还提供一种存储有计算机程序的非瞬时机器可读介质,其中,上述计算机程序在被计算机的处理器执行时用于使上述计算机执行本发明实施例的方法。

本发明实施例还提供一种计算机程序产品,包括计算机程序,其中,计算机程序在被计算机的处理器执行时用于使计算机执行本发明实施例的方法。

参考图9,现将描述可以作为本发明实施例的服务器或客户端的电子设备的结构框图,其是可以应用于本发明的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。

如图9所示,电子设备包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储电子设备操作所需的各种程序和数据。计算单元901、ROM 902以及RAM903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。

电子设备中的多个部件连接至I/O接口905,包括:输入单元906、输出单元907、存储单元908以及通信单元909。输入单元906可以是能向电子设备输入信息的任何类型的设备,输入单元906可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元907可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元908可以包括但不限于磁盘、光盘。通信单元909允许电子设备通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。

计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于CPU、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理。例如,在一些实施例中,本发明的方法实施例可被实现为计算机程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到电子设备上。在一些实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述的方法。

用于实施本发明实施例的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得计算机程序当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本发明实施例的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读信号介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

需要说明的是,本发明实施例使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。本发明实施例中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本发明实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

本发明实施例所提供的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的保护范围在此方面不受限制。

“实施例”一词在本说明书中指的是结合实施例描述的具体特征、结构或特性可以包括在本发明的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见。尤其,对于装置、设备、系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。

相关技术
  • 数据同步方法及相关设备
  • 一种分布式集群管理软件数据同步的方法、装置及设备
  • 基于双控的存储设备数据同步方法、装置、设备及介质
  • 产品数据的数据同步方法、装置、计算机设备及存储介质
  • 一种平行链数据同步方法、设备和存储介质
  • 分布式集群的数据同步方法、系统、电子设备及介质
  • 分布式集群数据库同步方法、装置、设备及存储介质
技术分类

06120116483422