CN107426265A - 数据一致性同步的方法及设备 - Google Patents
数据一致性同步的方法及设备 Download PDFInfo
- Publication number
- CN107426265A CN107426265A CN201710144238.5A CN201710144238A CN107426265A CN 107426265 A CN107426265 A CN 107426265A CN 201710144238 A CN201710144238 A CN 201710144238A CN 107426265 A CN107426265 A CN 107426265A
- Authority
- CN
- China
- Prior art keywords
- node device
- daily record
- data
- write
- host node
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
Abstract
本申请的目的是提供一种数据一致性同步的方法及设备,具体地,在节点设备端,根据写操作请求对主节点设备的数据进行更新,并生成对应更新的日志,向分布式存储设备写入日志;相应地,在从节点设备端,根据已重放的日志由分布式存储设备获取新写入的日志,重放获取到的日志,对从节点设备的数据进行更新。与现有技术相比,本申请的方案无需依赖节点设备的本地文件,在进行持久化数据的清理时,无需每个节点设备自己进行数据的清理,并且从节点设备通过读取主节点设备写入分布式存储设备中的日志进行数据同步,无需采用节点设备之间的同步协议,实现简单,数据丢失的风险较低。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据一致性同步的方法及设备。
背景技术
集群系统提供的服务一般都需要通过节点设备提供接口存储和交换数据。在系统运行的过程中,对于节点设备所管理的数据,需要保证其一致性、正确性和高可用性。因此,往往会由一组节点设备实现集群系统的服务,同一时间只有一个节点设备对外提供服务(主节点设备),其它节点设备作为备用设备(从节点设备),当主节点设备无法提供无法时,需要迅速将某一从节点设备切换为新的主节点设备,并继续提供服务。
在上述构架中,主从节点设备之间的数据同步的正确性和实时性是服务的一个关键特性。在现有技术中,各个节点设备均采用本地文件作为自身数据持久化的方式,并且在运行过程中采用同步协议进行主备之间的数据同步来保证数据的一致性。由于本地文件的存储空间利用率等限制,需要每个节点设备负责自身数据的清理,并且同步协议实现复杂,由此提高了系统的复杂度。此外依赖本地文件作为持久化,当所有节点设备都损坏时,数据就会丢失,因此不能灵活部署,存在数据丢失的风险。
申请内容
本申请的一个目的是提供一种数据一致性同步的方法及设备,用以解决现有技术中系统实现复杂、存在数据丢失风险的问题。
为实现上述目的,本申请提供了一种在主节点设备端用于数据一致性同步的方法,该方法包括:
根据写操作请求对主节点设备的数据进行更新,并生成对应所述更新的日志;
向分布式存储设备写入所述日志,以使从节点设备获取并重放所述日志,对所述从节点设备的数据进行更新。
本申请还提供了一种在从节点设备端用于数据一致性同步的方法,该方法包括:
根据已重放的日志由分布式存储设备获取新写入的日志;
重放获取到的所述日志,对从节点设备的数据进行更新。
基于本申请的另一方面,还提供了一种主节点设备,该设备包括:
数据处理装置,用于根据写操作请求对主节点设备的数据进行更新;
日志生成装置,用于生成对应所述更新的日志;
收发装置,用于向分布式存储设备写入所述日志,以使从节点设备获取并重放所述日志,对所述从节点设备的数据进行更新。
本申请实施例还提供了一种从节点设备,该设备包括:
收发装置,用于根据已重放的日志由分布式存储设备获取新写入的日志;
日志重放装置,用于重放获取到的所述日志,对从节点设备的数据进行更新。
本申请还提供了一种主节点设备,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:根据写操作请求对主节点设备的数据进行更新,并生成对应所述更新的日志;向分布式存储设备写入所述日志,以使从节点设备获取并重放所述日志,对所述从节点设备的数据进行更新。
本申请还提供了一种从节点设备,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:根据已重放的日志由分布式存储设备获取新写入的日志;重放获取到的所述日志,对从节点设备的数据进行更新。
与现有技术相比,本申请的技术方案采用存放于分布式存储设备中的日志作为持久化的方式,无需依赖节点设备的本地文件,在进行持久化数据的清理时,无需每个节点设备自己进行数据的清理,并且从节点设备通过读取主节点设备写入分布式存储设备中的日志进行数据同步,无需采用节点设备之间的同步协议,实现简单;此外,由于不依赖节点设备的本地文件进行持久化,当所有节点设备都损坏时,数据也不会丢失,使得节点设备部署灵活,数据丢失的风险较低。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为采用本申请的数据一致性同步方法的集群系统的结构示意图;
图2为本申请实施例提供的一种在主节点设备端用于数据一致性同步的方法流程图;
图3为本申请实施例提供的一种在从节点设备端用于数据一致性同步的方法流程图;
图4(a)为现有技术中主节点设备在日志写入成功时的处理时序图;
图4(b)为采用本申请提供的方法的主节点设备在日志写入成功时的处理时序图;
图4(c)为采用本申请提供的方法的主节点设备在日志写入失败时的处理时序图;
图5为本申请实施例提供的一种主节点设备的结构示意图;
图6为本申请实施例提供的一种从节点设备的结构示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1示出了一集群系统,该包括一主节点设备110、多个从节点设备120以及一分布式存储设备130。所述主节点设备对外提供服务,能够接收用户设备发送的写操作请求,并根据写操作请求对主节点设备内的数据进行更新。多个从节点设备作为主节点设备的备用设备,在主节点设备无法提供服务时,成为新的主节点设备继续为用户提供服务。而分布式存储设备则作为主节点设备110和从节点设备120之间数据同步的载体,用于存放持久化的更新数据。
在所述主节点设备端,进行数据一致性同步的方法的处理流程如图2所示,包括以下步骤:
步骤S201,根据写操作请求对主节点设备的数据进行更新,并生成对应所述更新的日志。
步骤S202,向分布式存储设备写入所述日志,以使从节点设备获取并重放所述日志,对所述从节点设备的数据进行更新。
其中,所述写操作请求是指用户通过用户设备发送的、用于对修改主节点设备中的数据的请求。主节点设备在根据写操作请求对其数据进行更新的同时,会生成相应的日志(Log),所述日志用于记录主节点设备中对所述数据的操作事件,例如对数据的删除、修改、新建等操作事件。在向分布式存储设备写入所述日志时,可以通过分布式存储设备提供的API(应用程序接口)实现日志数据的写入。由于日志会按照操作事件的实际发生顺序生成,因此从节点设备通过顺序地重放(Replay)所述日志,能够依次重新执行日志所记录的操作事件,由此实现数据的同步。
相应地,在任意一个从节点设备端,其数据一致性同步的方法如图3所示,包括以下步骤:
步骤S301,根据已重放的日志由分布式存储设备获取新写入的日志。
在实际应用中,若从节点设备已经重放了五条日志,此时会根据已经重放的情况,由分布式存储设备中获取新的日志。作为一种可行的实施方式,若采用日志序号(LSN,LogSequence Number)对日志的顺序进行标记,从节点设备在重放完日志时记录最后重放的日志序号,例如已经重放的日志包括日志序号为001至005的日志,由此可知最后重放的日志序号为005,则此时需要由分布式存储设备中至少获取日志序号为006的日志。相应地,对于从节点设备,分布式存储设备同样会提供用于日志读取的API。
步骤S302,重放获取到的所述日志,对从节点设备的数据进行更新。
由于采用存储于分布式存储设备中的日志进行数据的持久化,无需依赖节点设备的本地文件,在进行持久化数据的清理时,无需每个节点设备自己进行数据的清理,并且从节点设备通过读取主节点设备写入分布式存储设备中的日志进行数据同步,无需采用节点设备之间的同步协议,实现简单;此外,由于不依赖节点设备的本地文件进行持久化,当所有节点设备都损坏时,数据也不会丢失,使得节点设备部署灵活,数据丢失的风险较低。
在所述主节点设备端,根据写操作请求对主节点设备的数据进行更新之前,还包括获取用户设备发送的写操作请求。在接收到写操作请求后,主节点设备会据此对主节点设备的数据进行删除、修改、新建等更新,在对数据的更新完成后,主节点设备会向用户返回操作成功的信息,使得用户能够得到写操作请求已经处理成功,当前的数据状态已经完成更新。
此时,主节点设备的处理时序如图4(a)所示,在根据请求更新数据并生成日志之后,向用户返回操作成功的信息,并向分布式存储设备发送日志。在此种情况下,由于网络状况或者其它因素,用户可能已经接收到返回的操作成功的信息,但是分布式存储设备未成功写入的主节点设备发送的日志,若此时主节点设备出现异常,无法继续提供服务,由于从节点设备无法由分布式存储设备获取到未成功写入的日志,无法实现该次数据更新的同步,在切换主节点设备后将造成用户得到信息与集群系统中的数据状态不一致。为避免上述问题,主节点设备可以采用如图4(b)所示的方式进行处理,即主节点设备在执行步骤S202之后,还包括:获取关于写入结果的获取返回信息,若所述返回信息为写入成功的信息,则向用户设备发送写操作成功的信息。由此保证在任何情况下用户得到的信息与集群系统中的数据状态一致,提高集群系统的可靠性。
在实际场景下,分布式存储设备的返回信息也有可能是写入失败的信息,对于此种情况,主节点设备可以采用如图4(c)所示的方式进行处理,即获取关于写入结果的获取返回信息之后,还包括:若所述返回信息为写入失败的信息,则再次向分布式存储设备写入所述日志。对于写入失败后重试的次数,可以根据实际需求进行设定,例如本实施例中重试的次数设定为1次,即再次向分布式存储设备写入所述日志失败之后,主节点设备将不再尝试写入该日志,而是认为存在异常,切换主节点设备,由其中一个从节点设备继续提供服务。
作为一种优选的实施方式,在主节点设备端用于数据一致性同步的方法,还包括:若主节点设备发生异常,则释放主从锁,并停止运行所述主节点设备。其中,所述主节点设备发生异常的情况,可以包括无法接收到分布式存储系统关于写入结果的返回信息,或者接收到的返回信息异常,或者如前例中提及的多次接收到写入失败的返回信息等。对于主节点设备发生异常的情况,需要进行主从节点设备的切换,此时主节点设备释放主从锁,并停止运行自身的运行(例如采用主动Crash的方式)。
当主节点释放主从锁时,其中一个从节点设备能够拿到主从锁。如果获取到主从锁,则认为原来的主节点设备已经不存在,此时获取到主从锁的从节点设备将切换为新的主节点设备,并在数据同步完成后,继续对外提供服务。在运行过程中,从节点设备会以一定的预设间隔尝试获取主从锁,例如以秒为间隔,每秒钟尝试获取主从锁。当主节点设备释放主从锁时,其中一个从节点设备就可以获取到被释放的主从锁,从而实现主节点设备的切换。
对于从节点设备,其在运行的过程中可以根据一定的条件由分布式存储设备获取新写入的日志,作为一种优选的实施方式,只有当分布式存储设备中有新的日志写入时,才尝试读取日志。具体地,在从节点设备端用于数据一致性同步的方法中,在步骤S301根据已重放的日志由分布式存储设备获取新写入的日志之前,还包括:根据分布式存储设备中日志文件的更新时间戳确定存在新写入的日志。其中,所述日志文件为分布式存储设备中用于存储由主节点设备写入的日志的文件,当分布式存储设备接收到主节点设备发送的日志后,会将日志写入该日志文件中。每次写入时,该日志文件的更新时间戳会被修改,因此,从节点设备可以在每次读取日志时,同时获取当前的更新时间戳,并定时对更新时间戳进行检测,若更新时间戳与前一次不同,则表明有新的日志写入,则可以获取到新写入的日志。
主节点设备向分布式存储设备中写入新的日志时,该条日志可能还不完整,若从节点设备读取到不完整的日志并重放此日志进行数据的同步,将造成数据丢失。为避免该问题,所述步骤302具体包括:判断获取到的所述日志是否完整,若完整,则重放所述日志,对从节点设备的数据进行更新;若不完整,则丢弃所述日志。在实际场景中,日志的头中的信息记录有日志的完整性,通过读取日志的头中的信息,可以判断获取到的所述日志是否完整。丢弃所述日志是指从节点设备认为没有读取过此条日志,不对数据同步的状态进行任何更新。
此外,从节点设备在获取到主从锁时,需要在完成数据同步完成后,才会正式切换为主节点设备继续对外提供服务。由于主节点设备未写入完整的日志后,不会向用户设备返回操作成功的信息,因此从节点设备需要对分布式存储设备中的最后一条日志的完整性进行判定,若完整重放该日志,对从节点设备的数据进行更新,若不完整,则丢弃该日志。由此,对于所述从节点设备在进行主从设备切换时,具体包括:获取主节点设备释放的主从锁;若已获取并重放分布式存储设备中最新写入的完整日志,则将所述从节点设备切换为新的主节点设备,由此保证数据的一致性。
基于本申请的另一方面,本申请实施例还提供了一种主节点设备,该主节点设备的结构如图5所示,包括数据处理装置510、日志生成装置520和收发装置530。具体地,所述数据处理装置510用于根据写操作请求对主节点设备的数据进行更新;所述日志生成装置520用于生成对应所述更新的日志;所述收发装置530用于向分布式存储设备写入所述日志,以使从节点设备获取并重放所述日志,对所述从节点设备的数据进行更新。
其中,所述写操作请求是指用户通过用户设备发送的、用于对修改主节点设备中的数据的请求。主节点设备在根据写操作请求对其数据进行更新的同时,会生成相应的日志(Log),所述日志用于记录主节点设备中对所述数据的操作事件,例如对数据的删除、修改、新建等操作事件。在向分布式存储设备写入所述日志时,可以通过分布式存储设备提供的API(应用程序接口)实现日志数据的写入。由于日志会按照操作事件的实际发生顺序生成,因此从节点设备通过顺序地重放(Replay)所述日志,能够依次重新执行日志所记录的操作事件,由此实现数据的同步。
相应地,本申请实施例还提供了一种从节点设备,该从节点设备的结构如图6所示,包括收发装置610和日志重放装置620。具体地,所述收发装置610用于根据已重放的日志由分布式存储设备获取新写入的日志。所述日志重放装置620用于重放获取到的所述日志,对从节点设备的数据进行更新。在实际应用中,若从节点设备已经重放了五条日志,此时会根据已经重放的情况,由分布式存储设备中获取新的日志。作为一种可行的实施方式,若采用日志序号(LSN,Log Sequence Number)对日志的顺序进行标记,从节点设备在重放完日志时记录最后重放的日志序号,例如已经重放的日志包括日志序号为001至005的日志,由此可知最后重放的日志序号为005,则此时需要由分布式存储设备中至少获取日志序号为006的日志。相应地,对于从节点设备,分布式存储设备同样会提供用于日志读取的API。
由于采用存储于分布式存储设备中的日志进行数据的持久化,无需依赖节点设备的本地文件,在进行持久化数据的清理时,无需每个节点设备自己进行数据的清理,并且从节点设备通过读取主节点设备写入分布式存储设备中的日志进行数据同步,无需采用节点设备之间的同步协议,实现简单;此外,由于不依赖节点设备的本地文件进行持久化,当所有节点设备都损坏时,数据也不会丢失,使得节点设备部署灵活,数据丢失的风险较低。
在所述主节点设备端,根据写操作请求对主节点设备的数据进行更新之前,所述收发装置530还会获取用户设备发送的写操作请求。在接收到写操作请求后,主节点设备会据此对主节点设备的数据进行删除、修改、新建等更新,在对数据的更新完成后,主节点设备会向用户返回操作成功的信息,使得用户能够得到写操作请求已经处理成功,当前的数据状态已经完成更新。
此时,主节点设备的处理时序如图4(a)所示,在根据请求更新数据并生成日志之后,收发装置530向用户返回操作成功的信息,并向分布式存储设备发送日志。在此种情况下,由于网络状况或者其它因素,用户可能已经接收到返回的操作成功的信息,但是分布式存储设备未成功写入的主节点设备发送的日志,若此时主节点设备出现异常,无法继续提供服务,由于从节点设备无法由分布式存储设备获取到未成功写入的日志,无法实现该次数据更新的同步,在切换主节点设备后将造成用户得到信息与集群系统中的数据状态不一致。为避免上述问题,主节点设备可以采用如图4(b)所示的方式进行处理,即所述收发装置530还用于获取关于写入结果的获取返回信息,并在所述返回信息为写入成功的信息时,向用户设备发送写操作成功的信息。由此保证在任何情况下用户得到的信息与集群系统中的数据状态一致,提高集群系统的可靠性。
在实际场景下,分布式存储设备的返回信息也有可能是写入失败的信息,对于此种情况,主节点设备可以采用如图4(c)所示的方式进行处理,即获取关于写入结果的获取返回信息之后,还包括:若所述返回信息为写入失败的信息,收发装置530会再次向分布式存储设备写入所述日志。对于写入失败后重试的次数,可以根据实际需求进行设定,例如本实施例中重试的次数设定为1次,即再次向分布式存储设备写入所述日志失败之后,主节点设备将不再尝试写入该日志,而是认为存在异常,切换主节点设备,由其中一个从节点设备继续提供服务。
作为一种优选的实施方式,所述主节点设备还包括一切换装置。所述切换装置用于在主节点设备发生异常时,释放主从锁,并停止运行所述主节点设备。其中,所述主节点设备发生异常的情况,可以包括无法接收到分布式存储系统关于写入结果的返回信息,或者接收到的返回信息异常,或者如前例中提及的多次接收到写入失败的返回信息等。对于主节点设备发生异常的情况,需要进行主从节点设备的切换,此时主节点设备释放主从锁,并停止运行自身的运行(例如采用主动Crash的方式)。
相应地,所述从节点设备也包括一切换装置,当主节点释放主从锁时,其中一个从节点设备的切换装置能够拿到主从锁。如果获取到主从锁,则认为原来的主节点设备已经不存在,此时获取到主从锁的从节点设备将切换为新的主节点设备,并在数据同步完成后,继续对外提供服务。在运行过程中,从节点设备会以一定的预设间隔尝试获取主从锁,例如以秒为间隔,每秒钟尝试获取主从锁。当主节点设备释放主从锁时,其中一个从节点设备就可以获取到被释放的主从锁,从而实现主节点设备的切换。
对于从节点设备,其在运行的过程中可以根据一定的条件由分布式存储设备获取新写入的日志,作为一种优选的实施方式,只有当分布式存储设备中有新的日志写入时,才尝试读取日志。具体地,所述从节点设备还包括预判装置,用于在根据已重放的日志由分布式存储设备获取新写入的日志之前,根据分布式存储设备中日志文件的更新时间戳确定存在新写入的日志,其中,所述日志文件用于存储由主节点设备写入的日志。其中,所述日志文件为分布式存储设备中用于存储由主节点设备写入的日志的文件,当分布式存储设备接收到主节点设备发送的日志后,会将日志写入该日志文件中。每次写入时,该日志文件的更新时间戳会被修改,因此,从节点设备可以在每次读取日志时,同时获取当前的更新时间戳,并定时对更新时间戳进行检测,若更新时间戳与前一次不同,则表明有新的日志写入,则可以获取到新写入的日志。
主节点设备向分布式存储设备中写入新的日志时,该条日志可能还不完整,若从节点设备读取到不完整的日志并重放此日志进行数据的同步,将造成数据丢失。为避免该问题,所述日志重放装置620具体用于判断获取到的所述日志是否完整,若完整,则重放所述日志,对从节点设备的数据进行更新;若不完整,则丢弃所述日志。在实际场景中,日志的头中的信息记录有日志的完整性,通过读取日志的头中的信息,可以判断获取到的所述日志是否完整。丢弃所述日志是指从节点设备认为没有读取过此条日志,不对数据同步的状态进行任何更新。
此外,从节点设备在获取到主从锁时,需要在完成数据同步完成后,才会正式切换为主节点设备继续对外提供服务。由于主节点设备未写入完整的日志后,不会向用户设备返回操作成功的信息,因此从节点设备需要对分布式存储设备中的最后一条日志的完整性进行判定,若完整重放该日志,对从节点设备的数据进行更新,若不完整,则丢弃该日志。由此,从节点设备的切换装置具体用于获取主节点设备释放的主从锁,以及在已获取并重放分布式存储设备中最新写入的完整日志时,将所述从节点设备切换为新的主节点设备。
此外,本申请实施例还提供了一种主节点设备,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:根据写操作请求对主节点设备的数据进行更新,并生成对应所述更新的日志;向分布式存储设备写入所述日志,以使从节点设备获取并重放所述日志,对所述从节点设备的数据进行更新。
本申请实施例还提供了一种从节点设备,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:根据已重放的日志由分布式存储设备获取新写入的日志;重放获取到的所述日志,对从节点设备的数据进行更新。
综上所述,本申请的技术方案采用存放于分布式存储设备中的日志作为持久化的方式,无需依赖节点设备的本地文件,在进行持久化数据的清理时,无需每个节点设备自己进行数据的清理,并且从节点设备通过读取主节点设备写入分布式存储设备中的日志进行数据同步,无需采用节点设备之间的同步协议,实现简单;此外,由于不依赖节点设备的本地文件进行持久化,当所有节点设备都损坏时,数据也不会丢失,使得节点设备部署灵活,数据丢失的风险较低。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (18)
1.一种在主节点设备端用于数据一致性同步的方法,其中,该方法包括:
根据写操作请求对主节点设备的数据进行更新,并生成对应所述更新的日志;
向分布式存储设备写入所述日志,以使从节点设备获取并重放所述日志,对所述从节点设备的数据进行更新。
2.根据权利要求1所述的方法,其中,在根据写操作请求对主节点设备的数据进行更新之前,还包括:
获取用户设备发送的写操作请求;
向分布式存储设备写入所述日志之后,还包括:
获取关于写入结果的获取返回信息;
若所述返回信息为写入成功的信息,则向用户设备发送写操作成功的信息。
3.根据权利要求2所述的方法,其中,获取关于写入结果的获取返回信息之后,还包括:
若所述返回信息为写入失败的信息,则再次向分布式存储设备写入所述日志。
4.根据权利要求1所述的方法,其中,该方法还包括:
若主节点设备发生异常,则释放主从锁,并停止运行所述主节点设备。
5.一种在从节点设备端用于数据一致性同步的方法,其中,该方法包括:
根据已重放的日志由分布式存储设备获取新写入的日志;
重放获取到的所述日志,对从节点设备的数据进行更新。
6.根据权利要求5所述的方法,其中,在根据已重放的日志由分布式存储设备获取新写入的日志之前,还包括:
根据分布式存储设备中日志文件的更新时间戳确定存在新写入的日志,其中,所述日志文件用于存储由主节点设备写入的日志。
7.根据权利要求5或6所述的方法,其中,重放获取到的所述日志,对从节点设备的数据进行更新,包括:
判断获取到的所述日志是否完整,若完整,则重放所述日志,对从节点设备的数据进行更新;若不完整,则丢弃所述日志。
8.根据权利要求7所述的方法,其中,该方法还包括:
获取主节点设备释放的主从锁;
若已获取并重放分布式存储设备中最新写入的完整日志,则将所述从节点设备切换为新的主节点设备。
9.一种主节点设备,其中,该设备包括:
数据处理装置,用于根据写操作请求对主节点设备的数据进行更新;
日志生成装置,用于生成对应所述更新的日志;
收发装置,用于向分布式存储设备写入所述日志,以使从节点设备获取并重放所述日志,对所述从节点设备的数据进行更新。
10.根据权利要求9所述的设备,其中,所述收发装置,还用于在根据写操作请求对主节点设备的数据进行更新之前,获取用户设备发送的写操作请求;以及获取关于写入结果的获取返回信息,并在所述返回信息为写入成功的信息时,向用户设备发送写操作成功的信息。
11.根据权利要求10所述的设备,其中,所述收发装置,还用于在所述返回信息为写入失败的信息时,则再次向分布式存储设备写入所述日志。
12.根据权利要求9所述的设备,其中,该设备还包括:
切换装置,用于在主节点设备发生异常时,释放主从锁,并停止运行所述主节点设备。
13.一种从节点设备,其中,该设备包括:
收发装置,用于根据已重放的日志由分布式存储设备获取新写入的日志;
日志重放装置,用于重放获取到的所述日志,对从节点设备的数据进行更新。
14.根据权利要求13所述的设备,其中,预判装置,用于在根据已重放的日志由分布式存储设备获取新写入的日志之前,根据分布式存储设备中日志文件的更新时间戳确定存在新写入的日志,其中,所述日志文件用于存储由主节点设备写入的日志。
15.根据权利要求13或14所述的设备,其中,所述日志重放装置,用于判断获取到的所述日志是否完整,若完整,则重放所述日志,对从节点设备的数据进行更新;若不完整,则丢弃所述日志。
16.根据权利要求15所述的设备,其中,该设备还包括:
切换装置,用于获取主节点设备释放的主从锁,以及在已获取并重放分布式存储设备中最新写入的完整日志时,将所述从节点设备切换为新的主节点设备。
17.一种主节点设备,其中,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:根据写操作请求对主节点设备的数据进行更新,并生成对应所述更新的日志;向分布式存储设备写入所述日志,以使从节点设备获取并重放所述日志,对所述从节点设备的数据进行更新。
18.一种从节点设备,其中,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:根据已重放的日志由分布式存储设备获取新写入的日志;重放获取到的所述日志,对从节点设备的数据进行更新。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610141492 | 2016-03-11 | ||
CN2016101414925 | 2016-03-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107426265A true CN107426265A (zh) | 2017-12-01 |
Family
ID=60423429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710144238.5A Pending CN107426265A (zh) | 2016-03-11 | 2017-03-10 | 数据一致性同步的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107426265A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108322533A (zh) * | 2018-01-31 | 2018-07-24 | 广州鼎甲计算机科技有限公司 | 基于操作日志的分布式集群节点间配置同步方法 |
CN108364224A (zh) * | 2018-01-12 | 2018-08-03 | 深圳壹账通智能科技有限公司 | 信贷风险联控方法、装置、设备及可读存储介质 |
CN108829787A (zh) * | 2018-05-31 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种元数据分布式系统 |
CN109101200A (zh) * | 2018-08-30 | 2018-12-28 | 重庆富民银行股份有限公司 | 一种跨网络实时双向同步的磁盘存储系统 |
CN109117093A (zh) * | 2018-08-20 | 2019-01-01 | 赛凡信息科技(厦门)有限公司 | 保证分布式对象存储中的数据、流量、容量一致性的方案 |
CN109359484A (zh) * | 2018-08-22 | 2019-02-19 | 北京中测安华科技有限公司 | 云平台的安全审计终端日志的处理方法、装置、设备和介质 |
CN109508251A (zh) * | 2018-11-21 | 2019-03-22 | 北京锐安科技有限公司 | 数据存储方法、系统、设备和介质 |
CN109586948A (zh) * | 2018-10-16 | 2019-04-05 | 深圳壹账通智能科技有限公司 | 更新系统配置数据的方法、装置、计算机设备和存储介质 |
CN110096358A (zh) * | 2019-04-11 | 2019-08-06 | 上海交通大学 | 动力装备远程中心分布式存储与分布式计算方法 |
CN110232053A (zh) * | 2017-12-05 | 2019-09-13 | 华为技术有限公司 | 日志处理方法、相关设备及系统 |
CN110309156A (zh) * | 2018-03-01 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 数据库系统、数据库更新、扩容方法及设备 |
CN110895545A (zh) * | 2018-08-22 | 2020-03-20 | 阿里巴巴集团控股有限公司 | 共享数据同步方法及装置 |
CN111026807A (zh) * | 2019-11-25 | 2020-04-17 | 深圳壹账通智能科技有限公司 | 分布式锁的同步方法、装置、计算机设备及可读存储介质 |
CN111240899A (zh) * | 2020-01-10 | 2020-06-05 | 北京百度网讯科技有限公司 | 状态机复制方法、装置、系统及存储介质 |
CN111399772A (zh) * | 2020-02-29 | 2020-07-10 | 苏州浪潮智能科技有限公司 | 一种节点间的位图信息同步方法、装置、设备及存储介质 |
CN112241443A (zh) * | 2019-07-16 | 2021-01-19 | 中国移动通信集团浙江有限公司 | 数据质量监测方法、装置、计算设备及计算机存储介质 |
CN113220236A (zh) * | 2021-05-17 | 2021-08-06 | 北京青云科技股份有限公司 | 一种数据管理方法、系统及设备 |
CN113515574A (zh) * | 2021-05-17 | 2021-10-19 | 聚好看科技股份有限公司 | 一种数据同步方法及装置 |
CN115599747A (zh) * | 2022-04-22 | 2023-01-13 | 北京志凌海纳科技有限公司(Cn) | 一种分布式存储系统的元数据同步方法、系统及设备 |
CN116303791A (zh) * | 2023-03-22 | 2023-06-23 | 合肥申威睿思信息科技有限公司 | 一种基于加速系统的数据同步方法和装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103199978A (zh) * | 2013-03-25 | 2013-07-10 | 天脉聚源(北京)传媒科技有限公司 | 一种同步日志的方法及装置 |
CN103198159A (zh) * | 2013-04-27 | 2013-07-10 | 国家计算机网络与信息安全管理中心 | 一种基于事务重做的异构集群多副本一致性维护方法 |
CN103226502A (zh) * | 2013-05-21 | 2013-07-31 | 中国工商银行股份有限公司 | 一种数据灾备控制系统及数据恢复方法 |
CN103548010A (zh) * | 2011-05-23 | 2014-01-29 | 微软公司 | 分布式存储环境中的同步复制 |
CN103608781A (zh) * | 2011-06-06 | 2014-02-26 | 微软公司 | 用于服务的恢复服务位置 |
CN103813369A (zh) * | 2012-11-13 | 2014-05-21 | 北京信威通信技术股份有限公司 | 一种分布式的电信交换设备备份方法 |
CN105069160A (zh) * | 2015-08-26 | 2015-11-18 | 国家电网公司 | 一种基于自主可控数据库的高可用性方法及构架 |
US20150347250A1 (en) * | 2014-05-30 | 2015-12-03 | Altibase Corp. | Database management system for providing partial re-synchronization and partial re-synchronization method of using the same |
CN105138615A (zh) * | 2015-08-10 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种构建大数据分布式日志的方法和系统 |
CN105183738A (zh) * | 2015-03-23 | 2015-12-23 | 江苏南开之星软件技术有限公司 | 一种基于血统和检测点技术的分布式内存文件系统 |
-
2017
- 2017-03-10 CN CN201710144238.5A patent/CN107426265A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103548010A (zh) * | 2011-05-23 | 2014-01-29 | 微软公司 | 分布式存储环境中的同步复制 |
CN103608781A (zh) * | 2011-06-06 | 2014-02-26 | 微软公司 | 用于服务的恢复服务位置 |
CN103813369A (zh) * | 2012-11-13 | 2014-05-21 | 北京信威通信技术股份有限公司 | 一种分布式的电信交换设备备份方法 |
CN103199978A (zh) * | 2013-03-25 | 2013-07-10 | 天脉聚源(北京)传媒科技有限公司 | 一种同步日志的方法及装置 |
CN103198159A (zh) * | 2013-04-27 | 2013-07-10 | 国家计算机网络与信息安全管理中心 | 一种基于事务重做的异构集群多副本一致性维护方法 |
CN103226502A (zh) * | 2013-05-21 | 2013-07-31 | 中国工商银行股份有限公司 | 一种数据灾备控制系统及数据恢复方法 |
US20150347250A1 (en) * | 2014-05-30 | 2015-12-03 | Altibase Corp. | Database management system for providing partial re-synchronization and partial re-synchronization method of using the same |
CN105183738A (zh) * | 2015-03-23 | 2015-12-23 | 江苏南开之星软件技术有限公司 | 一种基于血统和检测点技术的分布式内存文件系统 |
CN105138615A (zh) * | 2015-08-10 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种构建大数据分布式日志的方法和系统 |
CN105069160A (zh) * | 2015-08-26 | 2015-11-18 | 国家电网公司 | 一种基于自主可控数据库的高可用性方法及构架 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110232053B (zh) * | 2017-12-05 | 2024-02-02 | 华为技术有限公司 | 日志处理方法、相关设备及系统 |
US11640261B2 (en) | 2017-12-05 | 2023-05-02 | Huawei Technologies Co., Ltd. | Log processing method to avoid log collision, and related device and system |
CN110232053A (zh) * | 2017-12-05 | 2019-09-13 | 华为技术有限公司 | 日志处理方法、相关设备及系统 |
CN108364224A (zh) * | 2018-01-12 | 2018-08-03 | 深圳壹账通智能科技有限公司 | 信贷风险联控方法、装置、设备及可读存储介质 |
CN108322533B (zh) * | 2018-01-31 | 2019-02-19 | 广州鼎甲计算机科技有限公司 | 基于操作日志的分布式集群节点间配置同步方法 |
CN108322533A (zh) * | 2018-01-31 | 2018-07-24 | 广州鼎甲计算机科技有限公司 | 基于操作日志的分布式集群节点间配置同步方法 |
CN110309156A (zh) * | 2018-03-01 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 数据库系统、数据库更新、扩容方法及设备 |
CN108829787A (zh) * | 2018-05-31 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种元数据分布式系统 |
CN109117093B (zh) * | 2018-08-20 | 2021-10-01 | 赛凡信息科技(厦门)有限公司 | 保证分布式对象存储中的数据、流量、容量一致性的方法 |
CN109117093A (zh) * | 2018-08-20 | 2019-01-01 | 赛凡信息科技(厦门)有限公司 | 保证分布式对象存储中的数据、流量、容量一致性的方案 |
CN109359484A (zh) * | 2018-08-22 | 2019-02-19 | 北京中测安华科技有限公司 | 云平台的安全审计终端日志的处理方法、装置、设备和介质 |
CN110895545A (zh) * | 2018-08-22 | 2020-03-20 | 阿里巴巴集团控股有限公司 | 共享数据同步方法及装置 |
CN110895545B (zh) * | 2018-08-22 | 2023-08-15 | 阿里云计算有限公司 | 共享数据同步方法及装置 |
CN109101200A (zh) * | 2018-08-30 | 2018-12-28 | 重庆富民银行股份有限公司 | 一种跨网络实时双向同步的磁盘存储系统 |
CN109586948A (zh) * | 2018-10-16 | 2019-04-05 | 深圳壹账通智能科技有限公司 | 更新系统配置数据的方法、装置、计算机设备和存储介质 |
CN109508251A (zh) * | 2018-11-21 | 2019-03-22 | 北京锐安科技有限公司 | 数据存储方法、系统、设备和介质 |
CN110096358A (zh) * | 2019-04-11 | 2019-08-06 | 上海交通大学 | 动力装备远程中心分布式存储与分布式计算方法 |
CN112241443B (zh) * | 2019-07-16 | 2023-11-21 | 中国移动通信集团浙江有限公司 | 数据质量监测方法、装置、计算设备及计算机存储介质 |
CN112241443A (zh) * | 2019-07-16 | 2021-01-19 | 中国移动通信集团浙江有限公司 | 数据质量监测方法、装置、计算设备及计算机存储介质 |
CN111026807A (zh) * | 2019-11-25 | 2020-04-17 | 深圳壹账通智能科技有限公司 | 分布式锁的同步方法、装置、计算机设备及可读存储介质 |
CN111240899A (zh) * | 2020-01-10 | 2020-06-05 | 北京百度网讯科技有限公司 | 状态机复制方法、装置、系统及存储介质 |
CN111399772B (zh) * | 2020-02-29 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种节点间的位图信息同步方法、装置、设备及存储介质 |
CN111399772A (zh) * | 2020-02-29 | 2020-07-10 | 苏州浪潮智能科技有限公司 | 一种节点间的位图信息同步方法、装置、设备及存储介质 |
CN113515574A (zh) * | 2021-05-17 | 2021-10-19 | 聚好看科技股份有限公司 | 一种数据同步方法及装置 |
CN113220236A (zh) * | 2021-05-17 | 2021-08-06 | 北京青云科技股份有限公司 | 一种数据管理方法、系统及设备 |
CN113220236B (zh) * | 2021-05-17 | 2024-01-30 | 北京青云科技股份有限公司 | 一种数据管理方法、系统及设备 |
CN115599747A (zh) * | 2022-04-22 | 2023-01-13 | 北京志凌海纳科技有限公司(Cn) | 一种分布式存储系统的元数据同步方法、系统及设备 |
CN116303791A (zh) * | 2023-03-22 | 2023-06-23 | 合肥申威睿思信息科技有限公司 | 一种基于加速系统的数据同步方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107426265A (zh) | 数据一致性同步的方法及设备 | |
EP3474516B1 (en) | Data processing method and device | |
US9189348B2 (en) | High availability database management system and database management method using same | |
US20050262316A1 (en) | Backup acquisition method and disk array apparatus | |
JP2022013854A (ja) | 2フェーズコミット分散トランザクションを使用することによってデータベースを更新するための方法および装置 | |
CN107451172A (zh) | 用于版本管理系统的数据同步方法及设备 | |
US9525733B2 (en) | Method and system for data synchronization | |
CN107357688A (zh) | 分布式系统及其故障恢复方法和装置 | |
CN111797172B (zh) | 数据迁移方法、装置、设备、分布式系统及存储介质 | |
CN106357703B (zh) | 集群切换方法与设备 | |
CN109491832A (zh) | 数据容灾方法与站点 | |
JP2019527883A (ja) | データベースのデータ変更要求処理方法及び装置 | |
CN104750755A (zh) | 一种数据库主备切换后的数据回补方法及系统 | |
US10318330B2 (en) | Data-persisting temporary virtual machine environments | |
JP2019204527A (ja) | 記憶機器のデータ位置の処理方法及び処理装置、コンピュータ機器並びにコンピュータ読み取り可能な記憶媒体 | |
CN107528703B (zh) | 一种用于管理分布式系统中节点设备的方法与设备 | |
CN107045426B (zh) | 一种多副本读取方法和系统 | |
CN113535477B (zh) | 一种用于数据容灾恢复的方法与设备 | |
CN112199329B (zh) | 基于堡垒机的双机运维数据归档清理方法与设备 | |
CN115328931A (zh) | 数据库集群数据校验方法、装置、存储介质及电子设备 | |
CN114757777A (zh) | 用于区块链的最优链路选择方法及装置和电子设备 | |
US20180239535A1 (en) | Replicating Data in a Data Storage System | |
CN110928945B (zh) | 一种针对数据库的数据处理方法及装置,数据处理系统 | |
CN113157392A (zh) | 镜像仓库高可用方法及设备 | |
CN111176886A (zh) | 一种数据库模式的切换方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171201 |
|
RJ01 | Rejection of invention patent application after publication |