分片调度方法、装置及分布式服务器系统的制作方法_3

文档序号:9581868阅读:来源:国知局
数量的分片。
[0130]如图5b所示,上述步骤S502可以包括以下步骤:
[0131]在步骤S5021中,根据改变前后的权重获得当前每个服务器主节点的分片迀移值。
[0132]在步骤S5022中,对分片迀移值的整数部分按照由小到大的顺序进行排序,并基于排序后的整数部分和预设迀移方式获得主节点分片的第一迀移信息,预设迀移方式包括首尾迀移方式或顺序迀移方式。
[0133]在步骤S5023中,对分片迀移值的小数部分按照由小到大的顺序进行排序,并基于排序后的小数部分和与整数部分同样的迀移方式获得主节点分片的第二迀移信息。
[0134]在步骤S5024中,根据主节点分片的第一迀移信息和主节点分片的第二迀移信息获得每个服务器主节点的分片迀移信息。
[0135]下面以引起服务器的权重发生改变的两种情况为例,对图5b进行详细说明:
[0136]针对第一种情况,控制器通过上述步骤S5021-5023获得当前每个服务器主节点的分片迀移信息的过程可以为:
[0137]根据改变前后的权重计算出每个服务器主节点的分片迀移值,对该分片迀移值的整数部分按照由小到大的顺序进行排序,基于排序后的整数部分和首尾迀移方式获得主节点分片的第一迀移信息,然后,对小数部分按照由小到大的顺序进行排序,并基于排序后的小数部分和首尾迀移方式获得主节点分片的第二迀移信息,由此可以获得每个服务器主节点的分片迀移量和分片迀移路径。
[0138]假设,计算出的每个服务器主节点的分片迀移值如图6a所示,从图6a可以看出,服务器1主节点的分片迀出值分别为5.5,服务器2主节点的分片迀入值分别为2.4,服务器3主节点的分片迀入值分别为5.2,服务器4主节点的分片迀出值为2.1,并对整数部分按照由小到大的顺序进行排序,然后基于排序后的整数部分和首尾迀移方式,获得主节点分片的第一迀移信息为:由服务器1的主节点向服务器3的主节点迀入5个分片,由服务器4的主节点向服务器2的主节点迀入2个分片;然后对小数部分按照由小到大的顺序进行排序,排序后的结果如图6b所示;之后根据图6b排序结果和首尾迀移方式,获得主节点分片的第二迀移信息为:由服务器1的主节点向服务器2的主节点迀入1个分片,由服务器4的主节点向服务器3的主节点迀入1个分片,如图6c所示;控制器在获得上述第一迀移信息和第二迀移信息后,向对应的服务器主节点发送迀移指令,服务器主节点在接收到上述迀移指令后迀出或迀入对应的分片,使得最终迀入值和迀出值互相抵消,如图6d所示;通过图6a-图6d可以获得服务器1主节点的分片迀出量为6 ;服务器2主节点的分片迀入量为3 ;服务器3主节点的分片迀入量为6 ;服务器4主节点的分片迀出量为3,迀移路径可参见图6a和图6c。
[0139]需要说明的是,在获得上述第一迀移信息和第二迀移信息的过程中使用了首尾迀移方式,首尾迀移方式来源于首尾凹凸迀移算法,下面示例性地介绍下首尾凹凸迀移算法的核心思想:
[0140]如图6a所示,可以将迀出值画在水平线上方(即迀出值代表凸出部分),迀入值画在水平线下方(即迀入值代表凹进部分),水平线代表数值为0,其中,凸出部分和凹进部分的大小与对应的迀出值和迀入值大小对应,在对迀出值和迀入值排序过程中,可以将迀出值看作正数,迀入值看作负数;然后对整数部分按照由小到大的顺序进行排序,排序的目的是为了更好地展现迀移需求,对排序后的整数部分采用首尾迀移,即从具有最大迀出值的服务器(如图6a中的服务器1)主节点迀出整数个分片,并将迀出的分片迀入具有最大迀入值的服务器(如图6a中的服务器3)主节点,依次类推,同样地,对小数部分也是按照上述原理进行迀移的,通过该算法,可以保证服务器节点间的相互迀移量尽可能地少。
[0141]针对第二种情况,控制器根据改变前后的权重计算出当前每个服务器主节点的分片迀移信息的过程可以为:
[0142]当新注册的服务器为一个时,根据改变前后的权重计算出当前每个服务器主节点的分片迀移值,对该分片迀移值的整数部分按照由小到大的顺序进行排序,基于排序后的整数部分和倒序迀移方式获得主节点分片的第一迀移信息,然后,对小数部分按照由小到大的顺序进行排序,并基于排序后的小数部分和倒序迀移方式获得主节点分片的第二迀移信息,由此可以获得每个服务器主节点的分片迀移量和分片迀移路径。
[0143]假设,控制器计算出的包括新注册服务器在内的每个服务器主节点的分片迀移值如图7a所示,从图7a可以看出,服务器1_服务器4主节点的分片迀出值分别为3.4,2.9、5.1和1.6,新注册的服务器主节点的分片迀入值为13 ;对整数部分按照由小到大的顺序进行排序后的结果如图7a所示,根据排序结果和倒序迀移方式(即按照由大到小的顺序进行迀移的方式),获得主节点分片的第一迀移信息为:由服务器3的主节点向新注册服务器的主节点迀入5个分片,由服务器1的主节点向新注册服务器的主节点迀入3个分片,由服务器2的主节点向新注册服务器的主节点迀入2个分片,由服务器4的主节点向新注册服务器的主节点迀入1个分片(若此时服务器按照该迀移信息进行迀移,则新注册的服务器主节点已有11个分片,还差两个分片);然后,对小数部分按照由小到大的顺序进行排序的结果如图7b所示,然后根据排序结果和倒序迀移方式,获得主节点分片的第二迀移信息为:由服务器2的主节点向新注册服务器的主节点迀入1个分片,由服务器4的主节点向新注册服务器的主节点迀入1个分片,如图7b所示;控制器在获得上述第一迀移信息和第二迀移信息后,向对应的服务器主节点发送迀移指令,服务器主节点在接收到上述迀移指令后迀出或迀入对应的分片,从而完成主节点分片的迀移,通过上述过程可以获得服务器1主节点的分片迀出量为3 ;服务器2主节点的分片迀出量为3 ;服务器3主节点的分片迀出量为5 ;服务器4主节点的分片迀出量为2,新注册服务器主节点的分片迀入量为13 ;且服务器1-4主节点的分片迀出路径均为从自己所在的服务器迀出至新注册服务器,新注册服务器主节点的分片迀入路径为从服务器1-4迀入至自己所在的服务器。
[0144]需要说明的是,在获得上述第一迀移信息和第二迀移信息的过程中首先对分片迀移值的整数部分和小数部分按照由小到大的顺序进行排序,然后对排序结果进行倒序迀移的目的是为了首先迀移数值较大的分片,以使得服务器节点间的相互迀移量尽可能地少。
[0145]由此可见,控制器通过上述实施例,获得主节点的分片迀移信息后,可以向对应的服务器主节点发送迀移指令,从而使服务器可以根据迀移指令迀移对应数量的分片,以达到保持控制器根据新的权重分配的分片数量的目的。
[0146]在本公开实施例中,在服务器主节点间进行分片迀移后,有可能出现同一服务器中的主节点和从节点具有相同的分片的情况,而基于主从节点分片互斥的原则,同一服务器中的主从节点不可以具有相同的分片,因此,需要对从节点的分片进行迀移。
[0147]图8a是根据一示例性实施例示出的另一种从节点的分片调度方法的流程图,如图8a所示,该方法包括:
[0148]在步骤S801中,获得所有服务器的主节点和从节点间相同分片的数量和,并将数量和作为互斥量进行保存。
[0149]在该实施例中,计算所有服务器的主节点和从节点间相同分片的数量和,例如,共有3个服务器,第一个服务器的主从节点都具有分片2、3,第一个服务器的主从节点都具有分片4,第三个服务器的主从节点都具有分片7,则互斥量为4。
[0150]在步骤S802中,计算每个服务器的主节点和从节点的分片数量差,并根据分片数量差和互斥量获得每个服务器从节点的分片迀移信息。
[0151]在该实施例中,首先利用图6a中采用的首尾迀移方式根据分片数量差获得从节点分片的第一迀移信息,然后采用首尾迀移方式根据互斥量获得从节点分片的第二迀移信息。
[0152]在步骤S803中,根据每个服务器从节点的分片迀移信息向对应从节点发送迀入或迀出指令,以使对应从节点迀入或迀出对应的分片。
[0153]服务器在接收控制器发送的迀入或迀出指令后,可以根据对应的指令迀入或迀出对应的分片,从而消除互斥的分片,并使主节点和从节点的分片数量尽可能地一致。
[0154]如图8b所示,上述步骤S802可以包括以下步骤:
[0155]在步骤S8021中,对所有服务器主从节点的分片数量差进行排序,根据排序结果和首尾迀移方式获得从节点分片的第一迀移信息。
[0156]该实施例中的,主从节点的分片数量差为从节点的分片数量减去从节点的分片数量;例如,服务器1的从节点的分片数量为8,从节点的分片数量为6,则服务器1主从节点的分片数量差为2 ;又例如,服务器2的从节点的分片数量为8,从节点的分片数量为10,则服务器2主从节点的分片数量差为_2。
[0157]在步骤S8022中,针对根据从节点分片的第一迀移信息进行迀移后的服务器,若仍存在分片数量差,则按照当前分片数量差由小到大的顺序进行排序,并根据互斥量和顺序迀移方式获得从节点分片的第二迀移信息。
[0158]在步骤S8023中,根据从节点分片的第一迀移信息和第二迀移信息获得每个服务器从节点的分片迀移信息。
[0159]假设,计算出的每个服务器主从节点的分片数量差如图9a所示,并对分片数量差进行排序,并根据图9a所示的排序结果和首尾迀移方式获得的从节点分片的第一迀移信息为:由服务器1向服务器2和服务器3分片迀入1个分片,如图9b所示;然后判断根据第一迀移信息进行迀移后的服务器主从节点是否仍存在分片数量差,若仍存在分片数量差,则按照当前分片数量差由小到大的顺序进行排序,并根据排序结果和互斥量顺序迀移方式获得的从节点分片的第一迀移信息为:将4个互斥分片迀入服务器3,1个互斥分片迀入服务器2,如图9c所示;需要说明的是,选择互斥分片时也要遵守主从节点分片互斥的原则。
[0160]由此可见,通过该实施例,可以清除服务器的主从节点间互斥的分片,并使主从节点的分片数量尽可能地一致。
[0161]图10是根据一示例性实施例示出的一种分片调度装置的框图,如图10所示,该分片调度装置包括获得模块21和分配通知模块22,其中:
[0162]获得模块21被配置为获得当前分布式服务器系统中每个服务器的权重;分配通知模块22被配置为根据获得模块21获得的权重为每个服务器分
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1