分布式数据库数据同步方法和装置制造方法

文档序号:6504084阅读:210来源:国知局
分布式数据库数据同步方法和装置制造方法
【专利摘要】本发明公开了分布式数据库数据同步方法和装置:将系统中的各数据服务器划分为M组,并分别为每组设置一个中继服务器;每个数据服务器分别与所在分组对应的中继服务器之间建立长连接,每任意两个中继服务器之间分别建立长连接;对于任一数据服务器,当每次接收到针对自身所存储的任一Region的主副本的数据更新信息时,分别进行以下处理:根据该数据更新信息对该Region的主副本进行更新,并通过自身对应的中继服务器以及该Region的从副本所在的数据服务器对应的中继服务器,将该数据更新信息发送给从副本所在的数据服务器,以便从副本所在的数据服务器完成对从副本的更新。应用本发明所述方案,能够降低系统的网络连接维护开销。
【专利说明】分布式数据库数据同步方法和装置

【技术领域】
[0001]本发明涉及分布式存储技术,特别涉及分布式数据库数据同步方法和装置。

【背景技术】
[0002]在分布式数据库中,可采用以下数据存储方式:将数据库中的每个表分解为多个小表(Reg1n),每个Reg1n分别被调度到一个数据服务器(Reg1n Server)上进行存储,同时在其它数据服务器上对该Reg1n进行备份。
[0003]图1为现有各数据服务器上的数据存储方式示意图。
[0004]如图1所示,对于每个数据服务器来说,其中的数据存储区域可分为两部分,一部分为主副本区,另一部分为从副本区,其中,主副本区用于存储调度到该数据服务器上的Reg1n,从副本区用于存储其它数据服务器在该数据服务器上备份的Reg1n ;通常,对于任一 Reg1n,将存储在主副本区的数据称为该Reg1n的主副本,将存储在从副本区的数据称为该Reg1n的从副本。
[0005]如图1 m*^SRAl、RA2、RBl、RB2、RCl、RC2、RDl 和 RD2 分别表示各 Reg1n ;那么,RAl.P即表示RAl的主副本,RA2.P即表示RA2的主副本,依此类推;RA1.rl即表示RAl的第I个从副本,RAl.r2即表示RAl的第2个从副本,RA2.rl即表示RA2的第I个从副本,RA2.r2即表示RA2的第2个从副本,依此类推。
[0006]图1中所示的箭头表示各数据服务器之间的网络连接,在分布式数据库中,为了保证数据的可靠性和并发读写性能,通常会将各从副本较为均匀地分布到系统中的各数据服务器上;如图1所示,数据服务器A上的RA1.P对应的两个从副本分别位于数据服务器B和数据服务器C上,RA2.P对应的两个从副本分别位于数据服务器C和数据服务器D上,类似地,RBl.P对应的两个从副本分为位于数据服务器A和数据服务器D上,RB2.p对应的两个从副本分为位于数据服务器A和数据服务器C上,其它不再一一赘述。
[0007]在分布式数据库中,为了保证数据读写的一致性,要求同一个Reg1n对应的多个副本保持强一致性,即当对某一 Reg1n的主副本进行更新时,需要将所作更新同步到该Reg1n的从副本,从而实现数据同步。
[0008]现有数据同步方式如下:当针对任一 Reg1n的数据更新信息提交到该Reg1n的主副本所在的数据服务器后,该数据服务器根据该数据更新信息对该Reg1n的主副本进行更新,并通过与该Reg1n的从副本所在的数据服务器之间的短连接或长连接,将该数据更新信息发送给该Reg1n的从副本所在的数据服务器,该Reg1n的从副本所在的数据服务器根据该数据更新信息完成对该Reg1n的从副本的更新后,向该Reg1n的主副本所在的数据服务器返回确认消息。
[0009]如前所述,该Reg1n的主副本所在的数据服务器和该Reg1n的从副本所在的数据服务器之间可采用短连接或长连接的网络连接方式。其中,短连接是指,当需要进行数据同步时,该Reg1n的主副本所在的数据服务器与该Reg1n的从副本所在的数据服务器之间建立网络连接,当数据同步结束时,断开所建立的网络连接;长连接是指,该Reg1n的主副本所在的数据服务器与该Reg1n的从副本所在的数据服务器之间预先建立好网络连接,当需要进行数据同步时,利用所建立的网络连接进行数据同步,当数据同步结束时,依然维持所建立的网络连接。
[0010]在分布式数据库中,每个Reg1n的更新均是记录级别的,即每次更新的数据量均较小,且更新较为频繁,而对于短连接来说,建立网络连接需要进行三次传输控制协议(TCP, Transmiss1n Control Protocol)握手操作,断开网络连接需要进行四次TCP握手操作,这样,就会导致数据同步带来的额外开销非常大,数据传输效率低,而且频繁的短连接通信可能会带来socket错误。
[0011]为此,现有技术中多采用长连接的网络连接方式,这样,当需要进行数据同步时,即可省去网络连接建立和断开的开销,并可提高数据传输效率等。
[0012]但是,长连接的网络连接方式在实际应用中也会存在一定的问题,如:在系统中,每个Reg1n的从副本均可能保存到该Reg1n的主副本所在的数据服务器以外的其它所有数据服务器上,相应地,每个数据服务器均可能需要与其它所有数据服务器之间维持长连接,从而导致系统的网络连接维护开销很大。


【发明内容】

[0013]有鉴于此,本发明提供了分布式数据库数据同步方法和装置,能够降低系统的网络连接维护开销。
[0014]为达到上述目的,本发明的技术方案是这样实现的:
[0015]一种分布式数据库数据同步方法,包括:
[0016]将系统中的各数据服务器划分为M组,并分别为每组设置一个中继服务器,M为大于I的正整数;每个数据服务器分别与所在分组对应的中继服务器之间建立长连接,每任意两个中继服务器之间分别建立长连接;
[0017]对于任一数据服务器X,当每次接收到针对自身所存储的任一小表Reg1n的主副本的数据更新信息时,分别进行以下处理:
[0018]根据所述数据更新信息对所述Reg1n的主副本进行更新;
[0019]通过自身对应的中继服务器以及所述Reg1n的从副本所在的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器,以便所述Reg1n的从副本所在的数据服务器根据所述数据更新信息完成对所述Reg1n的从副本的更新。
[0020]一种数据服务器,
[0021]所述数据服务器所在系统中的各数据服务器被划分为M组,每组分别对应一个中继服务器,M为大于I的正整数;每个数据服务器分别与所在分组对应的中继服务器之间建立有长连接,每任意两个中继服务器之间分别建立有长连接;
[0022]所述数据服务器中包括:
[0023]第一处理模块,用于当每次接收到针对所在数据服务器所存储的任一小表Reg1n的主副本的数据更新信息时,将所述数据更新信息发送第二处理模块,并通知所述第二处理模块执行自身功能;
[0024]所述第二处理模块,用于根据所述数据更新信息对所述Reg1n的主副本进行更新;并通过自身对应的中继服务器以及所述Reg1n的从副本所在的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器,以便所述Reg1n的从副本所在的数据服务器根据所述数据更新信息完成对所述Reg1n的从副本的更新。
[0025]一种中继服务器,
[0026]所述中继服务器所在系统中的各数据服务器被划分为M组,每组分别对应一个中继服务器,M为大于I的正整数;每个数据服务器分别与所在分组对应的中继服务器之间建立有长连接,每任意两个中继服务器之间分别建立有长连接;
[0027]所述中继服务器中包括:
[0028]第四处理模块,用于接收对应分组中的数据服务器发送来的数据更新信息,将所述数据更新信息发送给所在中继服务器以外的其它中继服务器或对应分组中的数据服务器;
[0029]第五处理模块,用于接收所在中继服务器以外的其它中继服务器发送来的数据更新信息,将所述数据更新信息发送给对应分组中的数据服务器。
[0030]可见,采用本发明所述方案,将系统中的各数据服务器划分为M组,每组分别对应一个中继服务器,每个数据服务器分别与所在分组对应的中继服务器之间建立长连接,每个中继服务器分别与其它各中继服务器以及对应分组中的各数据服务器之间建立长连接,后续,可利用中继服务器的路由转发功能,实现数据同步;相比于现有技术,本发明所述方案中需要维持的长连接数明显减少,从而降低了系统的网络连接维护开销。

【专利附图】

【附图说明】
[0031]图1为现有各数据服务器上的数据存储方式示意图。
[0032]图2为本发明分布式数据库数据同步方法实施例的流程图。
[0033]图3为本发明所述分组以及连接方式第一示意图。
[0034]图4为本发明所述分组以及连接方式第二示意图。

【具体实施方式】
[0035]针对现有技术中存在的问题,本发明中提出一种分布式数据库数据同步方案,能够降低系统的网络连接维护开销。
[0036]为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步的详细说明。
[0037]图2为本发明分布式数据库数据同步方法实施例的流程图。如图2所示,包括:
[0038]步骤21:将系统中的各数据服务器划分为M组,并分别为每组设置一个中继服务器(Relay ServerXM为大于I的正整数;每个数据服务器分别与所在分组对应的中继服务器之间建立长连接,每任意两个中继服务器之间分别建立长连接。
[0039]在实际应用中,可按照预定方式将系统中的所有数据服务器划分为M组,M为大于I的正整数,具体取值可根据实际需要而定。
[0040]所述预定方式包括但不限于以下之一:
[0041]I)设定不同的IP地址段,根据各数据服务器的IP地址,将位于同一 IP地址段内的各数据服务器划分为一组;
[0042]2)分别对各数据服务器的IP地址进行哈希运算,将哈希运算结果相同的各数据服务器划分为一组;
[0043]3)采用随机分组的方式对各数据服务器进行分组。
[0044]并为每个分组分别设置一个中继服务器,中继服务器可以是由原来的数据服务器改造而成的,也可以是为实现本发明所述方案专门设计的,中继服务器不进行数据存储,只起到路由转发的作用。
[0045]每个数据服务器均需要与所在分组对应的中继服务器之间建立长连接,每任意两个中继服务器之间也需要建立长连接。
[0046]图3为本发明所述分组以及连接方式第一示意图。如图3所示,数据服务器A和数据服务器B同属于组1,数据服务器C和数据服务器D同属于组2,中继服务器I对应于组1,中继服务器2对应于组2,相应地,数据服务器A和数据服务器B需要分别与中继服务器I建立长连接,中继服务器C和中继服务器D需要分别与中继服务器2建立长连接,另外,中继服务器I和中继服务器2之间也需要建立长连接。
[0047]需要说明的是,无论是本发明中所建立的长连接,还是现有技术中所建立的短连接和长连接,在每两个服务器之间,通常均需要建立发送和接收两条连接。对于两个服务器来说,其中的一条连接对于一个服务器来说是发送连接,对于另一个服务器来说则是接收连接,同样,另一条连接对于一个服务器来说是接收连接,对于另一个服务器来说则是发送连接。
[0048]步骤22:对于任一数据服务器X,当每次接收到针对自身所存储的任一 Reg1n的主副本的数据更新信息时,分别进行以下处理:根据该数据更新信息对该Reg1n的主副本进行更新;通过自身对应的中继服务器以及该Reg1n的从副本所在的数据服务器对应的中继服务器,将该数据更新信息发送给该Reg1n的从副本所在的数据服务器,以便该Reg1n的从副本所在的数据服务器根据该数据更新信息完成对该Reg1n的从副本的更新。
[0049]为便于表述,本实施例中,用数据服务器X来代表系统中的任一数据服务器。
[0050]当数据服务器X接收到针对自身所存储的任一 Reg1n的主副本的数据更新信息时,可按照现有方式,利用该数据更新信息对该Reg1n的主副本进行更新,并且,按照本发明所述方式,通过自身对应的中继服务器以及该Reg1n的从副本所在的数据服务器对应的中继服务器,将该数据更新信息发送给该Reg1n的从副本所在的数据服务器,这样,该Reg1n的从副本所在的数据服务器即可根据该数据更新信息完成对该Reg1n的从副本的更新,从而实现与数据服务器X之间的数据同步。
[0051]具体来说,当数据服务器X将该数据更新信息发送给自身对应的中继服务器后,数据服务器X对应的中继服务器可进行以下处理:
[0052]确定该Reg1n的从副本所在的数据服务器中是否存在与数据服务器x同组的数据服务器;
[0053]如果否,则将该数据更新信息发送给该Reg1n的从副本所在的数据服务器对应的中继服务器,由该Reg1n的从副本所在的数据服务器对应的中继服务器将该数据更新信息发送给该Reg1n的从副本所在的数据服务器;
[0054]如果是,则将该数据更新信息直接发送给该Reg1n的从副本所在的数据服务器中与数据服务器X同组的数据服务器;通过该Reg1n的从副本所在的数据服务器中与数据服务器X不同组的数据服务器对应的中继服务器,将该数据更新信息发送给该Reg1n的从副本所在的数据服务器中与数据服务器X不同组的数据服务器。
[0055]举例说明:
[0056]假设该Reg1n的从副本所在的数据服务器的个数共为三个,为便于表述,分别将其称之为数据服务器y、数据服务器z和数据服务器P,其中,数据服务器y与数据服务器X同组,数据服务器z和数据服务器P同组,但不与数据服务器X同组;那么,数据服务器X对应的中继服务器接收到数据服务器X发送来的数据更新信息后,可直接将该数据更新信息发送给数据服务器y,并且,将该数据更新信息发送给数据服务器z和数据服务器P对应的中继服务器,由数据服务器z和数据服务器P对应的中继服务器将该数据更新信息进一步发送给数据服务器z和数据服务器P。
[0057]另外,作为一种优化方式,本发明所述方案中还提出,对于该Reg1n的从副本所在的数据服务器中与数据服务器X同组的数据服务器,可由数据服务器X直接将该数据更新信息发送给该数据服务器,而不经过中继服务器转发,从而在一定程度上减轻中继服务器的负载。
[0058]相应地,则需要系统中同组内的每任意两个数据服务器之间分别建立长连接。图4为本发明所述分组以及连接方式第二示意图,可以看出,相比于图3所示连接方式,图4中,同组内的两个数据服务器之间也需要建立长连接。
[0059]这样,步骤22中,数据服务器X在通过自身对应的中继服务器以及该Reg1n的从副本所在的数据服务器对应的中继服务器,将该数据更新信息发送给该Reg1n的从副本所在的数据服务器之前,还可进一步进行以下处理:
[0060]数据服务器X确定该Reg1n的从副本所在的数据服务器中是否存在与自身同组的数据服务器;
[0061]如果否,则通过自身对应的中继服务器以及该Reg1n的从副本所在的数据服务器对应的中继服务器,将该数据更新信息发送给该Reg1n的从副本所在的数据服务器;
[0062]如果是,则将该数据更新信息直接发送给该Reg1n的从副本所在的数据服务器中与自身同组的数据服务器;通过自身对应的中继服务器以及该Reg1n的从副本所在的数据服务器中与自身不同组的数据服务器对应的中继服务器,将该数据更新信息发送给该Reg1n的从副本所在的数据服务器中与自身不同组的数据服务器。
[0063]举例说明:
[0064]假设该Reg1n的从副本所在的数据服务器的个数共为三个,为便于表述,分别将其称之为数据服务器y、数据服务器z和数据服务器P,其中,数据服务器y与数据服务器X同组,数据服务器z和数据服务器P同组,但不与数据服务器X同组;那么,数据服务器X在接收到该数据更新信息后,可将其直接发送给数据服务器1,并且,可将该数据更新信息发送给自身对应的中继服务器,由自身对应的中继服务器将其进一步发送给数据服务器z和数据服务器P对应的中继服务器,并由数据服务器z和数据服务器P对应的中继服务器将该数据更新信息进一步发送给数据服务器z和数据服务器P。
[0065]综合上述介绍,在实际应用中,可在系统中专门设置一个主节点,并将系统中的各数据服务器的分组信息、每个分组分别对应的中继服务器信息,以及各数据服务器和各中继服务器的IP地址信息等存储在该主节点中。
[0066]另外,每个数据服务器中通常会保存有自身所存储的每个Reg1n的主副本对应的各从副本所在的数据服务器的IP地址以及自身对应的中继服务器的IP地址等。
[0067]这样,当数据服务器X接收到针对自身所存储的任一 Reg1n的主副本的数据更新信息时,后续可依次进行如下处理:
[0068]I)通过与主节点进行交互,获知该Reg1n的从副本所在的数据服务器中哪个/哪些与自身同组,相应地,可根据与自身同组的数据服务器的IP地址,将该数据更新信息发送给与自身同组的数据服务器,并将该数据更新信息以及该Reg1n的从副本所在的数据服务器中不与自身同组的数据服务器的IP地址发送给自身对应的中继服务器;
[0069]2)数据服务器X对应的中继服务器针对接收到的信息,首先通过与主节点进行交互,获知该Reg1n的从副本所在的数据服务器中不与数据服务器X同组的数据服务器对应的中继服务器及其IP地址等;
[0070]假设该Reg1n的从副本所在的数据服务器中不与数据服务器x同组的数据服务器共对应两个中继服务器,分别为中继服务器a和中继服务器b ;
[0071]那么,数据服务器X对应的中继服务器可分别将该数据更新信息发送给中继服务器a和中继服务器b,同时,将该Reg1n的从副本所在的数据服务器中对应于中继服务器a的数据服务器的IP地址发送给中继服务器a,将该Reg1n的从副本所在的数据服务器中对应于中继服务器b的数据服务器的IP地址发送给中继服务器b,相应地,中继服务器a和中继服务器b将该数据更新信息分别发送给接收到的IP地址对应的数据服务器。
[0072]需要说明的是,以上所述仅为举例说明,并不用于限制本发明的技术方案,如果采用其它方式,只要能够达到同样的目的,也是可以的。比如,可在各数据服务器上分别存储与其同组的其它数据服务器的IP地址等信息,并在每个中继服务器上分别存储系统中的各数据服务器的分组信息以及每个分组分别对应的中继服务器信息等,这样,即可省去主节点这一实体设备。当然,还可以采用本领域技术人员能够想到的其它方式,不再一一赘述。
[0073]在实际应用中,当从副本所在的数据服务器根据接收到的数据更新信息完成对从副本的更新之后,还需要按照与该数据更新信息的发送路径相反的路径,向主副本所在的数据服务器返回确认消息。
[0074]由于每个中继服务器需要分别与对应分组中的各数据服务器以及其它各中继服务器之间维持长连接,消耗的资源会比数据服务器高一些,因此,可采用性能较高的服务器作为中继服务器。
[0075]本发明同时公开了一种数据服务器,所述数据服务器所在系统中的各数据服务器被划分为M组,每组分别对应一个中继服务器,M为大于I的正整数;每个数据服务器分别与所在分组对应的中继服务器之间建立有长连接,每任意两个中继服务器之间分别建立有长连接;
[0076]其中,所述数据服务器中可包括:
[0077]第一处理模块,用于当每次接收到针对所在数据服务器所存储的任一 Reg1n的主副本的数据更新信息时,将所述数据更新信息发送第二处理模块,并通知所述第二处理模块执行自身功能;
[0078]第二处理模块,用于根据所述数据更新信息对所述Reg1n的主副本进行更新;并通过自身对应的中继服务器以及所述Reg1n的从副本所在的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器,以便所述Reg1n的从副本所在的数据服务器根据所述数据更新信息完成对所述Reg1n的从副本的更新。
[0079]另外,同组内的每任意两个数据服务器之间可分别建立有长连接;
[0080]相应地,第二处理模块可进一步用于,确定所述Reg1n的从副本所在的数据服务器中是否存在与所在数据服务器同组的数据服务器;
[0081]如果否,则通过所在数据服务器对应的中继服务器以及所述Reg1n的从副本所在的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器;
[0082]如果是,则将所述数据更新信息直接发送给所述Reg1n的从副本所在的数据服务器中与所在数据服务器同组的数据服务器;通过所在数据服务器对应的中继服务器以及所述Reg1n的从副本所在的数据服务器中与所在数据服务器不同组的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器中与所在数据服务器不同组的数据服务器。
[0083]所述数据服务器中还可进一步包括:
[0084]第三处理模块,用于当接收到所在数据服务器对应的中继服务器发送来的数据更新信息时,根据所述数据更新信息,对所在数据服务器中所存储的、所述数据更新信息对应的Reg1n的从副本进行更新。
[0085]本发明同时公开了一种中继服务器,所述中继服务器所在系统中的各数据服务器被划分为M组,每组分别对应一个中继服务器,M为大于I的正整数;每个数据服务器分别与所在分组对应的中继服务器之间建立有长连接,每任意两个中继服务器之间分别建立有长连接;
[0086]其中,所述中继服务器中可包括:
[0087]第四处理模块,用于接收对应分组中的数据服务器发送来的数据更新信息,将所述数据更新信息发送给所在中继服务器以外的其它中继服务器或对应分组中的数据服务器;
[0088]第五处理模块,用于接收所在中继服务器以外的其它中继服务器发送来的数据更新信息,将所述数据更新信息发送给对应分组中的数据服务器。
[0089]具体地,
[0090]第四处理模块接收到所述数据更新信息,确定所述数据更新信息对应的小表Reg1n的从副本所在的数据服务器中是否存在与发送所述数据更新信息的数据服务器同组的数据服务器;
[0091]如果否,则将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器对应的中继服务器;
[0092]如果是,则将所述数据更新信息直接发送给所述Reg1n对应的从副本所在的数据服务器中、与发送所述数据更新信息的数据服务器同组的数据服务器;将所述数据更新信息发送给所述Reg1n对应的从副本所在的数据服务器中、与发送所述数据更新信息的数据服务器不同组的数据服务器对应的中继服务器;
[0093]第五处理模块接收到所述数据更新消息,将所述数据更新消息发送给对应分组中存储有所述数据更新消息对应的Reg1n的从副本的数据服务器。
[0094]上述装置实施例的具体工作流程请参照前述方式实施例中的相应说明,此处不再赘述。
[0095]现有技术中,在没有引入中继服务器时,每个数据服务器最多可能需要与η-1个其它数据服务器之间维持长连接,η表示系统中的数据服务器总数,而采用本发明所述方案后,即当引入了中继服务器后,每个数据服务器最多只需要与所在分组对应的中继服务器以及同组内的其它各数据服务器之间维持长连接,而每个中继服务器只需要维持与对应分组中的各数据服务器以及系统中的其它各中继服务器之间的长连接,相比于现有技术,所需维持的长连接数量明显减少,从而极大地降低了系统的网络连接维护开销,而且可提高系统的扩展性等。
[0096]可结合实际应用环境分析如下:对于具有1000个数据服务器的系统来说,按照现有方式,每个数据服务器最多需要维持(1000-1) Χ2 (包括接收和发送两条长连接)=1998个长连接;而采用本发明所述方案后,假设将1000个数据服务器分为10组,每组中分别包括100个数据服务器,那么,每个数据服务器最多需要维持(与同组中的其它99个数据服务器之间的长连接+与对应的I个中继服务器之间的长连接)Χ2=200个长连接,每个中继服务器最多需要维持(与对应分组中的100个数据服务器之间的长连接+与系统中的其它9个中继服务器之间的长连接)Χ2=218个长连接;可以看出,相比于现有技术,采用本发明所述方案后,所需维持的长连接数量明显减少。
[0097]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种分布式数据库数据同步方法,其特征在于,包括: 将系统中的各数据服务器划分为M组,并分别为每组设置一个中继服务器,M为大于I的正整数;每个数据服务器分别与所在分组对应的中继服务器之间建立长连接,每任意两个中继服务器之间分别建立长连接; 对于任一数据服务器X,当每次接收到针对自身所存储的任一小表Reg1n的主副本的数据更新信息时,分别进行以下处理: 根据所述数据更新信息对所述Reg1n的主副本进行更新; 通过自身对应的中继服务器以及所述Reg1n的从副本所在的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器,以便所述Reg1n的从副本所在的数据服务器根据所述数据更新信息完成对所述Reg1n的从副本的更新。
2.根据权利要求1所述的方法,其特征在于,所述通过自身对应的中继服务器以及所述Reg1n的从副本所在的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器包括: 所述数据服务器X将所述数据更新信息发送给自身对应的中继服务器; 所述数据服务器X对应的中继服务器接收到所述数据更新信息后,确定所述Reg1n的从副本所在的数据服务器中是否存在与所述数据服务器X同组的数据服务器; 如果否,则将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器对应的中继服务器,由所述Reg1n的从副本所在的数据服务器对应的中继服务器将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器; 如果是,则将所述数据更新信息直接发送给所述Reg1n的从副本所在的数据服务器中与所述数据服务器X同组的数据服务器;通过所述Reg1n的从副本所在的数据服务器中与所述数据服务器X不同组的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器中与所述数据服务器X不同组的数据服务器。
3.根据权利要求1所述的方法,其特征在于, 该方法进一步包括:同组内的每任意两个数据服务器之间分别建立长连接; 所述通过自身对应的中继服务器以及所述Reg1n的从副本所在的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器之前,进一步包括: 所述数据服务器X确定所述Reg1n的从副本所在的数据服务器中是否存在与自身同组的数据服务器; 如果否,则通过自身对应的中继服务器以及所述Reg1n的从副本所在的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器;如果是,则将所述数据更新信息直接发送给所述Reg1n的从副本所在的数据服务器中与自身同组的数据服务器;通过自身对应的中继服务器以及所述Reg1n的从副本所在的数据服务器中与自身不同组的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器中与自身不同组的数据服务器。
4.根据权利要求1所述的方法,其特征在于,所述将系统中的各数据服务器划分为M组包括但不限于以下之一: 设定不同的IP地址段,根据各数据服务器的IP地址,将位于同一 IP地址段内的各数据服务器划分为一组; 分别对各数据服务器的IP地址进行哈希运算,将哈希运算结果相同的各数据服务器划分为一组; 采用随机分组的方式对各数据服务器进行分组。
5.根据权利要求1、2或3所述的方法,其特征在于, 当完成对所述Reg1n的从副本的更新之后,进一步包括:按照与所述数据更新信息的发送路径相反的路径,向所述数据服务器X返回确认消息。
6.一种数据服务器,其特征在于, 所述数据服务器所在系统中的各数据服务器被划分为M组,每组分别对应一个中继服务器,M为大于I的正整数;每个数据服务器分别与所在分组对应的中继服务器之间建立有长连接,每任意两个中继服务器之间分别建立有长连接; 所述数据服务器中包括: 第一处理模块,用于当每次接收到针对所在数据服务器所存储的任一小表Reg1n的主副本的数据更新信息时,将所述数据更新信息发送第二处理模块,并通知所述第二处理模块执行自身功能; 所述第二处理模块,用于根据所述数据更新信息对所述Reg1n的主副本进行更新;并通过自身对应的中继服务器以及所述Reg1n的从副本所在的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器,以便所述Reg1n的从副本所在的数据服务器根据所述数据更新信息完成对所述Reg1n的从副本的更新。
7.根据权利要求6所述的数据服务器,其特征在于, 同组内的每任意两个数据服务器之间分别建立有长连接; 所述第二处理模块进一步用于,确定所述Reg1n的从副本所在的数据服务器中是否存在与所在数据服务器同组的数据服务器; 如果否,则通过所在数据服务器对应的中继服务器以及所述Reg1n的从副本所在的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器; 如果是,则将所述数据更新信息直接发送给所述Reg1n的从副本所在的数据服务器中与所在数据服务器同组的数据服务器;通过所在数据服务器对应的中继服务器以及所述Reg1n的从副本所在的数据服务器中与所在数据服务器不同组的数据服务器对应的中继服务器,将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器中与所在数据服务器不同组的数据服务器。
8.根据权利要求6或7所述的数据服务器,其特征在于,所述数据服务器中进一步包括: 第三处理模块,用于当接收到所在数据服务器对应的中继服务器发送来的数据更新信息时,根据所述数据更新信息,对所在数据服务器中所存储的、所述数据更新信息对应的Reg1n的从副本进行更新。
9.一种中继服务器,其特征在于, 所述中继服务器所在系统中的各数据服务器被划分为M组,每组分别对应一个中继服务器,M为大于I的正整数;每个数据服务器分别与所在分组对应的中继服务器之间建立有长连接,每任意两个中继服务器之间分别建立有长连接; 所述中继服务器中包括: 第四处理模块,用于接收对应分组中的数据服务器发送来的数据更新信息,将所述数据更新信息发送给所在中继服务器以外的其它中继服务器或对应分组中的数据服务器; 第五处理模块,用于接收所在中继服务器以外的其它中继服务器发送来的数据更新信息,将所述数据更新信息发送给对应分组中的数据服务器。
10.根据权利要求9所述的中继服务器,其特征在于, 所述第四处理模块接收到所述数据更新信息,确定所述数据更新信息对应的小表Reg1n的从副本所在的数据服务器中是否存在与发送所述数据更新信息的数据服务器同组的数据服务器; 如果否,则将所述数据更新信息发送给所述Reg1n的从副本所在的数据服务器对应的中继服务器; 如果是,则将所述数据更新信息直接发送给所述Reg1n对应的从副本所在的数据服务器中、与发送所述数据更新信息的数据服务器同组的数据服务器;将所述数据更新信息发送给所述Reg1n对应的从副本所在的数据服务器中、与发送所述数据更新信息的数据服务器不同组的数据服务器对应的中继服务器; 所述第五处理模块接收到所述数据更新消息,将所述数据更新消息发送给对应分组中存储有所述数据更新消息对应的Reg1n的从副本的数据服务器。
【文档编号】G06F17/30GK104239310SQ201310228349
【公开日】2014年12月24日 申请日期:2013年6月8日 优先权日:2013年6月8日
【发明者】郭磊涛, 钱岭, 王凤 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1