CN112822227A - 分布式存储系统的数据同步方法、装置、设备及存储介质 - Google Patents
分布式存储系统的数据同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112822227A CN112822227A CN201911121853.XA CN201911121853A CN112822227A CN 112822227 A CN112822227 A CN 112822227A CN 201911121853 A CN201911121853 A CN 201911121853A CN 112822227 A CN112822227 A CN 112822227A
- Authority
- CN
- China
- Prior art keywords
- log
- storage server
- log information
- slave
- written
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012544 monitoring process Methods 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 238000012806 monitoring device Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- 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
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式存储系统的数据同步方法、装置、设备及存储系统,其中分布式存储系统包括主存储服务器和从存储服务器,该方法由主存储服务器实施,包括:确定从存储服务器是否成功写入第一日志信息,第一日志信息包括主存储服务器的本地日志文件中最新一条日志条目;当确定从存储服务器已成功写入第一日志信息后,确定是否有数据写入;如果确定没有数据写入,向从存储服务器发送第二日志信息,以通知从存储服务器存储第三日志信息,第二日志信息不具有日志条目;其中,第三日志信息包含当前已被设定数量的其他从存储服务器持久化的最新日志条目。
Description
技术领域
本发明涉及通信技术领域,更具体地,涉及一种分布式存储系统的数据同步方法、一种分布式存储系统的数据同步装置、一种分布式存储系统的存储服务器以及一种计算机存储介质。
背景技术
目前,在分布式存储系统中,主存储服务器可以将本地日志文件中的日志条目同步至从存储服务器中。与此同时,主存储服务器还会通知从存储服务器当前已被大多数存储服务器持久化的最新日志条目的信息,以使得从存储服务器可将该条最新的日志条目及其之前的所有日志条目都读取并存储在对应的存储引擎中。
这种数据同步的方式会存在如下缺陷:主存储服务器在将本地日志文件中最后的一条日志条目同步至从存储服务器后,可能会出现一定时间内没有新数据被写入的情况,主存储服务器在一定时间内将不再与从存储服务器进行交互。因而,主存储服务器不能及时通知从存储服务器当前已经被大多数存储服务器持久化的最新日志条目的信息,导致该从存储服务器的存储引擎中的日志条目更新滞后,不能与主存储服务器的存储引擎中的日志条目保持同步。
发明内容
本发明的一个目的是提供一种用于分布式存储系统的数据同步的新技术方案。
根据本发明的第一方面,提供了一种分布式存储系统的数据同步方法,所述分布式存储系统包括主存储服务器和从存储服务器,所述方法由所述主存储服务器实施,包括:
确定所述从存储服务器是否成功写入第一日志信息,所述第一日志信息包括所述主存储服务器的本地日志文件中最新一条日志条目;
当确定所述从存储服务器已成功写入所述第一日志信息后,确定是否有数据写入;
如果确定没有数据写入,向所述从存储服务器发送第二日志信息,以通知所述从存储服务器存储第三日志信息,所述第二日志信息不具有日志条目;
其中,所述第三日志信息包含当前已被设定数量的其他从存储服务器持久化的最新日志条目。
可选的,其中,所述当确定所述从存储服务器已成功写入所述第一日志信息后,确定是否有数据写入,包括:
在确定所述从服务器已成功写入所述第一日志信息时,启动计时;
在所述计时时间到达预设时间的期间,监测所述本地日志文件中是否增加有日志条目;
如果确定所述本地日志文件中增加有日志条目,则确定有数据写入;
如果确定所述本地日志文件中未增加有日志条目,则确定没有数据写入。
可选的,其中,所述方法还包括:
在所述计时时间到达预设时间之前的任意时刻,如果监测到所述本地日志文件中增加有日志条目,则停止计时;
向所述从存储服务器发送第四日志信息,其中,所述第四日志信息至少包含所述本地日志文件中增加的日志条目。
可选的,其中,所述方法还包括:
当确定所述从存储服务器没有成功写入第一日志信息时,接收所述从存储服务器发送的第一序列号,所述第一序列号为所述从存储服务器中最新的日志条目的编号。
可选的,其中,所述方法还包括:
根据所述第一序列号,向所述从存储服务器发送第五日志信息,其中,所述第五日志信息包括所述第一序列号至第二序列号之间连续的所有序列号对应的日志条目,
其中,所述第二序列号为本地日志文件中写入时间最新的日志条目对应的编号。
可选的,其中,所述确定所述从存储服务器是否成功写入第一日志信息包括:
接收来自从存储服务器的回复信息;
当所述回复信息为写入成功的通知,则确定所述从存储服务器成功写入第一日志信息;
当所述回复信息为写入失败的通知,则确定所述从存储服务器写入第一日志信息失败。
根据本发明的第二方面,提供了一种分布式存储系统的数据同步装置,包括:
第一确定模块,用于确定所述从存储服务器是否成功写入第一日志信息,所述第一日志信息包括所述主存储服务器的本地日志文件中最新一条日志条目;
第二确定模块,用于当确定所述从存储服务器已成功写入所述第一日志信息后,确定是否有数据写入;
发送模块,用于如果确定没有数据写入,向所述从存储服务器发送第二日志信息,以通知所述从存储服务器存储第三日志信息,所述第二日志信息不具有日志条目;
其中,所述第三日志信息包含当前已被设定数量的其他从存储服务器持久化的最新日志条目。
可选的,其中,所述第二确定模块,具体用于:
在确定所述从服务器已成功写入所述第一日志信息时,启动计时;
在所述计时时间到达预设时间的期间,监测所述本地日志文件中是否增加有日志条目;
如果确定所述本地日志文件中增加有日志条目,则确定有数据写入;
如果确定所述本地日志文件中未增加有日志条目,则确定没有数据写入。
根据本发明的第三方面,提供了一种分布式存储系统的存储服务器,包括:处理器和存储器;
所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据第一方面中任一项所述的方法。
根据本发明的第四方面,提供了一种计算机存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如第一方面任一项所述的方法。
在本实施例中,首先确定从存储服务器是否成功写入第一日志信息。由于第一日志信息包括主存储服务器的本地日志文件中最新一条日志条目,因此,当确定从存储服务器已成功写入第一日志信息后,说明主存储服务器的本地日志文件中的日志条目,与从存储服务器的本地日志文件中的日志条目同步。此时,确定主存储服务器的本地日志文件中是否有数据写入;如果确定没有数据写入,向从存储服务器发送第二日志信息,以通知从存储服务器存储第三日志信息,第二日志信息不具有日志条目;由于第三日志信息包含当前已被设定数量的其他从存储服务器持久化的最新日志条目,因此,虽然主存储服务器的本地日志文件中的日志条目,与从存储服务器的本地日志文件中的日志条目同步,但是主存储服务器仍能够及时通知从存储服务器当前已被设定数量的其他从存储服务器持久化的最新日志条目。进一步的,从存储服务器将当前已被设定数量的其他从存储服务器持久化的最新日志条目及其之前的日志条目,从本地日志文件中读取并存储至存储引擎中。这样就避免了从存储服务器的存储引擎中的日志条目更新滞后。此时,从存储服务器的存储引擎中的日志条目与主存储服务器的存储引擎中的日志条目同步。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是本发明实施例提供的一种分布式存储系统中存储服务器的硬件配置的框图;
图2是本发明实施例提供的一种分布式存储系统的数据同步方法的流程图;
图3是本发明实施例提供的一种分布式存储系统的数据同步装置的结构示意图;
图4是本发明实施例提供的一种分布式存储系统的存储服务器的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是本发明实施例提供的一种分布式存储系统中存储服务器的硬件配置的框图。其中,该存储服务器可以为分布式存储系统中的主存储服务器,还可以为分布式存储系统中的从存储服务器。
存储服务器1000可以为虚拟机或物理机。存储服务器1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800,等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
尽管在图1中对存储服务器1000均示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,存储服务器1000只涉及存储器1200和处理器1100。
在上述描述中,技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<系统实施例>
本发明实施例提供一种分布式存储系统的数据同步方法,其中分布式存储系统中包括主存储服务器和从存储服务器。对分布式存储服务器的说明如下:
在分布式存储系统中,用户通过客户端向主存储服务器中上传表格数据,主存储服务器根据用户上传的每一个表格数据,生成对应的一条日志条目,并将日志条目写入主存储服务器的本地日志文件中(也可称之为主存储服务器将日志条目持久化)。这也就是说,主存储服务器的本地日志文件由至少一条日志条目组成。
需要说明的是,主存储服务器根据用户上传的每一个表格数据,生成对应的一条日志条目。其中,对应的一条日志条目中包括:上传的表格数据、生成日志条目的编号、以及主存储服务器的任期号。另外,主存储服务器生成的日志条目的编号是严格连续递增的。这也就是说,主存储服务器中的最大编号对应的日志条目为主存储服务器中最新生成的一条日志条目。
主存储服务将日志条目写入至本地日志文件中后,主存储服务器从本地日志文件中按照编号从小到大且连续的方式获取需同步至从存储服务器的一批日志条目,并将获取到的日志条目向从存储服务器转发。
从存储服务器在接收到主存储服务器发送的日志条目时,根据从存储服务器的本地日志文件中的当前最新的一条日志条目(即为最大的编号对应的日志条目)进行匹配。在从存储服务器确定匹配成功时,从存储服务器将主存储服务器转发的日志条目写入本地日志文件中(也可称之为从存储服务器将日志条目持久化),并向主存储服务器发送写入成功的通知。对应的,在从存储服务器确定匹配失败时,从存储服务器不会将存储服务器转发的日志条目写入本地日志文件中,并向主存储服务器发送写入失败的通知。
主存储服务器在接收到写入成功的通知后,当主存储服务器的本地日志文件中还有未转发至从存储服务器中的日志条目时,从本地日志文件中获取下一批需要转发至从存储服务器中的日志条目。并将获取到日志条目转发至从存储服务器中,同时告知从存储服务器的当前已被大多数存储服务器持久化的最新日志条目。
<方法实施例>
本发明实施例提供一种分布式存储系统的数据同步方法,其中,分布式存储系统包括主存储服务器和从存储服务器。如图2所示,该方法由分布式存储系统中的主存储服务器实施,包括如下S2100-S2300:
S2100、确定从存储服务器是否成功写入第一日志信息,第一日志信息包括主存储服务器的日志中最新的一条日志条目。
在本实施例中,第一日志信息为主存储服务器最新向从存储服务器转发的一批日志条目。基于此,第一日志信息包括主存储服务器的本地日志文件中最新的一条日志条目。另外,第一日志条目可以包含一条日志条目,也可以包含多条日志条目。可以理解的是,主存储服务器的本地日志文件中最新的一条日志条目,为主存储服务器的本地日志文件中最大编号对应的日志条目。
在一个实施例中,上述S2100可根据从存储服务器发送的回复信息确定。基于此,上述S2100可通过如下S2110-S2112来实现:
S2110、接收来自从存储服务器的回复信息。
在本实施例中,来自从存储服务器的回复信息,是从存储服务器基于接收到第一日志信息生成的。当从存储服务器成功将第一日志信息成功写入本地日志文件中时,从存储服务器向主存储服务器发送写入成功的通知。
对应的,当从存储服务器未将第一日志信息成功写入本地日志文件志中时,从存储服务器向主存储服务器发送写入失败的通知。
基于上述内容可知,来自从存储服务器的回复信息可以为写入成功的通知,也可以为写入失败的通知。
S2111、当回复信息为写入成功的通知,则确定从存储服务器成功写入第一日志信息。
在本实施例中,当回复信息为写入成功的通知时,说明从存储服务器已经将第一日志信息写入至本地日志文件中,即可以确定从存储服务器成功写入第一日志信息。
S2112、当回复信息为写入失败的通知,则确定从存储服务器写入第一日志信息失败。
在本实施例中,当回复信息为写入失败的通知时,说明从存储服务器未将第一日志信息成功写入至本地日志文件中,即可以确定从存储服务器写入第一日志信息失败。
S2200、当确定从存储服务器已成功写入第一日志信息后,确定是否有数据写入。
在本实施例中,当从存储服务器已经成功写入第一日志信息时,说明主存储服务器已经将本地日志文件中的所有日志条目均已发送至从存储服务器中,且从存储服务器已将主存储服务器的本地日志文件中的所有日志条目,均写入至自身的本地日志文件中。此时,主存储服务器的本地日志文件中的日志条目,与从存储服务器的本地日志文件中的日志条目同步。
在本实施例中,主存储服务器当确定从存储服务器已成功写入第一日志信息后,确定是否有数据写入,以确定主存储服务器的本地日志文件中的日志条目,与从存储服务器的本地日志文件中的日志条目是否由同步状态变为不同步的状态。
S2300、如果确定没有数据写入,向从存储服务器发送第二日志信息,以通知从存储服务器存储第三日志信息至从存储服务器的存储引擎中。
其中,第二日志信息中不具有日志条目。以及第三日志信息包含当前已被设定数量的其他从存储服务器持久化的最新日志条目。
在本实施例中,设定数量的其他存储服务器和主存储服务器,为分布式存储系统中的大多数存储服务器。
在本实施例中,如果确定没有数据写入,则确定主存储服务器的本地日志文件中的日志条目,与从存储服务器的本地日志文件中的日志条目仍然是同步的。此时,主存储服务器向从存储服务器发送一个不具有日志条目的第二日志信息,以通知从存储服务器存储第三日志信息至从存储服务器的存储引擎中。
由于第三日志信息包含当前已被设定数量的其他从存储服务器持久化的最新日志条目,因此,当从存储服务器中得到第三日志信息时,从存储服务器可获知当前已被设定数量的其他从存储服务器持久化的最新日志条目。此时,从存储服务器将本地日志文件中的第三日志信息中包含的日志条目,及其之前的日志条目读出并存储至自身的存储引擎中。
在本实施例中,首先确定从存储服务器是否成功写入第一日志信息。由于第一日志信息包括主存储服务器的本地日志文件中最新一条日志条目,因此,当确定从存储服务器已成功写入第一日志信息后,说明主存储服务器的本地日志文件中的日志条目,与从存储服务器的本地日志文件中的日志条目同步。此时,确定主存储服务器的本地日志文件中是否有数据写入;如果确定没有数据写入,向从存储服务器发送第二日志信息,以通知从存储服务器存储第三日志信息,第二日志信息不具有日志条目;由于第三日志信息包含当前已被设定数量的其他从存储服务器持久化的最新日志条目,因此,虽然主存储服务器的本地日志文件中的日志条目,与从存储服务器的本地日志文件中的日志条目同步,但是主存储服务器仍能够及时通知从存储服务器当前已被设定数量的其他从存储服务器持久化的最新日志条目。进一步的,从存储服务器将当前已被设定数量的其他从存储服务器持久化的最新日志条目及其之前的日志条目,从本地日志文件中读取并存储至存储引擎中。这样就避免了从存储服务器的存储引擎中的日志条目更新滞后。此时,从存储服务器的存储引擎中的日志条目与主存储服务器的存储引擎中的日志条目同步。
在一个实施例中,上述S2200可通过如下S2210-S2113来实现:
S2210、在确定从服务器已成功写入第一日志信息时,启动计时。
在一个实施例中,上述S2210的具体实现可以为,在接收到来自从存储服务器的写入成功的通知时,主存储服务器启动计时。
S2211、在计时时间到达预设时间的期间,监测本地日志文件中是否增加有日志条目。
在一个实施例中,上述的预设时间可以为5min,或者其他。对此本实施例不做限定。
在一个实施例中,在计时时间到达预设时间的期间,主存储服务器可以通过监测本地日志文件的存储量是否(相对于启动计时时刻所对应的本地日志文件的存储量)变大,以监测本地日志文件中是否增加有日志条目。
在另一个实施例中,由于客户端在向主存储服务器上传表格数据时,主存储服务器会将上传的表格数据生成对应的日志条目,并写入至本地日志文件中。因此,在计时时间到达预设时间的期间,主存储服务器可以通过监测有没有接收到客户端上传的表格数据,以监测本地日志文件中是否增加有日志条目。
S2212、如果确定本地日志文件中增加有日志条目,则确定有数据写入。
在一个实施例中,当本地日志文件的存储容量(相对于启动计时时刻所对应的本地日志文件的存储量)变大时,可确定本地日志文件中增加有日志条目,进一步确定有数据写入。
在另一个实施例中,当监测有接收到客户端上传的表格数据时,可确定本地日志文件中增加有日志条目,进一步确定有数据写入。
S2213、如果确定本地日志文件中未增加有日志条目,则确定没有数据写入。
在一个实施例中,当本地日志文件的存储量(相对于启动计时时刻所对应的本地日志文件的存储量)不变时,可确定本地日志文件中未增加有日志条目,进一步确定没有数据写入。
在另一个实施例中,当监测自身没有接收到客户端上传的表格数据时,可确定本地日志文件中未增加有日志条目,进一步确定没有数据写入。
在上述S2210-S2113的基础上,本实施例提供的分布式存储系统的数据同步方法还包括如下S2114和S2115:
S2114、在计时时间到达预设时间之前的任意时刻,如果监测到本地日志文件中增加有日志条目,则停止计时。
在本实施例中,在计时时间到达预设时间之前的任意时刻,如果监测到本地日志文件中增加有日志条目,此时主存储服务器的本地日志文件中的日志条目,与从存储服务器的本地日志文件中的日志条目由同步状态变为不同步的状态。
S2115、向从存储服务器发送第四日志信息,其中,第四日志信息至少包含本地日志文件中增加的日志条目。
在本实施例中,主存储服务器的本地日志文件中的日志条目,与从存储服务器的本地日志文件中的日志条目由同步状态变为不同步的状态,此时需要主存储服务器中将增加的日志条目发送至从存储服务器中,即需要向从存储服务器发送增加的日志条目。此时,主存储服务器将新增加的日志条目中的部分日志条目,或者所有增加的日志条目作为第四日志信息,以发送至从存储服务器。
在一个实施例中,对应于上述S2300,本实施例提供的分布式存储系统的数据同步方法还包括如下S2400:
S2400、当确定从存储服务器没有成功写入第一日志信息时,接收从存储服务器发送的第一序列号,第一序列号为从存储服务器中最新的日志条目的编号。
在本实施例中,从存储服务器接收到第一日志信息后,根据自身的本地日志文件中的第一序列号对第一日志信息进行匹配。若匹配失败时,从存储服务器不会将第一日志信息写入至本地日志文件中,即从存储服务器未将第一日志信息成功写入至本地日志文件中。此时向主存储服务器发送写入失败的通知。当主存储服务器接收到来自从存储服务器的写入失败的通知的回复消息时,确定从存储服务器没有成功写入第一日志信息。
在一个实施例中,主存储服务器在确定从存储服务器没有成功写入第一日志信息时,主存储服务器可指示从存储服务器上报其本地日志文件中新的日志条目的编号,即第一序列号。可以理解的是,从存储服务器中最新的日志条目的编号,即从存储服务器中最新的日志条目的最大编号。
在另一个实施例中,从存储服务器可在向主存储服务器发送写入失败的通知时,主动上报自身的本地日志文件中最新的日志条目的编号,即第一序列号。
在本实施例中,主存储服务器在确定从存储服务器没有成功写入第一日志信息时,接收从存储服务器发送的第一序列号时,可以获知从存储服务器中的本地日志文件中的写入的日志条目的信息。
在上述S2400的基础上,本实施例提供的分布式存储系统的数据同步方法还包括如下S2500:
S2500、根据第一序列号,向从存储服务器发送第五日志信息,其中,第五日志信息包括第一序列号至第二序列号之间连续的所有序列号对应的日志条目,其中,第二序列号为本地日志文件中写入时间最新的日志条目对应的编号。
在本实施例中,第五日志信息包括第一序列号至第二序列号之间连续的所有序列号对应的日志条目中,包括第二序列号对应的日志条目。
在本实施例中,当确定从存储服务器没有成功写入第一日志信息时,主存储服务器向从存储服务器发送第五日志信息。基于此,当从存储服务器接收到第一日志信息后,将第五日志信息中的日志条目写入至本地日志文件中时,主存储服务器的本地日志文件和从存储服务器的本地日志文件中的日志条目同步。这样,相比传统的,当确定从存储服务器没有成功写入第一日志信息时,主存储服务器仅将第一日志信息、以及第一日志信息中编号最小的日志条目的前一日志条目发送至从存储服务器,能够快速的使得主存储服务器的本地日志文件和从存储服务器的本地日志文件中的日志条目同步。
<装置实施例>
如图3所示,本实施例还提供了一种分布式存储系统的数据同步装置30,该装置30包括第一确定模块31、第二确定模块32、发送模块33。其中:
第一确定模块31,用于确定所述从存储服务器是否成功写入第一日志信息,所述第一日志信息包括所述主存储服务器的本地日志文件中最新一条日志条目;
第二确定模块32,用于当确定所述从存储服务器已成功写入所述第一日志信息后,确定是否有数据写入;
发送模块33,用于如果确定没有数据写入,向所述从存储服务器发送第二日志信息,以通知所述从存储服务器存储第三日志信息,所述第二日志信息不具有日志条目;
其中,所述第三日志信息包含当前已被设定数量的其他从存储服务器持久化的最新日志条目。
在一个实施例中,所述第二确定模块32,具体用于:
在确定所述从服务器已成功写入所述第一日志信息时,启动计时;
在所述计时时间到达预设时间的期间,监测所述本地日志文件中是否增加有日志条目;
如果确定所述本地日志文件中增加有日志条目,则确定有数据写入;
如果确定所述本地日志文件中未增加有日志条目,则确定没有数据写入。
在一个实施例中,本实施例提供的分布式存储系统的数据同步装置30还包括第二发送模块。其中,第二发送模块用于:
在所述计时时间到达预设时间之前的任意时刻,如果监测到所述本地日志文件中增加有日志条目,则停止计时;
向所述从存储服务器发送第四日志信息,其中,所述第四日志信息至少包含所述本地日志文件中增加的日志条目。
在一个实施例中,第二确定模块32还用于:当确定所述从存储服务器没有成功写入第一日志信息时,接收所述从存储服务器发送的第一序列号,所述第一序列号为所述从存储服务器中最新的日志条目的编号。
在一个实施例中,本实施例提供的分布式存储系统的数据同步装置30还包括第三发送模块。其中,第三发送模块用于:
根据所述第一序列号,向所述从存储服务器发送第五日志信息,其中,所述第五日志信息包括所述第一序列号至第二序列号之间连续的所有序列号对应的日志条目,
其中,所述第二序列号为本地日志文件中写入时间最新的日志条目对应的编号。
在一个实施例中,第一确定模块31具体用于:
接收来自从存储服务器的回复信息;
当所述回复信息为写入成功的通知,则确定所述从存储服务器成功写入第一日志信息;
当所述回复信息为写入失败的通知,则确定所述从存储服务器写入第一日志信息失败。
<设备实施例>
本发明实施例还提供了一种分布式存储系统的存储服务器40,该存储服务器40包括上述装置实施例中的分布式存储系统的数据同步装置30。
或者,该分布式存储系统的存储服务器包括存储器41和处理器42。其中,存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据上述方法实施例中任一项所述的方法。
<计算机存储介质>
本发明还提供一种计算机存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如上述方法实施例中任一项所述的方法。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (10)
1.一种分布式存储系统的数据同步方法,所述分布式存储系统包括主存储服务器和从存储服务器,所述方法由所述主存储服务器实施,包括:
确定所述从存储服务器是否成功写入第一日志信息,所述第一日志信息包括所述主存储服务器的本地日志文件中最新一条日志条目;
当确定所述从存储服务器已成功写入所述第一日志信息后,确定是否有数据写入;
如果确定没有数据写入,向所述从存储服务器发送第二日志信息,以通知所述从存储服务器存储第三日志信息,所述第二日志信息不具有日志条目;
其中,所述第三日志信息包含当前已被设定数量的其他从存储服务器持久化的最新日志条目。
2.根据权利要求1所述的方法,其中,所述当确定所述从存储服务器已成功写入所述第一日志信息后,确定是否有数据写入,包括:
在确定所述从服务器已成功写入所述第一日志信息时,启动计时;
在所述计时时间到达预设时间的期间,监测所述本地日志文件中是否增加有日志条目;
如果确定所述本地日志文件中增加有日志条目,则确定有数据写入;
如果确定所述本地日志文件中未增加有日志条目,则确定没有数据写入。
3.根据权利要求2所述的方法,其中,所述方法还包括:
在所述计时时间到达预设时间之前的任意时刻,如果监测到所述本地日志文件中增加有日志条目,则停止计时;
向所述从存储服务器发送第四日志信息,其中,所述第四日志信息至少包含所述本地日志文件中增加的日志条目。
4.根据权利要求1所述的方法,其中,所述方法还包括:
当确定所述从存储服务器没有成功写入第一日志信息时,接收所述从存储服务器发送的第一序列号,所述第一序列号为所述从存储服务器中最新的日志条目的编号。
5.根据权利要求4所述的方法,其中,所述方法还包括:
根据所述第一序列号,向所述从存储服务器发送第五日志信息,其中,所述第五日志信息包括所述第一序列号至第二序列号之间连续的所有序列号对应的日志条目,
其中,所述第二序列号为本地日志文件中写入时间最新的日志条目对应的编号。
6.根据权利要求1所述的方法,其中,所述确定所述从存储服务器是否成功写入第一日志信息包括:
接收来自从存储服务器的回复信息;
当所述回复信息为写入成功的通知,则确定所述从存储服务器成功写入第一日志信息;
当所述回复信息为写入失败的通知,则确定所述从存储服务器写入第一日志信息失败。
7.一种分布式存储系统的数据同步装置,包括:
第一确定模块,用于确定所述从存储服务器是否成功写入第一日志信息,所述第一日志信息包括所述主存储服务器的本地日志文件中最新一条日志条目;
第二确定模块,用于当确定所述从存储服务器已成功写入所述第一日志信息后,确定是否有数据写入;
发送模块,用于如果确定没有数据写入,向所述从存储服务器发送第二日志信息,以通知所述从存储服务器存储第三日志信息,所述第二日志信息不具有日志条目;
其中,所述第三日志信息包含当前已被设定数量的其他从存储服务器持久化的最新日志条目。
8.根据权利要求7所述的装置,其中,所述第二确定模块,具体用于:
在确定所述从服务器已成功写入所述第一日志信息时,启动计时;
在所述计时时间到达预设时间的期间,监测所述本地日志文件中是否增加有日志条目;
如果确定所述本地日志文件中增加有日志条目,则确定有数据写入;
如果确定所述本地日志文件中未增加有日志条目,则确定没有数据写入。
9.一种分布式存储系统的存储服务器,包括:处理器和存储器;
所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据权利要求1-6中任一项所述的方法。
10.一种计算机存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如权利要求1-6任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911121853.XA CN112822227B (zh) | 2019-11-15 | 2019-11-15 | 分布式存储系统的数据同步方法、装置、设备及存储介质 |
PCT/CN2020/127873 WO2021093735A1 (zh) | 2019-11-15 | 2020-11-10 | 分布式存储系统的数据同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911121853.XA CN112822227B (zh) | 2019-11-15 | 2019-11-15 | 分布式存储系统的数据同步方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112822227A true CN112822227A (zh) | 2021-05-18 |
CN112822227B CN112822227B (zh) | 2022-02-25 |
Family
ID=75852186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911121853.XA Active CN112822227B (zh) | 2019-11-15 | 2019-11-15 | 分布式存储系统的数据同步方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112822227B (zh) |
WO (1) | WO2021093735A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661339B (zh) * | 2022-05-26 | 2022-08-16 | 浙江所托瑞安科技集团有限公司 | 一种实现本地数据自动提交到远程服务器的方法及装置 |
CN116166477B (zh) * | 2022-11-30 | 2024-02-13 | 郭东升 | 一种不同品牌对象存储双活网关系统及方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912628A (zh) * | 2016-04-07 | 2016-08-31 | 北京奇虎科技有限公司 | 主从数据库的同步方法及装置 |
US20170063986A1 (en) * | 2015-08-31 | 2017-03-02 | Microsoft Technology Licensing, Llc | Target-driven tenant identity synchronization |
CN108616598A (zh) * | 2018-05-10 | 2018-10-02 | 新华三技术有限公司成都分公司 | 数据同步方法、装置和分布式存储系统 |
CN108763578A (zh) * | 2018-06-07 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 一种索引文件更新的方法以及服务器 |
US20190095293A1 (en) * | 2016-07-27 | 2019-03-28 | Tencent Technology (Shenzhen) Company Limited | Data disaster recovery method, device and system |
US20190155705A1 (en) * | 2017-11-20 | 2019-05-23 | Sap Se | Coordinated Replication of Heterogeneous Database Stores |
CN109857523A (zh) * | 2017-11-30 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 一种用于实现数据库高可用性的方法及装置 |
CN110119329A (zh) * | 2019-02-27 | 2019-08-13 | 咪咕音乐有限公司 | 数据复制容灾方法及容灾系统 |
CN110213317A (zh) * | 2018-07-18 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 消息存储的方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648994B (zh) * | 2017-01-04 | 2020-09-11 | 华为技术有限公司 | 一种备份操作日志的方法,设备和系统 |
-
2019
- 2019-11-15 CN CN201911121853.XA patent/CN112822227B/zh active Active
-
2020
- 2020-11-10 WO PCT/CN2020/127873 patent/WO2021093735A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170063986A1 (en) * | 2015-08-31 | 2017-03-02 | Microsoft Technology Licensing, Llc | Target-driven tenant identity synchronization |
CN105912628A (zh) * | 2016-04-07 | 2016-08-31 | 北京奇虎科技有限公司 | 主从数据库的同步方法及装置 |
US20190095293A1 (en) * | 2016-07-27 | 2019-03-28 | Tencent Technology (Shenzhen) Company Limited | Data disaster recovery method, device and system |
US20190155705A1 (en) * | 2017-11-20 | 2019-05-23 | Sap Se | Coordinated Replication of Heterogeneous Database Stores |
CN109857523A (zh) * | 2017-11-30 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 一种用于实现数据库高可用性的方法及装置 |
CN108616598A (zh) * | 2018-05-10 | 2018-10-02 | 新华三技术有限公司成都分公司 | 数据同步方法、装置和分布式存储系统 |
CN108763578A (zh) * | 2018-06-07 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 一种索引文件更新的方法以及服务器 |
CN110213317A (zh) * | 2018-07-18 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 消息存储的方法、装置及存储介质 |
CN110119329A (zh) * | 2019-02-27 | 2019-08-13 | 咪咕音乐有限公司 | 数据复制容灾方法及容灾系统 |
Non-Patent Citations (2)
Title |
---|
ZHENYU LU等: "《Optimization of Heterogeneous Databases Data Synchronization in WAN by Virtual Log Compression》", 《2010 SECOND INTERNATIONAL CONFERENCE ON FUTURE NETWORKS》 * |
杜珍星: "《面向海量遥感数据的数据库同步技术研究》", 《中国优秀博硕士学位论文全文数据库(硕士)——信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021093735A1 (zh) | 2021-05-20 |
CN112822227B (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10820272B2 (en) | Connection method and connection device for Bluetooth device | |
CN112822227B (zh) | 分布式存储系统的数据同步方法、装置、设备及存储介质 | |
US20200344295A1 (en) | Cloud storage and synchronization of messages | |
US20150024794A1 (en) | Push notification via file sharing service synchronization | |
CN113259161B (zh) | 应用管理方法及装置、电子设备和存储介质 | |
CN111708557B (zh) | 更新配置文件的方法、设备及存储介质 | |
CN108829627B (zh) | 虚拟现实设备间的同步控制方法及系统 | |
CN110825411B (zh) | Tws耳机系统的升级方法、设备及计算机可读存储介质 | |
EP2759892B1 (en) | Synchronization of alarms between devices | |
CN107360633B (zh) | 虚拟现实系统的配对连接方法、设备及虚拟现实系统 | |
CN107547632B (zh) | 缓存数据同步方法、设备、服务中心及多中心服务系统 | |
CN105959078B (zh) | 一种集群时间同步方法、集群及时间同步系统 | |
US20150264184A1 (en) | Conference terminal control system, conference terminal control device, and conference terminal control method | |
US20130262601A1 (en) | Method and device for sending and receiving emails | |
CN112099836A (zh) | 更新配置文件方法、配置服务器、版本控制服务器及系统 | |
CN114816225A (zh) | 存储集群的管理方法、装置、电子设备及存储介质 | |
CN111866831A (zh) | 一种连接控制方法、装置、终端设备及系统 | |
CN113346974B (zh) | 用于时钟同步的方法、设备、通信系统和存储介质 | |
CN111352959B (zh) | 数据同步补救、存储方法及集群装置 | |
CN112087506B (zh) | 一种集群节点管理方法、装置及计算机存储介质 | |
CN107346217B (zh) | 一种云硬盘管理方法、云计算管理平台及虚拟化平台 | |
CN112751693B (zh) | 分布式存储系统的数据处理方法、装置及电子设备 | |
CN112995254B (zh) | 传输心跳信息的方法、设备、系统、装置及组件 | |
CN107087021B (zh) | 主从服务器确定方法及装置 | |
CN111479319B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |