CN116074332A - 镜像管理方法、分布式系统、电子设备及介质 - Google Patents
镜像管理方法、分布式系统、电子设备及介质 Download PDFInfo
- Publication number
- CN116074332A CN116074332A CN202211661783.9A CN202211661783A CN116074332A CN 116074332 A CN116074332 A CN 116074332A CN 202211661783 A CN202211661783 A CN 202211661783A CN 116074332 A CN116074332 A CN 116074332A
- Authority
- CN
- China
- Prior art keywords
- log
- index
- node
- mirror
- mirror image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种镜像管理方法、分布式系统、电子设备及存储介质,方法包括:确定满足镜像生成条件,基于本地已应用日志生成镜像和镜像索引,利用生成的镜像索引更新本地维护的第一节点的标识与镜像索引的映射关系;利用所述镜像索引和第一节点的标识生成第一类日志,将所述第一类日志发送到共享日志系统,以用于分布式系统中其他节点读取到第一类日志后更新其他节点上维护的节点标识与镜像索引的映射关系,从而实现分布式系统的镜像管理基本功能,降低了由状态机实现镜像管理的难度。并且由于是在确定满足镜像生成条件情况下才执行镜像生成,因此可以防止频繁生成镜像带来的系统性能波动。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种镜像管理方法、分布式系统、电子设备及介质。
背景技术
在当前分布式系统中,采用共享日志将共识算法与状态机解耦后,分布式系统的技术架构改为无主节点的架构,也即系统中所有节点的身份均一致,这样原本由共识算法实现的功能就需要由状态机实现,其中包括镜像管理功能,并且节点间通信由直接通信也变为经由共享日志的间接通信,而间接通信会带来滞后性,因此由状态机实现镜像管理功能的复杂度和难度比较大。
发明内容
本申请的目的是针对上述现有技术的不足提出的一种镜像管理方法、分布式系统、电子设备及存储介质,该目的是通过以下技术方案实现的。
本申请的第一方面提出了一种镜像管理方法,应用于分布式系统中的第一节点,所述第一节点为分布式系统中任一节点,所述方法包括:
确定满足镜像生成条件,基于本地已应用日志生成镜像和镜像索引,利用生成的镜像索引更新本地维护的第一节点的标识与镜像索引的映射关系;
利用所述镜像索引和第一节点的标识生成第一类日志,将所述第一类日志发送到共享日志系统。
本申请的第二方面提出了一种分布式系统,所述系统包括共享日志系统和多个节点,其中,每个节点用于执行如上述第一方面所述方法的步骤。
本申请的第三方面提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序以实现如上述第一方面所述方法的步骤。
本申请的第四方面提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行以实现如上述第一方面所述方法的步骤。
基于上述第一方面和第二方面所述的镜像管理方法及分布式系统,本申请至少具有如下有益效果或优点:
通过在分布式系统各节点的状态机之外增加单独的镜像管理逻辑,即确定自身节点是否满足镜像生成条件,在确定满足镜像生成条件情况下,生成镜像和镜像索引,并同时更新本地维护的节点标识与镜像索引的映射关系,以及向共享日志系统提交一条包含新生成的镜像索引和自身节点标识的第一类日志,以用于分布式系统中其他节点读取到第一类日志后更新其他节点上维护的节点标识与镜像索引的映射关系,从而实现分布式系统的镜像管理基本功能,降低了由状态机实现镜像管理的难度。并且由于是在确定满足镜像生成条件情况下才执行镜像生成,因此可以防止频繁生成镜像带来的系统性能波动。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请根据一示例性实施例示出的一种分布式系统的结构示意图;
图2为本申请根据一示例性实施例示出的一种镜像管理方法的实施例流程图;
图3为本申请根据一示例性实施例示出的一种镜像管理实现示意图;
图4为本申请根据一示例性实施例示出的一种心跳机制实现示意图;
图5为本申请根据一示例性实施例示出的一种日志压缩实现示意图;
图6为本申请根据一示例性实施例示出的一种电子设备的硬件结构示意图;
图7为本申请根据一示例性实施例示出的一种存储介质的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在无主节点架构的分布式系统包含的多个节点中,每个节点的身份均相同,参见图1所示,分布式系统包括具有相同身份的第一节点和第二节点,每个节点上都包含有表示本节点已应用日志在内存中的结构化状态的状态机和一些功能模块。
进一步地,分布式系统还包括一个用于存储共享日志的共享日志系统,该共享日志系统具有日志定序功能,每个节点可以并发向共享日志系统提交日志,共享日志系统按照日志时间将接收到的日志进行排序,并按照排序结果为每个日志添加日志索引后送入共享队列,如图1所示,存入共享队列的日志,日志索引依次为140、141、142、143、144、145。
上述分布式系统的运行逻辑是:客户端与系统中的任意一个节点建立通信连接后,通过通信连接向节点发送任务请求(例如写请求),节点接收到任务请求时生成原始日志并传送给功能模块,功能模块在原始日志中按照功能需求添加信息后提交给共享日志系统,共享日志系统为收到的日志排序后以共享日志形式添加到共享队列的末尾。
系统中的各个节点持续不断地向共享日志系统发送应用请求以读取日志,节点读取到的日志流经功能模块后应用到状态机中,如果节点判断读取的日志是自身的日志,则将日志的执行结果返回给相应客户端。
值得注意的是,客户端可以与分布式系统中的节点自由建立通信连接以及断开连接,即使连接到不同的节点,也可保证客户端读取到的数据是一致的。
基于上述给出的无主节点架构的分布式系统运行逻辑,为了实现镜像管理功能,本申请通过在各个节点的状态机之外增设一个镜像管理模块实现镜像管理逻辑,并且镜像管理模块的上层仍然是状态机。
在镜像管理过程中,如果第一节点确定满足镜像生成条件,基于本地已应用日志生成镜像和镜像索引,利用生成的镜像索引更新本地维护的第一节点的标识与镜像索引的映射关系,然后利用该镜像索引和第一节点的标识生成第一类日志,并将第一类日志发送到共享日志系统;
进一步地,第二节点从共享日志系统读取到第一节点生成的第一类日志时,利用读取的第一类日志携带的镜像索引更新本地维护的第一节点的标识与镜像索引的映射关系。
本领域技术人员可以理解的是,上述镜像管理过程是以两个节点为例,通常分布式系统包含多个节点,因此可以将第一节点看作是分布式系统中的任意节点,第二节点看作是除第一节点之外的任意节点。
为了使本领域技术人员更好的理解本申请方案,下面将结合本申请实施例中的附图,对镜像管理模块的镜像管理逻辑进行清楚、完整、全面地描述。
实施例一
图2为本申请根据一示例性实施例示出的一种镜像管理方法的实施例流程图,应用于分布式系统中的第一节点,该第一节点为分布式系统中的任一节点,如上述图1所示,第一节点既可以是节点A,也可以是节点B,该镜像管理方法包括如下步骤:
步骤201:确定满足镜像生成条件,基于本地已应用日志生成镜像和镜像索引,利用生成的镜像索引更新本地维护的第一节点的标识与镜像索引的映射关系。
其中,镜像生成条件定义了生成镜像的触发条件,通过镜像生成条件可以防止频繁生成镜像带来的系统性能损耗。
示意性的,针对镜像生成过程,由于状态机表示的是已应用日志在内存中的结构化状态,因此可以通过调用状态机提供的接口,以基于本地已应用日志生成镜像和镜像索引。其中,镜像是将状态机的结构信息及数据以固定的格式组织起来并存储。镜像索引是参与镜像生成的所有已应用日志中的最大日志索引值,也即镜像中包含的最后一条已应用日志的日志索引。
在本申请实施例中,分布式系统上任一节点中均维护了系统中所有节点上一次生成镜像时的镜像索引,即保存了一个节点标识和镜像索引之间的映射关系集合,因此第一节点生成镜像后,需要利用新生成的镜像索引更新本地维护的第一节点的标识与镜像索引的映射关系,使第一节点的标识对应的镜像索引始终保持是最新的镜像索引。
在一种可能实现方式中,生成镜像的触发条件可以包括主动触发和被动触发两种,下面对这两种条件的判定过程进行详细阐述:
第一种是主动触发条件的判定过程:从本地维护的映射关系中获取与第一节点的标识对应的镜像索引,并获取当前应用日志的日志索引,根据获取的镜像索引与日志索引之间的差值大于目标阈值,确定满足镜像生成条件中的主动触发条件。
其中,当前应用日志是第一节点从共享日志系统最新读取的一条日志,通过判定第一节点上一次生成镜像的镜像索引与当前应用日志的日志索引之间差值大于目标阈值来定义主动触发条件,可以规定两次生成镜像之间的最小日志数,防止频繁生成镜像带来系统性能波动。
可选的,目标阈值可以是预设值与随机值之和,由于随机值是实时发生变化的,这样可以避免分布式系统中各个节点同时生成镜像带来系统性能波动。
第二种是被动触发条件的判定过程:在接收到生成镜像请求时,从生成镜像请求中提取指定索引,并从本地维护的映射关系中获取与第一节点的标识对应的镜像索引,以及获取当前应用日志的日志索引,根据指定索引小于日志索引且大于镜像索引,确定满足镜像生成条件中的被动触发条件。
其中,生成镜像请求是由上层模块触发产生的请求,其携带的指定索引也是上层模块指定的一个索引值。由于当前应用日志的日志索引指示了当前状态机已包含的日志索引,因此如果指定索引小于当前应用日志的日志索引,说明生成镜像不会缺少数据,此外指定索引也大于镜像索引,说明距离上一次生成镜像已经读取并应用了一定数量的日志。
需要说明的是,在生成镜像之后,可以将镜像以文件形式存储,或者也可以存储到共享日志系统中。
步骤202:利用镜像索引和第一节点的标识生成第一类日志,将第一类日志发送到共享日志系统。
其中,第一类日志除了包含镜像索引和第一节点的标识之外,还包括日志类型:镜像类型。在将第一类日志发送到共享日志系统之后,分布式系统中其他节点读取到第一类日志,便可更新其他节点上维护的节点标识与镜像索引的映射关系,从而使得分布式系统各个节点维护的第一节点的镜像索引达成一致。
需要说明的是,对于第一节点,也可以从共享日志系统读取到分布式系统中第二节点生成的第一类日志,并利用读取的第一类日志携带的镜像索引更新本地维护的第二节点的标识与镜像索引的映射关系。
其中,第二节点是分布式系统中除第一节点之外的节点。
在一示例性场景中,参见图3所示,分布式系统中节点2037上一次生成镜像的镜像索引为160,在确定满足镜像生成条件后生成镜像,镜像索引由160变为285,将包含镜像索引Idx:285、节点标识ID:2037、日志类型Type:SP的第一类日志提交到日志共享系统,日志共享系统为其添加286的日志索引,节点1012从共享日志系统读取到节点2037生成的第一类日志后,将第一类日志应用到本地,将本地维护的节点2037的镜像索引更新为285。
需要说明的是,分布式系统中各节点维护的节点标识与镜像索引的映射关系中还可以添加一项更新时间,也即在读取到包含节点标识与镜像索引的日志时,更新一次相应映射关系中的更新时间。当然,如果从更新时间开始经过了指定时间间隔仍未读取到包含相应节点标识与镜像索引的日志时,可以认为相应节点下线,删除相应的映射关系,待下次读取到包含相应节点标识与镜像索引的日志后,可以认为相应节点上线,再将节点标识与镜像索引的映射关系重新建立起来。
进一步地,分布式系统中的各节点除了读取第一类日志维护节点与镜像索引的映射关系之外,还可以采用心跳机制维护各节点与镜像索引之间的映射关系,也即第一节点每隔一段时间向共享日志系统发送一条包含节点标识和镜像索引的心跳类型的日志,并且每当第一节点读取到第二节点生成的心跳类型的日志时,也会利用读取到的日志携带的镜像索引更新本地维护的第二节点的标识与镜像索引的映射关系。
参见图4所示,节点1012生成包含节点标识ID:1012、镜像索引Idx:145、日志类型Type:HB的心跳日志后提交到共享日志系统,共享日志系统排序后为其添加上284的日志索引,节点2037生成包含节点标识ID:2037、镜像索引Idx:160、日志类型Type:HB的心跳日志后提交到共享日志系统,共享日志系统排序后为其添加上285的日志索引。
对于节点1012读取到日志索引是284的心跳日志后,在应用该心跳日志过程中,发现是自己生成的心跳日志可以不做处理,接着读取到日志索引是285的心跳日志后,在应用该心跳日志过程中,利用心跳日志携带的镜像索引Idx:160更新本地维护的节点标识ID:2037与镜像索引的映射关系,同时更新一次相应的更新时间。
对于节点2037读取到日志索引是284的心跳日志后,在应用该心跳日志过程中,利用心跳日志携带的镜像索引Idx:145更新本地维护的节点标识ID:1012与镜像索引的映射关系,同时更新一次相应的更新时间,接着读取到日志索引是285的心跳日志后,在应用该心跳日志过程中,发现是自己生成的心跳日志可以不做处理。
至此,完成上述图2所示的镜像管理流程,通过在分布式系统各节点的状态机之外增加单独的镜像管理逻辑,即确定自身节点是否满足镜像生成条件,在确定满足镜像生成条件情况下,生成镜像和镜像索引,并同时更新本地维护的节点标识与镜像索引的映射关系,以及向共享日志系统提交一条包含新生成的镜像索引和自身节点标识的第一类日志,以用于分布式系统中其他节点读取到第一类日志后更新其他节点上维护的节点标识与镜像索引的映射关系,从而实现分布式系统的镜像管理基本功能,降低了由状态机实现镜像管理的难度。并且由于是在确定满足镜像生成条件情况下才执行镜像生成,因此可以防止频繁生成镜像带来的系统性能波动。
实施例二
分布式系统的镜像管理功能除了上述图2所示实施例给出的镜像生成,还涉及日志压缩,针对镜像管理的日志压缩实现过程包括如下步骤:
步骤203:基于当前满足的日志压缩条件确定压缩索引。
其中,压缩索引指的是要压缩到的日志位置,也即分布式系统中所有节点不会再读取该压缩索引之前的日志。
在一种可能实现方式中,日志压缩的触发条件可以包括主动触发和被动触发两种,下面针对这两种条件下的压缩索引确定过程进行详细阐述:
第一种日志压缩主动触发条件:在基于本地已应用日志生成镜像和镜像索引之后,立即尝试进行日志压缩,即从本地维护的映射关系中获取最小镜像索引,并将最小镜像索引确定为压缩索引。
其中,由于分布式系统中所有节点是持续不断从共享日志系统读取日志并应用日志,因此映射关系中最小镜像索引对应的节点相比分布式系统中其他节点,是应用日志最少的节点,将最小镜像索引确定为压缩索引,可以确保分布式系统中所有节点不会再读取该压缩索引之前的日志。
第二种日志压缩被动触发条件:从接收的日志压缩请求中提取指定索引,并从本地维护的映射关系中获取最小镜像索引,然后将指定索引和最小镜像索引中的最小值确定为压缩索引。
其中,日志压缩请求是由上层模块触发产生的请求,其携带的指定索引也是上层模块指定的一个索引值。通过在映射关系中的最小镜像索引与指定索引之间选取最小值作为压缩索引,可以确保分布式系统中所有节点不会再读取该压缩索引之前的日志。
步骤204:生成包含该压缩索引的第二类日志,并将第二类日志发送到共享日志系统。
具体地,第二类日志除了包含压缩索引之外,还包括日志类型:请求压缩和第一节点的节点标识。在将第二类日志发送到共享日志系统之后,分布式系统中各节点读取到第二类日志,判定自身是当前最小镜像索引的节点时,执行日志压缩操作,将日志压缩到压缩索引所指示的日志位置处,并将压缩索引所指示的日志位置之前的日志均删除。
需要说明的是,第一节点从共享日志系统读取到第二类日志后,根据本地维护的映射关系判定第一节点的标识对应的镜像索引是否为最小值,若否,则不做处理,若是,则基于读取的第二类日志携带的压缩索引执行日志压缩操作,然后利用该压缩索引和第一节点的标识生成第三类日志后,将第三类日志发送到共享日志系统。
其中,第三类日志除了包含压缩索引和第一节点的标识之外,还包括日志类型:成功压缩日志。在将第三类日志发送到共享日志系统之后,分布式系统中各节点读取到第三类日志,便可更新节点上维护的节点标识与镜像索引的映射关系,从而使得分布式系统各个节点维护的第一节点的镜像索引达成一致。
在一示例性场景中,参见图5所示,以被动触发为例,假设节点2037接收的日志压缩请求中指定索引是A,本地维护的映射关系中最小镜像索引是B,取A和B中较小值作为压缩索引C,随后将包含节点标识ID:2037、压缩索引:C、日志类型Type:Try的第二类日志后提交到共享日志系统。
随后,节点1012从共享日志系统读取到第二类日志后,根据本地维护的映射关系判定节点1012对应的镜像索引145为最小镜像索引时,基于读取的第二类日志携带的压缩索引执行日志压缩操作,然后利用压缩索引C和节点1012的标识1012生成第三类日志后,将第三类日志发送到共享日志系统,第三类日志包含的日志类型Type:Done。
基于上述日志压缩实现过程,通过使用镜像索引最小的节点执行日志压缩操作,可以避免重复的日志压缩带来的系统性能波动。
实施例三
分布式系统的镜像管理功能除了涉及镜像生成和日志压缩之外,还涉及节点恢复,针对镜像管理的节点恢复实现过程包括如下步骤:
步骤205:根据第一节点状态符合预设恢复条件,与分布式系统中的第二节点建立通信连接。
其中,第二节点是分布式系统中除第一节点之外的任意节点,通过与第二节点建立起通信连接,便可读取第二节点上的数据。
示意性的,预设恢复条件可以是第一节点因崩溃或断电发生重启,或者也可以是第一节点的日志读取速度严重落后共享日志系统的日志生成速度,虽然日志读取操作是正确的,但有可能读取的日志已经失效,例如读取速度慢的节点从共享日志系统读取到其他节点的心跳日志,这个心跳日志可能是很久之前的心跳日志,此时节点再来处理已经无意义。
在一可选具体实施方式中,针对第一节点的日志读取读取速度严重落后共享日志系统的日志生成速度的实现过程,每隔预设时间间隔,确定一次日志读取速度与共享日志系统的日志生成速度之间的比值,根据连续两次确定的比值均小于预设阈值且连续两次中第二次确定的比值小于第一次确定的比值,确定第一节点状态符合预设恢复条件。
其中,通过使用连续两次确定的日志读取速度与日志生成速度的比值进行判定,可以确保判定结果的准确性。
具体地,针对日志读取速度的获取方式,第一节点维护一个计时器,统计计时器从0计时到一定时间内第一节点读取的日志数,然后计算日志数与计时器计时时间的比值为日志读取速度。
针对日志生成速度的获取方式,由于共享日志系统会接收到分布式系统中各节点发送来的日志,因此由共享日志系统进行日志生成速度的计算。具体地,共享日志系统每隔预设时间间隔生成一个锚点包,将连续两个锚点包之间接收的日志数与预设时间间隔之间的比值作为日志生成速度,从而分布式系统中各节点可以每隔预设时间间隔读取一次日志生成速度,以与自身节点上的日志读取速度进行比较判断。
步骤206:通过该通信连接读取第二节点上生成的镜像和镜像索引。
步骤207:将读取到的镜像应用到本地,并根据读取的镜像索引从共享日志系统读取日志处理。
基于上述节点恢复实现过程,分布式系统中各节点通过判定自身状态符合预设恢复条件时,便自动进入恢复流程,将自身恢复到可以服务客户端的状态,从而保证镜像生成和日志压缩机制的准确性。
本申请实施方式还提供一种与前述实施方式所提供的镜像管理方法对应的电子设备,以执行上述镜像管理方法。
图6为本申请根据一示例性实施例示出的一种电子设备的硬件结构图,该电子设备包括:通信接口601、处理器602、存储器603和总线604;其中,通信接口601、处理器602和存储器603通过总线604完成相互间的通信。处理器602通过读取并执行存储器603中与镜像管理方法的控制逻辑对应的机器可执行指令,可执行上文描述的镜像管理方法,该方法的具体内容参见上述实施例,此处不再累述。
本申请中提到的存储器603可以是任何电子、磁性、光学或其它物理存储系统,可以包含存储信息,如可执行指令、数据等等。具体地,存储器603可以是RAM(Random AccessMemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。通过至少一个通信接口601(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线604可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器603用于存储程序,所述处理器602在接收到执行指令后,执行所述程序。
处理器602可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器602中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器602可以是通用处理器,包括网络处理器(Network Processor,简称NP)、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。
本申请实施例提供的电子设备与本申请实施例提供的镜像管理方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的镜像管理方法对应的计算机可读存储介质,请参考图7所示,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的镜像管理方法。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的镜像管理方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (12)
1.一种镜像管理方法,其特征在于,应用于分布式系统中的第一节点,所述第一节点为分布式系统中任一节点,所述方法包括:
确定满足镜像生成条件,基于本地已应用日志生成镜像和镜像索引,利用生成的镜像索引更新本地维护的第一节点的标识与镜像索引的映射关系;
利用所述镜像索引和第一节点的标识生成第一类日志,将所述第一类日志发送到共享日志系统。
2.根据权利要求1所述的方法,其特征在于,所述确定满足镜像生成条件,包括:
从本地维护的映射关系中获取与第一节点的标识对应的镜像索引,以及获取当前应用日志的日志索引;
根据所述镜像索引与所述日志索引之间的差值大于目标阈值,确定满足镜像生成条件。
3.根据权利要求1所述的方法,其特征在于,所述确定满足镜像生成条件,包括:
从接收的生成镜像请求中提取指定索引;
从本地维护的映射关系中获取与第一节点的标识对应的镜像索引,以及获取当前应用日志的日志索引;
根据所述指定索引小于所述日志索引且大于所述镜像索引,确定满足镜像生成条件。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从共享日志系统读取到分布式系统中第二节点生成的第一类日志,利用读取的第一类日志携带的镜像索引更新本地维护的第二节点的标识与镜像索引的映射关系;
其中,所述第二节点是分布式系统中除第一节点之外的节点。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
基于当前满足的日志压缩条件确定压缩索引,所述压缩索引指示的是待压缩到的日志位置;
生成包含所述压缩索引的第二类日志,并将第二类日志发送到共享日志系统。
6.根据权利要求5所述的方法,其特征在于,所述基于当前满足的日志压缩条件确定压缩索引,包括:
在基于本地已应用日志生成镜像和镜像索引之后,从本地维护的映射关系中获取最小镜像索引,并将最小镜像索引确定为压缩索引;和/或,
从接收的日志压缩请求中提取指定索引,并从本地维护的映射关系中获取最小镜像索引;将所述指定索引和所述最小镜像索引中的最小值确定为压缩索引。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
从共享日志系统读取到第二类日志,根据本地维护的映射关系判定第一节点的标识对应的镜像索引是否为最小值;
若是,则基于读取的第二类日志携带的压缩索引执行日志压缩操作,利用所述压缩索引和第一节点的标识生成第三类日志,将所述第三类日志发送到共享日志系统。
8.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
根据第一节点状态符合预设恢复条件,与分布式系统中的第二节点建立通信连接,所述第二节点是分布式系统中除第一节点之外的节点;
通过所述通信连接读取第二节点上生成的镜像和镜像索引;
将所述镜像应用到本地,并根据读取的镜像索引从共享日志系统读取日志处理。
9.根据权利要求8所述的方法,其特征在于,根据第一节点状态符合预设恢复条件,包括:
每隔预设时间间隔,确定一次日志读取速度与共享日志系统的日志生成速度之间的比值;
根据连续两次确定的比值均小于预设阈值且连续两次中第二次确定的比值小于第一次确定的比值,确定第一节点状态符合预设恢复条件。
10.一种分布式系统,其特征在于,所述系统包括共享日志系统和多个节点,其中每个节点用于执行如权利要求1-9任一项所述方法的步骤。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序以实现如权利要求1-9任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行以实现如权利要求1-9任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211661783.9A CN116074332A (zh) | 2022-12-23 | 2022-12-23 | 镜像管理方法、分布式系统、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211661783.9A CN116074332A (zh) | 2022-12-23 | 2022-12-23 | 镜像管理方法、分布式系统、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116074332A true CN116074332A (zh) | 2023-05-05 |
Family
ID=86181344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211661783.9A Pending CN116074332A (zh) | 2022-12-23 | 2022-12-23 | 镜像管理方法、分布式系统、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116074332A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116561152A (zh) * | 2023-07-12 | 2023-08-08 | 天津南大通用数据技术股份有限公司 | 数据库日志记录方法及装置 |
-
2022
- 2022-12-23 CN CN202211661783.9A patent/CN116074332A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116561152A (zh) * | 2023-07-12 | 2023-08-08 | 天津南大通用数据技术股份有限公司 | 数据库日志记录方法及装置 |
CN116561152B (zh) * | 2023-07-12 | 2023-09-29 | 天津南大通用数据技术股份有限公司 | 数据库日志记录方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111083228B (zh) | 标识号的生成方法、装置和电子设备 | |
CN106844055B (zh) | 一种任务的执行方法和装置 | |
CN111796948A (zh) | 一种共享内存访问方法、装置、计算机设备和存储介质 | |
US11360684B2 (en) | Data storage method and apparatus, storage medium and computer device | |
CN116074332A (zh) | 镜像管理方法、分布式系统、电子设备及介质 | |
CN108769118B (zh) | 一种分布式系统中主节点的选取方法及装置 | |
CN110311855B (zh) | 用户消息处理方法、装置、电子设备及存储介质 | |
CN107547400B (zh) | 一种虚拟机迁移方法和装置 | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN111935242A (zh) | 数据传输方法、装置、服务器以及存储介质 | |
CN113452770B (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
EP3998754B1 (en) | Data distribution method, storage server and subscription server | |
CN110798492B (zh) | 数据存储方法及装置、数据处理系统 | |
CN108259340B (zh) | 一种拓扑信息传输方法和装置 | |
CN111092956A (zh) | 资源同步方法、装置、存储介质及设备 | |
CN116303418A (zh) | 基于物联网平台的海量规则处理方法、系统及存储介质 | |
CN109389271B (zh) | 应用性能管理方法及系统 | |
CN105912477B (zh) | 一种目录读取的方法、装置及系统 | |
CN113268327A (zh) | 事务请求的处理方法、装置和电子设备 | |
JP7133037B2 (ja) | メッセージ処理方法、装置およびシステム | |
CN111104528B (zh) | 图片获取方法、装置及客户端 | |
CN111586438A (zh) | 一种业务数据的处理方法、装置及系统 | |
JP2000040051A (ja) | クライアント・サーバーシステムにおけるメッセージ伝送方法及び装置 | |
CN115134618B (zh) | 直播流生命周期信息处理方法、装置及计算设备 | |
CN116938475B (zh) | 一种环签名方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |