CN105262831B - 一种存储系统间同步数据的方法、装置及同步系统 - Google Patents
一种存储系统间同步数据的方法、装置及同步系统 Download PDFInfo
- Publication number
- CN105262831B CN105262831B CN201510727860.XA CN201510727860A CN105262831B CN 105262831 B CN105262831 B CN 105262831B CN 201510727860 A CN201510727860 A CN 201510727860A CN 105262831 B CN105262831 B CN 105262831B
- Authority
- CN
- China
- Prior art keywords
- data
- synchronized
- sync agent
- agent server
- storage system
- 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.)
- Active
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
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种存储系统间同步数据的方法、装置及同步系统,每个存储系统连接一个与其类型相对应的同步代理服务器,该方法包括:源存储系统根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预设的预写入日志队列中;每个同步代理服务器定时从预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据,将获得的待同步数据发送至本同步代理服务器连接的目标存储系统;每个目标存储系统根据同步数据的数据标识信息及该待同步数据发生变化的字段和内容进行数据同步。应用本发明实施例,能够实现大粒度数据实时可靠地同步到相同或不同类型的存储系统中。
Description
技术领域
本发明涉及同步数据领域,特别涉及一种存储系统间同步数据的方法、装置及同步系统。
背景技术
多存储系统的基本特征为由一个或多个数据写入端输入数据到存储系统中,必要时需要对数据进行预处理,然后数据被分发并保存到多个存储系统中。这些存储系统可以分布在多个地区,通过互联网或者内部专线来通讯。数据消费者可以选择合适的存储系统去读取数据。
目前,存储系统间同步数据的方式存在两种情况:
第一种,同类型存储系统间数据的同步。同类型存储系统间数据的同步可以通过存储系统提供的跨系统数据同步功能完成。然而,目前的数据同步多存在于异构系统间,同类型存储系统间数据的同步应用范围狭窄。
第二种,异构存储系统间数据的同步。目前,为了实现异构存储系统间的数据同步,在异构存储系统间选举出一个存储系统作为主存储系统,当其他存储系统存在更新数据时,将该更新数据发送到主存储系统,通过主存储系统完成各存储系统间的数据同步。在该异构存储系统中,当进行数据同步时,主存储系统获取的是更新后的每条数据,无论该条数据发生变化的数据量是多少,在进行更新时都对该条数据全量更新。该方法在更新频率较低、每条数据包含的数据量较小的场景可以实用,但在每条数据包含的数据量较大,即数据粒度大,且数据更新频率较高的场景下,将会占用大量带宽,影响数据同步的实时性。
发明内容
本发明实施例的目的在于提供一种存储系统间同步数据的方法、装置及同步系统,以实现大粒度数据实时可靠地同步到相同或不同类型的存储系统中的目的。
为达到上述目的,本发明实施例公开了一种存储系统间同步数据的方法,每个存储系统连接一个与其类型相对应的同步代理服务器;所述方法包括步骤:
源存储系统获得发生变化的数据的字段和内容;确定一个或多个进行数据同步的目标存储系统,获得各个目标存储系统连接的各个同步代理服务器的同步代理服务器标识信息;根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预设的预写入日志队列中;所述预写入日志队列中存储有每个存储系统发送的待同步数据;所述每条待同步数据中包含该条待同步数据的同步代理服务器标识信息、数据标识信息及该条待同步数据发生变化的字段和内容;
每个同步代理服务器定时从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据;将获得的待同步数据发送至本同步代理服务器连接的目标存储系统;
每个目标存储系统根据所述同步数据的数据标识信息及该待同步数据发生变化的字段和内容进行数据同步。
较佳的,所述待同步数据还包含分别与各个同步代理服务器对应的多个同步状态标识信息;
所述预写入日志队列收到每条待同步数据时,将该条待同步数据的所有同步状态标识信息设置为待同步;
在所述同步代理服务器连接的所述目标存储系统将所述待同步数据同步成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为同步成功;
在所述同步代理服务器连接的所述目标存储系统将所述待同步数据同步未成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为重试;
所述每个同步代理服务器定时从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据,为所述每个同步代理服务器定时从所述预写入日志队列中获取与本同步代理服务器对应的同步状态标识信息为待同步和重试的所述待同步数据。
较佳的,所述待同步数据还包含分别与各个同步代理服务器对应的多个顺序状态信息;
所述每个同步代理服务器定时从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据,为:
所述每个同步代理服务器定时获取所述待同步数据的顺序状态信息,确定同步代理服务器的执行顺序;根据所述执行顺序,从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据。
较佳的,该方法还包括:
记录重试次数,若重试次数达到预设值,则与该同步代理服务器对应的同步状态标识信息设置为同步失败。
较佳的,该方法还包括:
预先设置的记录清理代理服务器定时读取所述预写入队列中保存的待同步数据,将同步状态标识信息都为同步成功和/或同步失败的所有待同步数据删除。
为达到上述目的,本发明实施例还公开了一种存储系统间同步数据的装置,其特征在于,每个存储系统连接一个与其类型相对应的同步代理服务器;所述装置包括:
待同步数据生成模块,设置于源存储系统中,用于获得发生变化的数据的字段和内容;确定一个或多个进行数据同步的目标存储系统,获得各个目标存储系统连接的各个同步代理服务器的同步代理服务器标识信息;根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预设的预写入日志队列中;所述预写入日志队列中存储有每个存储系统发送的待同步数据;所述每条待同步数据中包含该条待同步数据的同步代理服务器标识信息、数据标识信息及该条待同步数据发生变化的字段和内容;
待同步数据获得模块,设置于每个同步代理服务器中,用于定时从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据;将获得的待同步数据发送至本同步代理服务器连接的目标存储系统;
数据同步模块,设置于每个目标存储系统中,用于根据所述同步数据的数据标识信息及该待同步数据发生变化的字段和内容进行数据同步。
较佳的,所述待同步数据生成模块包括:获得子模块、确定子模块和待同步数据生成子模块;
所述获得子模块,用于获得发生变化的数据的字段和内容;
所述确定子模块,用于确定一个或多个进行数据同步的目标存储系统,获得各个目标存储系统连接的各个同步代理服务器的同步代理服务器标识信息;
所述待同步数据生成子模块,用于根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预设的预写入日志队列中;所述预设的预写入日志队列设置在预写入日志队列服务器中;
所述待同步数据还包含分别与各个同步代理服务器对应的多个同步状态标识信息;
所述预写入日志队列包括:第一设置子模块、第二设置子模块和第三设置子模块;
所述第一设置子模块,用于所述预写入日志队列收到每条待同步数据时,将该条待同步数据的所有同步状态标识信息设置为待同步;
所述第二设置子模块,用于在所述同步代理服务器连接的所述目标存储系统将所述待同步数据同步成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为同步成功;
所述第三设置子模块,用于在所述同步代理服务器连接的所述目标存储系统将所述待同步数据同步未成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为重试;
所述待同步数据获得模块,包括:待同步数据获得子模块和待同步数据发送子模块;
所述待同步数据获得子模块,用于所述每个同步代理服务器定时从所述预写入日志队列中获取与本同步代理服务器对应的同步状态标识信息为待同步和重试的所述待同步数据;
所述待同步数据发送子模块,用于将获得的待同步数据发送至本同步代理服务器连接的目标存储系统。
较佳的,所述待同步数据还包含分别与各个同步代理服务器对应的多个顺序状态信息;
所述待同步数据获得子模块,具体用于定时获取所述待同步数据的顺序状态信息,确定同步代理服务器执行顺序;根据所述执行顺序,从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据。
较佳的,所述预写入日志队列还包括:
重试次数记录子模块,用于记录重试次数,若重试次数达到预设值,则与该同步代理服务器对应的同步状态标识信息设置为同步失败。
较佳的,该装置还包括:记录清理模块,设置于记录清理代理服务器中,用于定时读取所述预写入队列中保存的待同步数据,将同步状态标识信息都为同步成功和/或同步失败的所有待同步数据删除。
为达到上述目的,本发明实施例还公开了一种存储系统间同步数据的同步系统,其特征在于,所述同步系统包含预写入日志队列服务器以及多个同步代理服务器;
每个存储系统连接一个与其类型相对应的同步代理服务器;
源存储系统获得发生变化的数据的字段和内容;确定一个或多个进行数据同步的目标存储系统,获得每个目标存储系统连接的各个同步代理服务器的同步代理服务器标识信息;根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预写入日志队列服务器中;
所述预写入日志队列服务器中存储有每个存储系统发送的待同步数据;所述每条待同步数据中包含该条待同步数据的同步代理服务器标识信息、数据标识信息及该条待同步数据发生变化的字段和内容;
每个同步代理服务器定时从所述预写入日志队列中获取具有本同步代理服务器标识的待同步数据;将获得的待同步数据发送至本同步代理服务器连接的目标存储系统;
每个目标存储系统根据所述同步数据的数据标识信息及该待同步数据发生变化的字段和内容进行数据同步。
较佳的,该同步系统还包括:记录清理代理服务器,与所述预写入日志队列服务器相连;所述记录清理代理服务器,用于将预写入日志队列服务器中已经同步至所有目标存储系统的待同步数据删除。
可见,本发明实施例中,预写入日志队列服务器以及多个同步代理服务器,每个存储系统连接一个与其类型相对应的同步代理服务器,源存储系统将发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息发送给预写入日志队列中,同步代理服务器只需更新同步发生变化的字段的内容,而无需将发送变化的整条数据进行全量更新,这样能够实现大粒度数据实时可靠地同步到相同或不同类型的存储系统中的。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种存储系统间同步数据的方法的流程示意图;
图2为本发明实施例提供的一种存储系统间同步数据的装置的结构示意图;
图3为本发明实施例提供的一种存储系统间同步数据的同步系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种存储系统间同步数据的方法、装置及同步系统,每个存储系统连接一个与其类型相对应的同步代理服务器,该方案中,源存储系统根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预设的预写入日志队列中;每个同步代理服务器定时从预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据,将获得的待同步数据发送至本同步代理服务器连接的目标存储系统;每个目标存储系统根据同步数据的数据标识信息及该待同步数据发生变化的字段和内容进行数据同步。
下面通过具体实施例,对本发明进行详细说明。
参考图1,图1为本发明实施例提供的一种存储系统间同步数据的方法的流程示意图,该方法可以包括如下步骤:
S101:源存储系统获得发生变化的数据的字段和内容;
与现有技术不同,本发明实施例仅需要获得发生变化的数据的字段和内容。假设:一条数据信息为:“姓名:小明,年龄:12,生日:12月10,班级:1班”,若该条数据的年龄变为13,则只需要获得“年龄”字段和该字段的内容“13”。
S102:源存储系统确定一个或多个进行数据同步的目标存储系统,获得各个目标存储系统连接的各个同步代理服务器的同步代理服务器标识信息;
S103:源存储系统根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预设的预写入日志队列中;
其中,预写入日志队列可以持久化保存在一个独立的存储系统服务器中。如果该服务器发生故障,可以在该服务器重新启动时,先加载己存储的待同步数据,并优先处理。
S104:每个同步代理服务器定时从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据;
实际应用中,待同步数据还可以包含分别与各个同步代理服务器对应的多个同步状态标识信息。
其中,预写入日志队列收到每条待同步数据时,将该条待同步数据的所有同步状态标识信息设置为待同步。
在同步代理服务器连接的目标存储系统将待同步数据同步成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为同步成功。
在同步代理服务器连接的目标存储系统将待同步数据同步未成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为重试。
此时,每个同步代理服务器定时从预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据,可以为每个同步代理服务器定时从预写入日志队列中获取与本同步代理服务器对应的同步状态标识信息为待同步和重试的待同步数据。
另外,在生成待同步数据发送至预设的预写入日志队列中时,可以对待同步数据进行有效性和一致性校验,删除无效和一致性差的数据,避免无效和有问题的数据进入预写入日志队列中。其中,数据有效性和一致性校验可以采用现有技术常用的校验方式进行校验,这里不再赘述。
实际应用中,一些待同步数据必须先同步到某些目标存储系统后,才能同步到其他目标存储系统,此时,待同步数据还可以包含分别与各个同步代理服务器对应的多个顺序状态信息。
这种情况下,每个同步代理服务器定时从预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据,可以为:
每个同步代理服务器定时获取待同步数据的顺序状态信息,确定同步代理服务器的执行顺序;根据执行顺序,从预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据。
这样可以协调同步代理服务器的执行顺序,在存在必须先同步到某些目标存储系统后才能同步到其他目标存储系统的待同步数据时,可以施行串行同步,在没有执行顺序的要求时,可以将顺序状态信息设置为相同的状态,以施行并行同步,提升同步的速度。
实际应用中,待同步数据还可以包含更新时间,每个同步代理服务器可以按照更新时间的先后确定待同步数据的同步顺序,根据待同步数据的同步顺序从预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据。
S105:每个同步代理服务器将获得的待同步数据发送至本同步代理服务器连接的目标存储系统;
现有技术中,在存储网络系统不稳定导致的存储系统宕机或维护需要需暂停存储网络系统的场景中,都会导致某存储系统从存储网络中断开和重新加入,这样会严重影响其他存储系统的数据同步。在本发明实施例中,每个同步代理服务器都可以独立运行,这样就可以使某个存储系统的变更影响不到其它存储系统的数据同步。
S106:每个目标存储系统根据所述同步数据的数据标识信息及该待同步数据发生变化的字段和内容进行数据同步。
实际应用中,该方法还可以包括:
记录重试次数,若重试次数达到预设值,则与该同步代理服务器对应的同步状态标识信息设置为同步失败。
此时,预写入日志队列可以根据重试次数对待同步数据进行排序,重试次数越多的待同步数据的位置越靠后,这样同步代理服务器在将获得的待同步数据发送至本同步代理服务器连接的目标存储系统时,可以先同步重试次数的少的待同步数据,避免有问题的同步数据影响正常的数据处理。
另外,在某些情况下,存储系统的工作压力过大,也会出现待同步数据同步失败的现象,此时,如果频繁重试,会使存储系统崩溃。为了避免这种状况的出现,令每次重试之间的时间间隔不断增多,例如,1秒后重试,如果失败,1*2秒后再次重试,如果还失败,则2*2秒后再次重试,以此类推,可以有效减少无意义的重试。
这种情况下,该方法还可以包括:
预先设置的记录清理代理服务器定时读取所述预写入队列中保存的待同步数据,将同步状态标识信息都为同步成功和/或同步失败的所有待同步数据删除。
这样,如果一条待同步数据的所有同步状态标识信息都为同步成功和/或同步失败,则将这条待同步数据删除,以确保预写入队列服务器不会由于待同步数据记录积压导致存储空间被耗光。
应用图1所示实施例,预写入日志队列服务器以及多个同步代理服务器,每个存储系统连接一个与其类型相对应的同步代理服务器,源存储系统将发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息发送给预写入日志队列中,同步代理服务器只需更新同步发生变化的字段的内容,而无需将发送变化的整条数据进行全量更新,这样能够实现大粒度数据实时可靠地同步到相同或不同类型的存储系统中的。
参考图2,图2为本发明实施例提供的一种存储系统间同步数据的装置的结构示意图,每个存储系统连接一个与其类型相对应的同步代理服务器,该装置可以包括:待同步数据生成模块200、预写入日志队列210、待同步数据获得模块220和数据同步模块230。
其中,待同步数据生成模块200,设置于源存储系统中,用于获得发生变化的数据的字段和内容;确定一个或多个进行数据同步的目标存储系统,获得各个目标存储系统连接的各个同步代理服务器的同步代理服务器标识信息;根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预设的预写入日志队列中。
这里,预写入日志队列210中存储有每个存储系统发送的待同步数据,其中,每条待同步数据中包含该条待同步数据的同步代理服务器标识信息、数据标识信息及该条待同步数据发生变化的字段和内容。
待同步数据获得模块220,设置于每个同步代理服务器中,用于定时从预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据;将获得的待同步数据发送至本同步代理服务器连接的目标存储系统。
数据同步模块230,设置于每个目标存储系统中,用于根据同步数据的数据标识信息及该待同步数据发生变化的字段和内容进行数据同步。
实际应用中,待同步数据生成模块200可以包括:获得子模块201、确定子模块202和待同步数据生成子模块203。
其中,获得子模块201,用于获得发生变化的数据的字段和内容。
确定子模块202,用于确定一个或多个进行数据同步的目标存储系统,获得各个目标存储系统连接的各个同步代理服务器的同步代理服务器标识信息。
待同步数据生成子模块203,用于根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预设的预写入日志队列中;预设的预写入日志队列设置在预写入日志队列服务器中。
实际应用中,待同步数据还可以包含分别与各个同步代理服务器对应的多个同步状态标识信息。
这种情况下,预写入日志队列210可以包括:第一设置子模块、第二设置子模块和第三设置子模块。(图2中未示出)
其中,第一设置子模块,用于预写入日志队列收到每条待同步数据时,将该条待同步数据的所有同步状态标识信息设置为待同步。
第二设置子模块,用于在同步代理服务器连接的目标存储系统将待同步数据同步成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为同步成功。
第三设置子模块,用于在同步代理服务器连接的目标存储系统将待同步数据同步未成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为重试。
另外,待同步数据获得模块220,可以包括:待同步数据获得子模块221和待同步数据发送子模块222。
其中,待同步数据获得子模块221,用于每个同步代理服务器定时从预写入日志队列中获取与本同步代理服务器对应的同步状态标识信息为待同步和重试的待同步数据。
待同步数据发送子模块222,用于将获得的待同步数据发送至本同步代理服务器连接的目标存储系统。
实际应用中,待同步数据还可以包含分别与各个同步代理服务器对应的多个顺序状态信息。
这种情况下,待同步数据获得子模块221,具体用于定时每个同步代理服务器获取待同步数据的顺序状态信息,确定同步代理服务器的执行顺序;根据执行顺序,从预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据。
另外,预写入日志队列210还可以包括:重试次数记录子模块。(图2中未示出)
其中,重试次数记录子模块,用于记录重试次数,若重试次数达到预设值,则与该同步代理服务器对应的同步状态标识信息设置为同步失败。
实际应用中,该装置还可以包括:记录清理模块。(图2中未示出)
其中,记录清理模块,设置于记录清理代理服务器中,用于定时读取预写入队列中保存的待同步数据,将同步状态标识信息都为同步成功和/或同步失败的所有待同步数据删除。
应用图2所示实施例,预写入日志队列服务器以及多个同步代理服务器,每个存储系统连接一个与其类型相对应的同步代理服务器,源存储系统将发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息发送给预写入日志队列中,同步代理服务器只需更新同步发生变化的字段的内容,而无需将发送变化的整条数据进行全量更新,这样能够实现大粒度数据实时可靠地同步到相同或不同类型的存储系统中的。
参考图3,图3为本发明实施例提供的一种存储系统间同步数据的同步系统的结构示意图,该同步系统可以包含预写入日志队列服务器310以及多个同步代理服务器320。
其中,每个存储系统330连接一个与其类型相对应的同步代理服务器320。
源存储系统300获得发生变化的数据的字段和内容;确定一个或多个进行数据同步的目标存储系统,获得每个目标存储系统连接的各个同步代理服务器320的同步代理服务器标识信息;根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预写入日志队列服务器310中。
预写入日志队列服务器310中存储有每个存储系统发送的待同步数据;每条待同步数据中包含该条待同步数据的同步代理服务器标识信息、数据标识信息及该条待同步数据发生变化的字段和内容。
每个同步代理服务器320定时从预写入日志队列服务器310中获取具有本同步代理服务器320标识的待同步数据;将获得的待同步数据发送至本同步代理服务器320连接的目标存储系统330。
每个目标存储系统330根据同步数据的数据标识信息及该待同步数据发生变化的字段和内容进行数据同步。
实际应用中,该同步系统还可以包括:记录清理代理服务器。(图3中未示出)
其中,记录清理代理服务器,与预写入日志队列服务器310相连;用于将预写入日志队列服务器310中已经同步至所有目标存储系统的待同步数据删除。
需要说明的是,图3中所述的源存储系统300和目标存储系统330,是为了清楚描述同步的过程而命名的,实际应用中,每个存储系统都可能是源存储系统300,也都可能是目标存储系统330。
应用图3所示实施例,预写入日志队列服务器以及多个同步代理服务器,每个存储系统连接一个与其类型相对应的同步代理服务器,源存储系统将发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息发送给预写入日志队列中,同步代理服务器只需更新同步发生变化的字段的内容,而无需将发送变化的整条数据进行全量更新,这样能够实现大粒度数据实时可靠地同步到相同或不同类型的存储系统中的。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种存储系统间同步数据的方法,其特征在于,每个存储系统连接一个与其类型相对应的同步代理服务器;所述方法包括步骤:
源存储系统获得发生变化的数据的字段和内容;确定一个或多个进行数据同步的目标存储系统,获得各个目标存储系统连接的各个同步代理服务器的同步代理服务器标识信息;根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预设的预写入日志队列中,并对该待同步数据进行有效性和一致性校验;所述预写入日志队列中存储有每个存储系统发送的待同步数据;所述每条待同步数据中包含该条待同步数据的同步代理服务器标识信息、数据标识信息及该条待同步数据发生变化的字段和内容;
每个同步代理服务器定时从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据;将获得的待同步数据发送至本同步代理服务器连接的目标存储系统;
每个目标存储系统根据所述同步数据的数据标识信息及该待同步数据发生变化的字段和内容进行数据同步。
2.根据权利要求1所述的方法,其特征在于:所述待同步数据还包含分别与各个同步代理服务器对应的多个同步状态标识信息;
所述预写入日志队列收到每条待同步数据时,将该条待同步数据的所有同步状态标识信息设置为待同步;
在所述同步代理服务器连接的所述目标存储系统将所述待同步数据同步成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为同步成功;
在所述同步代理服务器连接的所述目标存储系统将所述待同步数据同步未成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为重试;
所述每个同步代理服务器定时从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据,为所述每个同步代理服务器定时从所述预写入日志队列中获取与本同步代理服务器对应的同步状态标识信息为待同步和重试的所述待同步数据。
3.根据权利要求2所述的方法,其特征在于:所述待同步数据还包含分别与各个同步代理服务器对应的多个顺序状态信息;
所述每个同步代理服务器定时从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据,为:
所述每个同步代理服务器定时获取所述待同步数据的顺序状态信息,确定同步代理服务器的执行顺序;根据所述执行顺序,从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据。
4.根据权利要求2或3所述的方法,其特征在于,该方法还包括:
记录重试次数,若重试次数达到预设值,则与该同步代理服务器对应的同步状态标识信息设置为同步失败。
5.根据权利要求4所述的方法,其特征在于,该方法还包括:
预先设置的记录清理代理服务器定时读取所述预写入队列中保存的待同步数据,将同步状态标识信息都为同步成功和/或同步失败的所有待同步数据删除。
6.一种存储系统间同步数据的装置,其特征在于,每个存储系统连接一个与其类型相对应的同步代理服务器;所述装置包括:
待同步数据生成模块,设置于源存储系统中,用于获得发生变化的数据的字段和内容;确定一个或多个进行数据同步的目标存储系统,获得各个目标存储系统连接的各个同步代理服务器的同步代理服务器标识信息;根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预设的预写入日志队列中,并对该待同步数据进行有效性和一致性校验;所述预写入日志队列中存储有每个存储系统发送的待同步数据;所述每条待同步数据中包含该条待同步数据的同步代理服务器标识信息、数据标识信息及该条待同步数据发生变化的字段和内容;
待同步数据获得模块,设置于每个同步代理服务器中,用于定时从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据;将获得的待同步数据发送至本同步代理服务器连接的目标存储系统;
数据同步模块,设置于每个目标存储系统中,用于根据所述同步数据的数据标识信息及该待同步数据发生变化的字段和内容进行数据同步。
7.根据权利要求6所述的装置,其特征在于,所述待同步数据生成模块包括:获得子模块、确定子模块和待同步数据生成子模块;
所述获得子模块,用于获得发生变化的数据的字段和内容;
所述确定子模块,用于确定一个或多个进行数据同步的目标存储系统,获得各个目标存储系统连接的各个同步代理服务器的同步代理服务器标识信息;
所述待同步数据生成子模块,用于根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预设的预写入日志队列中;所述预设的预写入日志队列设置在预写入日志队列服务器中;
所述待同步数据还包含分别与各个同步代理服务器对应的多个同步状态标识信息;
所述预写入日志队列包括:第一设置子模块、第二设置子模块和第三设置子模块;
所述第一设置子模块,用于所述预写入日志队列收到每条待同步数据时,将该条待同步数据的所有同步状态标识信息设置为待同步;
所述第二设置子模块,用于在所述同步代理服务器连接的所述目标存储系统将所述待同步数据同步成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为同步成功;
所述第三设置子模块,用于在所述同步代理服务器连接的所述目标存储系统将所述待同步数据同步未成功时,将该条待同步数据的与该同步代理服务器对应的同步状态标识信息设置为重试;
所述待同步数据获得模块,包括:待同步数据获得子模块和待同步数据发送子模块;
所述待同步数据获得子模块,用于所述每个同步代理服务器定时从所述预写入日志队列中获取与本同步代理服务器对应的同步状态标识信息为待同步和重试的所述待同步数据;
所述待同步数据发送子模块,用于将获得的待同步数据发送至本同步代理服务器连接的目标存储系统。
8.根据权利要求7所述的装置,其特征在于:所述待同步数据还包含分别与各个同步代理服务器对应的多个顺序状态信息;
所述待同步数据获得子模块,具体用于定时获取所述待同步数据的顺序状态信息,确定同步代理服务器执行顺序;根据所述执行顺序,从所述预写入日志队列中获取具有本同步代理服务器标识信息的待同步数据。
9.根据权利要求7或8所述的装置,其特征在于,所述预写入日志队列还包括:
重试次数记录子模块,用于记录重试次数,若重试次数达到预设值,则与该同步代理服务器对应的同步状态标识信息设置为同步失败。
10.根据权利要求9所述的装置,其特征在于,该装置还包括:记录清理模块,设置于记录清理代理服务器中,用于定时读取所述预写入队列中保存的待同步数据,将同步状态标识信息都为同步成功和/或同步失败的所有待同步数据删除。
11.一种存储系统间同步数据的同步系统,其特征在于,所述同步系统包含预写入日志队列服务器以及多个同步代理服务器;
每个存储系统连接一个与其类型相对应的同步代理服务器;
源存储系统获得发生变化的数据的字段和内容;确定一个或多个进行数据同步的目标存储系统,获得每个目标存储系统连接的各个同步代理服务器的同步代理服务器标识信息;根据发生变化的数据的字段和内容、同步代理服务器标识信息和数据标识信息,生成待同步数据发送至预写入日志队列服务器中,并对该待同步数据进行有效性和一致性校验;
所述预写入日志队列服务器中存储有每个存储系统发送的待同步数据;所述每条待同步数据中包含该条待同步数据的同步代理服务器标识信息、数据标识信息及该条待同步数据发生变化的字段和内容;
每个同步代理服务器定时从所述预写入日志队列中获取具有本同步代理服务器标识的待同步数据;将获得的待同步数据发送至本同步代理服务器连接的目标存储系统;
每个目标存储系统根据所述同步数据的数据标识信息及该待同步数据发生变化的字段和内容进行数据同步。
12.根据权权利要求11所述的同步系统,其特征在于,该同步系统还包括:记录清理代理服务器,与所述预写入日志队列服务器相连;所述记录清理代理服务器,用于将预写入日志队列服务器中已经同步至所有目标存储系统的待同步数据删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510727860.XA CN105262831B (zh) | 2015-10-30 | 2015-10-30 | 一种存储系统间同步数据的方法、装置及同步系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510727860.XA CN105262831B (zh) | 2015-10-30 | 2015-10-30 | 一种存储系统间同步数据的方法、装置及同步系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105262831A CN105262831A (zh) | 2016-01-20 |
CN105262831B true CN105262831B (zh) | 2019-02-22 |
Family
ID=55102335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510727860.XA Active CN105262831B (zh) | 2015-10-30 | 2015-10-30 | 一种存储系统间同步数据的方法、装置及同步系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105262831B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787129B (zh) * | 2016-03-29 | 2020-06-23 | 联想(北京)有限公司 | 一种数据存储方法和电子设备 |
CN107544999B (zh) * | 2016-06-28 | 2022-10-21 | 百度在线网络技术(北京)有限公司 | 用于检索系统的同步装置及同步方法、检索系统及方法 |
CN106294769B (zh) * | 2016-08-11 | 2019-08-27 | 珠海格力电器股份有限公司 | 同步工程数据的方法、系统和装置 |
CN106339262A (zh) * | 2016-08-26 | 2017-01-18 | 南京车易淘网络信息技术有限公司 | 一种并行计算中的数据同步方法 |
CN106453553A (zh) * | 2016-10-11 | 2017-02-22 | 深圳市百盛佳信息咨询有限公司 | 一种dms系统数据接口方法及系统 |
CN106657314B (zh) * | 2016-12-14 | 2020-10-27 | 北京奇艺世纪科技有限公司 | 跨数据中心数据同步系统及方法 |
CN108345617B (zh) * | 2017-01-24 | 2022-05-06 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置以及电子设备 |
CN107357848B (zh) * | 2017-06-27 | 2019-11-26 | 中国电子科技集团公司第二十八研究所 | 基于驱动封装的数据库同步方法 |
CN109672712A (zh) * | 2017-10-17 | 2019-04-23 | 中兴通讯股份有限公司 | 数据同步方法、装置、超级控制器、域控制器及存储介质 |
CN110019514B (zh) * | 2017-11-07 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 数据同步方法、装置以及电子设备 |
CN108959367A (zh) * | 2018-05-22 | 2018-12-07 | 泰康保险集团股份有限公司 | 房间基础数据的管理方法、系统、平台、介质和电子设备 |
CN110213317B (zh) * | 2018-07-18 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 消息存储的方法、装置及存储介质 |
CN109800259B (zh) * | 2018-12-11 | 2021-08-10 | 深圳市金证科技股份有限公司 | 数据采集方法、装置及终端设备 |
CN109783573B (zh) * | 2018-12-18 | 2021-10-15 | 北京华夏电通科技股份有限公司 | 多路推送的数据同步方法及终端 |
CN110502574B (zh) * | 2019-07-22 | 2023-04-11 | 平安科技(深圳)有限公司 | 跨系统的信息同步方法、用户设备、存储介质及装置 |
CN113127222B (zh) * | 2019-12-31 | 2024-04-05 | 浙江宇视科技有限公司 | 数据发送方法、装置、设备和介质 |
CN115210694A (zh) * | 2020-03-06 | 2022-10-18 | 深圳市欢太科技有限公司 | 数据传输方法及装置 |
CN112667447B (zh) * | 2020-12-24 | 2023-10-27 | 北京奇艺世纪科技有限公司 | 一种数据修复方法及装置 |
CN113242313B (zh) * | 2021-05-28 | 2023-01-20 | 北京达佳互联信息技术有限公司 | 数据同步方法、系统、装置、服务器及存储介质 |
CN113342764A (zh) * | 2021-06-12 | 2021-09-03 | 四川虹美智能科技有限公司 | 不同云端服务器之间的数据同步方法及装置 |
CN113986909B (zh) * | 2021-12-24 | 2022-04-22 | 畅捷通信息技术股份有限公司 | 一种反向记录同步状态的实时数据同步方法、系统及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098342B (zh) * | 2011-01-31 | 2013-08-28 | 华为技术有限公司 | 一种基于事务级的数据同步方法、装置及系统 |
CN103095769B (zh) * | 2011-11-04 | 2015-12-09 | 阿里巴巴集团控股有限公司 | 跨机房的数据同步方法以及系统 |
CN103744906A (zh) * | 2013-12-26 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种数据同步系统、方法及装置 |
CN104679888A (zh) * | 2015-03-17 | 2015-06-03 | 浪潮集团有限公司 | 一种数据同步的装置及方法 |
CN104809202B (zh) * | 2015-04-24 | 2019-01-18 | 联动优势科技有限公司 | 一种数据库同步的方法和装置 |
CN104809200B (zh) * | 2015-04-24 | 2018-11-16 | 联动优势科技有限公司 | 一种数据库同步的方法和装置 |
-
2015
- 2015-10-30 CN CN201510727860.XA patent/CN105262831B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105262831A (zh) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105262831B (zh) | 一种存储系统间同步数据的方法、装置及同步系统 | |
JP7090744B2 (ja) | 分散データベースクラスタシステム、及びデータ同期方法 | |
US9984140B1 (en) | Lease based leader election system | |
EP2996308B1 (en) | Massively scalable object storage system | |
CN105426439A (zh) | 一种元数据的处理方法和装置 | |
CN103338243B (zh) | Web节点的缓存数据更新方法和系统 | |
EP3200431A2 (en) | Massively scalable object storage system | |
CN103177082B (zh) | 主服务器、从服务器、索引同步系统和索引同步方法 | |
CN104281506A (zh) | 一种文件系统的数据维护方法及系统 | |
CN107181686B (zh) | 路由表的同步方法、装置及系统 | |
US10365978B1 (en) | Synchronization of snapshots in a distributed consistency group | |
CN102265277A (zh) | 数据存储系统的操作方法和装置 | |
CN106156318B (zh) | 一种实现多节点数据库高可用的系统及方法 | |
CN101136728A (zh) | 群集系统和用于备份群集系统中的副本的方法 | |
KR101545626B1 (ko) | Dds-db 연동 시스템 | |
CN113268472B (zh) | 一种分布式数据存储系统及方法 | |
CN103902405A (zh) | 一种准连续性数据复制方法及装置 | |
CN111552701B (zh) | 确定分布式集群中数据一致性的方法及分布式数据系统 | |
CN105959078A (zh) | 一种集群时间同步方法、集群及时间同步系统 | |
JP6511739B2 (ja) | 冗長システムおよび冗長化方法 | |
CN108762982A (zh) | 一种数据库恢复方法、装置及系统 | |
CN106855869B (zh) | 一种实现数据库高可用的方法、装置和系统 | |
CN109005246A (zh) | 一种数据的同步方法、装置及系统 | |
CN109189813A (zh) | 一种数据共享方法及装置 | |
JP6511737B2 (ja) | 冗長システム、冗長化方法および冗長化プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |