CN116264574A - 云存储负载均衡方法、装置、设备及存储介质 - Google Patents
云存储负载均衡方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116264574A CN116264574A CN202211500036.7A CN202211500036A CN116264574A CN 116264574 A CN116264574 A CN 116264574A CN 202211500036 A CN202211500036 A CN 202211500036A CN 116264574 A CN116264574 A CN 116264574A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- empty
- virtual
- empty virtual
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004891 communication Methods 0.000 claims description 16
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例涉及云计算技术领域,公开了一种云存储负载均衡方法,该方法包括:在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;所述当前物理节点为多个物理节点中的一个,每个所述物理节点中存在多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点;当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。本发明实施例实现了有效进行负载均衡。
Description
技术领域
本发明实施例涉及云计算技术领域,具体涉及一种云存储负载均衡方法、装置、设备及计算机可读存储介质。
背景技术
目前云存储变得越来越重要,为了支持范围查询,数据局部性被严格保留,这使得节点之间的负载均衡成为一项具有挑战性的任务。现有技术中基于DHT的键值存储成为最流行的云存储技术之一。基于DHT的键值存储采用一致的哈希函数,将数据项的键和存储设备的地址都转化为的哈希值,当哈希值“接近”时,再将数据项分配到不同的存储设备中。虽然基于DHT的键值存储可以简单地平衡节点之间的工作负载,但由于一致性哈希破坏了数据局部性,因此不能有效地支持范围查询。对于集中式和分布式负载均衡方法,现有研究大多采用NBRADJUST(相邻节点调节)和REORDER(重新排列)的组合作为基本机制。
本申请的发明人发现,NBRADJUST和REORDER的组合机制进行负载均衡时数据移动的开销比较大。为了与过载节点共享负载,负载不足的节点必须首先将其所有负载转移到邻居。这种数据移动可以被视为开销和“不必要的”。相应地,“不必要的”数据移动所消耗的时间可以被认为是时间开销。更糟糕的是,在负载不足的节点将其负载转移到邻居后,邻居可能会成为新的过载节点,负载均衡过程必须迭代进行,这可能需要大量时间才能收敛。因此,亟需一种能够有效合理地进行负载均衡,大大减少了数据开销,提高了负载均衡效率的云存储负载均衡方法。
发明内容
鉴于上述问题,本发明实施例提供了一种云存储负载均衡方法、装置、设备及计算机可读存储介质,用于解决现有技术中存在的数据开销较大,无法合理有效地进行负载均衡的技术问题。
根据本发明实施例的一个方面,提供了一种云存储负载均衡方法,所述方法包括:
在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;所述当前物理节点为多个物理节点中的一个,每个所述物理节点中存在多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点;
当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;
当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
在一种可选的方式中,所述在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作,包括:
当所述当前物理节点的第一过载比值大于预设过载阈值时,确定所述当前物理节点过载;其中,
所述第一过载比值为所述当前物理节点中非空虚拟节点占所述当前物理节点中所有虚拟节点的比值;所述预设过载阈值为所有物理节点的非空虚拟节点占所有虚拟节点的比值。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点中的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点,包括:
当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点;所述Chord环覆盖网络包括所有物理节点的各个非空虚拟节点和空虚拟节点;各个所述空虚拟节点位于相邻区域;
将所述当前物理节点内需要拆分数据的的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点之前,所述方法还包括:
确定各个物理节点内各个非空虚拟节点及各个空虚拟节点;
为每一个非空虚拟节点和每一个空虚拟节点分别分配对应的键区间,以形成所述Chord环覆盖网络;各个所述空虚拟节点的键区间相邻设置。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点,包括:
所述当前物理节点内需要拆分数据的非空虚拟节点,在空虚拟节点键范围内生成一个随机数;所述空虚拟节点键范围为所有非空虚拟节点对应的键区间的集合;
根据所述随机数在所述Chord环覆盖网络中查询其它物理节点的空虚拟节点,以得到其它物理节点内可以接收所述数据的空虚拟节点。
在一种可选的方式中,所述将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点内的空虚拟节点,包括:
按照预设的拆分规则,将所述当前物理节点内需要拆分数据的非空虚拟节点的数据拆分至所述其它物理节点内的空虚拟节点;
并将所述当前物理节点内需要拆分数据的非空虚拟节点的邻居的信息发送给所述其它物理节点内的空虚拟节点,使所述其它物理节点内的空虚拟节点在所述Chord环覆盖网络中的位置调整为所述当前物理节点内需要拆分数据的非空虚拟节点的邻居位置。
在一种可选的方式中,所述方法还包括:
在非空虚拟节点因数据删除而小于预设负载下限阈值时,根据所述非空虚拟节点在Chord环覆盖网络中邻居非空虚拟节点的负载,确定是否进行数据合并;
当所述非空虚拟节点的负载及所述邻居非空虚拟节点的负载之和小于负载上限阈值时,将所述非空虚拟节点与所述邻居非空虚拟节点进行数据合并;
将合并后的数据存储于所述邻居非空虚拟节点,并将所述非空虚拟节点在Chord环覆盖网络中调整为空虚拟节点。
根据本发明实施例的另一方面,提供了一种云存储负载均衡装置,包括:
触发模块,用于在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;所述当前物理节点为多个物理节点中的一个,每个所述物理节点中存在多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点;
第一拆分模块,用于当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;
第二拆分模块,用于当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
根据本发明实施例的另一方面,提供了一种云存储负载均衡设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行所述的云存储负载均衡方法的操作。
根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在云存储负载均衡设备上运行时,使得云存储负载均衡设备执行所述的云存储负载均衡方法的操作。
本发明实施例通过在各个物理节点中设置多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点。在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点,能够有效合理地进行负载均衡,大大减少了数据开销,提高了负载均衡效率。进一步地,构建覆盖网络与虚拟节点实现自组织,同时保持数据项的顺序,本地动态保持非空虚拟节点负载在一定范围内,实时评估物理节点的系统平均负载,发现负载不足的物理节点为过载的节点分担工作量。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的云存储负载均衡方法的流程示意图;
图2示出了现有的云存储负载均衡方法的示意图;
图3示出了本发明实施例提供的云存储负载均衡方法中Chord环覆盖网络的结构示意图;
图4示出了本发明实施例提供的云存储负载均衡装置的结构示意图;
图5示出了本发明实施例提供的云存储负载均衡设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
首先对本申请的对现有技术及存在的问题进行进一步详细阐述:
用于社交网络和物联网等语义丰富的应用程序的大数据处理日益普及,使得范围可查询的云存储变得越来越重要。为了支持范围查询,数据局部性被严格保留,这使得节点之间的负载均衡成为一项具有挑战性的任务。
由于出色的负载均衡特性,基于DHT的键值存储成为最流行的云存储技术之一。基于DHT的键值存储采用一致的哈希函数,将数据项的键和存储设备的地址都转化为的哈希值,当哈希值“接近”时,再将数据项分配到不同的存储设备中。虽然基于DHT的键值存储可以简单地平衡节点之间的工作负载,但由于一致性哈希破坏了数据局部性,因此不能有效地支持范围查询。具体来说,在基于DHT的键值存储中,语义相似的数据项在物理上总是相距很远,因此很难执行对社交网络和物联网服务非常重要的范围查询。为了支持范围查询,必须保留键的顺序。图2显示了范围可查询云存储的简单图像,可以看到每个存储节点都有一个责任范围,不同节点的责任范围不重叠。当且仅当数据项的键落在该节点的负责范围内时,数据项才会存储在特定的存储节点中。由于数据分布不均,数据插入和删除不均,需要调整存储节点的责任范围以维持负载均衡。目前现有的可查询云存储系统采用中央管理节点来管理元数据信息物理节点和数据项,并做出负载均衡决策。还有一些系统采用分布式负载均衡方法。在这些系统中,存储节点形成一个范围可查询的P2P网络来实现自组织。存储节点交换负载信息并独立做出负载均衡决策。对于集中式和分布式负载均衡方法,现有研究大多采用NBRADJUST(非平衡率调节操作项)和REORDER的组合作为基本机制。
使用NBRADJUST,过载节点可以将其负载的一部分转移到邻居。在一个系统中N节点,使用NBRADJUST进行负载均衡的时间复杂度为O(N),因为NBRADJUST只能在相邻节点之间进行。由于性能原因,REORDER很少用作单一的负载平衡机制,总是用作NBRADJUST方法的补充。使用REORDER方法,负载不足的节点首先执行NBRADJUST操作以将其负载移动到邻居(无论邻居是过载还是负载不足),然后离开系统并作为过载节点的邻居再次加入。重新加入后,过载节点可以使用NBRADJUST操作将其负载的一部分移动到这个新的空邻居。
NBRADJUST和REORDER的组合机制存在的主要问题数据移动的开销比较大。为了与过载节点共享负载,负载不足的节点必须首先将其所有负载转移到邻居。这种数据移动可以被视为开销和“不必要的”。相应地,“不必要的”数据移动所消耗的时间可以被认为是时间开销。更糟糕的是,在负载不足的节点将其负载转移到邻居后,邻居可能会成为新的过载节点,负载均衡过程必须迭代进行,这可能需要大量时间才能收敛。
基于此,本发明实施例提出一种云存储负载均衡方法,将每个物理节点划分为多个具有相同容量得虚拟节点,并构造范围内可查询的P2P网络,该网络是虚拟节点级别而不是物理节点级别。让每个物理节点中的一些虚拟节点充满数据项,而其他的则为空。通过将每个非空虚拟节点的负载保持在一定范围内,物理节点的负载可以近似为非空虚拟节点占其内部虚拟节点总数的比值。通过这种近似,可以认为如果一个物理节点包含太多的非空虚拟节点而只有少数几个空虚拟节点,则它是过载的。为了平衡过载物理节点和负载不足物理节点之间的负载,可以简单地将负载从过载物理节点中的非空虚拟节点移动到负载不足物理节点中的空虚拟节点。
图1示出了本发明实施例提供的云存储负载均衡方法的流程图,该方法由云存储负载均衡设备执行。该云存储负载均衡设备可以是计算机设备、云存储设备、云计算设备、智能终端等,本发明实施例不做具体限制。如图1所示,该方法包括以下步骤:
步骤110:在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;所述当前物理节点为多个物理节点中的一个,每个所述物理节点中存在多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点。
本发明实施例预先构建云存储系统以及该云存储系统的Chord环覆盖网络。该云存储系统为由一组存储节点组成的大规模分布式云存储系统。将每个物理节点划分为多个具有相同容量得虚拟节点。其中,将物理节点集合表示为P,P={p1,p2,…,pn};将每个物理节点划分为多个虚拟节点,所有虚拟节点集合表示为V,V={v1,v2,…,vm}。让每个物理节点中的一些虚拟节点充满数据项,而其他的则为空。本发明实施例还构造该云存储系统的Chord环覆盖网络(Chord算法是DHT(Distributed Hash Table)的一种经典实现),构造范围内可查询的P2P网络,该Chord环覆盖网络是虚拟节点级别,而非物理节点级别。其中,通过确定各个物理节点内各个非空虚拟节点及各个空虚拟节点,为每一个非空虚拟节点和每一个空虚拟节点分别分配对应的键区间,使各个所述空虚拟节点的键区间相邻设置,以形成所述Chord环覆盖网络,所述Chord环覆盖网络包括所有物理节点的各个非空虚拟节点和空虚拟节点;各个所述空虚拟节点位于相邻区域。其中,该键区间用于查询使用,也即输入一个键值K,查询该键值K落在哪个键区间内,则确定哪个键区间对应的虚拟节点为查询结果。其中,非空虚拟节点的键区间根据其所存储的数据项的键的上限和下限得到,空虚拟节点的键区间为除非空虚拟节点的键区间之外的键区间,可以预先设置。具体地,构建一个覆盖所有虚拟节点的Chord环,以分布式的方式支持范围查询,其中在Chord环中,所有覆盖节点(虚拟节点)都通过一个双向环连接起来,每一个覆盖节点在环中的位置是由它负责的范围决定的。为了加速数据检索,本发明实施例中每个覆盖节点在多个级别均有一个手指表。为计算手指表中的第i个手指,覆盖节点要求它的(i-1)个手指指向的远端节点为它的(i-1)个手指。第i级的手指被设置为第i-1级的手指指针,例如第0级为该节点的直接相邻节点,第1级就是该节点间隔1个节点后的那个节点。在最低级别,手指指的是直接继承人,也就是直接相邻节点。
为使用Chord环,将数据项的键空间连续分区,并将每个分区分配给一个虚拟节点。虚拟节点以分区的下界为键,以整个分区为负责范围。本发明实施例中,Chord环覆盖网络包括空虚拟节点和非空虚拟节点。为了区别于非空虚拟节点,使用非空虚拟节点从未使用过的键和范围来为空虚拟节点赋值。为了不失一般性,假设(-1,0)内的实数从不用作数据项的键,也不用作非空虚拟节点的键。图3为本发明实施例提出的基于覆盖的云存储系统架构,其中所有空虚拟节点都位于一个相邻区域,称之为空虚拟节点池(EVNP)。在图3中,使用不同的颜色来表示虚拟节点所指向的物理节点。
通过以上方式,构建得到云存储系统以及该云存储系统的Chord环覆盖网络。
其中,负载均衡的目的是在物理节点之间分配数据项,使得一个物理节点的负载与其容量成正比,目标是最小化式(2):
其中,为物理节点pi的预期负载,lpi表示作为物理节点pi的负载,ci示作为物理节点pi的容量,虚拟节点vj的负载表示为lvj,虚拟节点vj的容量表示为c(V),ci和lpi表示作为物理节点pi的容量和负载;虚拟节点vj的负载表示为lvj,容量表示为c(V),其中物理节点的容量可以为任意大小,但虚拟节点的容量都是大小相同的;Vi表示物理节点pi中的虚拟节点集;VNE表示整个系统中的非空虚拟节点集;Vi NE表示物理节点pi中的非空虚拟节点集合。一般平衡过载物理节点和欠载物理节点之间负载的基本思想是将过载物理节点中的非空虚拟节点中的数据移动到欠载物理节点中的空虚拟节点。与NBRADJUST中涉及的物理节点必须是相邻节点不同,本发明实施例将责任范围分配给虚拟节点而不是物理节点,因此“交换”可以是在任意一对物理节点之间进行。“交换”有助于负载平衡的前提条件是非空虚拟节点必须具有适度的工作负载。考虑到有许多非空虚拟节点只存储了少量数据项,那么仅将少量数据项从过载的物理节点移动到负载不足的物理节点将需要多次交换操作。此外,允许非空虚拟节点仅存储少量数据项,使得覆盖网络效率低下,对物理资源浪费严重。因此,本发明实施例设置lb为非空虚拟节点的负载下限,ub为非空虚拟节点的负载上限,二者满足以下公式:
ub=c(V)=(2+ε)lb (3)
其中,ε为实数,在任意时刻,虚拟节点的负载vi必须满足lb≤li≤ub,否则,将触发负载均衡操作。给定虚拟节点的负载范围,可得到方程近似值如下:
其中,为μ。μ显示Chord环覆盖网络中所有非空虚拟节点和所有虚拟节点的比值。对于任意物理节点pi,非空虚拟节点占其中所有虚拟节点的比值为μi。引入阈值参数λ∈(0,1),为触发负载均衡操作的阈值参数。
如果μi大于μ(1+λ),则认为过载,如果μi小于μ(1-λ),则认为欠载。负载不足的物理节点不需要做任何事情,而是等待来自过载的物理节点的请求。当任意物理节点pi过载,会启动“交换”过程。
因此,本发明实施例通过将每个非空虚拟节点的负载保持在一定范围内,物理节点的负载可以近似为非空虚拟节点占其内部虚拟节点总数的比值。通过这种近似,可以认为如果一个物理节点包含太多的非空虚拟节点而只有少数几个空虚拟节点,则它是过载的。也即,当所述当前物理节点的第一过载比值大于预设过载阈值时,确定所述当前物理节点过载。该第一过载比值为所述当前物理节点中非空虚拟节点占所述当前物理节点中所有虚拟节点的比值;所述预设过载阈值为所有物理节点的非空虚拟节点占所有虚拟节点的比值。
步骤120:当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点。
其中,为了平衡过载物理节点和负载不足物理节点之间的负载,可以简单地将负载从过载物理节点中的非空虚拟节点移动到负载不足物理节点中的空虚拟节点。
具体地,当当前物理节点的第一过载比值lj由于数据插入而接近预设过载阈值μi时,对插入该数据的非空虚拟节点vj触发拆分操作。要执行拆分操作,非空虚拟节点vj应首先找到一个空虚拟节点。如果有空虚拟节点vk和非空虚拟节点vj在同一个物理节点中,也即当前物理节点内存在空虚拟节点,则非空虚拟节点vj将向空虚拟节点vk发送拆分请求。非空虚拟节点vj按照预设的数据拆分规则将数据拆分给当前物理节点内存在空虚拟节点vj,具体可以是拆分负载的一半也即到空虚拟节点vk。为了不失一般性,本发明实施例中将非空虚拟节点vj将键较大的数据项移动到空虚拟节点vk。
步骤130:当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
其中,当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点;将所述当前物理节点内需要拆分数据的的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。本发明实施例中,所述当前物理节点内需要拆分数据的非空虚拟节点在空虚拟节点键范围内生成一个随机数,根据所述随机数在所述Chord环覆盖网络中查询其它物理节点的空虚拟节点,以得到其它物理节点内可以接收所述数据的空虚拟节点。其中,该空虚拟节点键范围为所有非空虚拟节点对应的键区间的集合。然后按照预设的拆分规则,将所述当前物理节点内需要拆分数据的非空虚拟节点的数据拆分至所述其它物理节点内的空虚拟节点;并将所述当前物理节点内需要拆分数据的非空虚拟节点的邻居的信息发送给所述其它物理节点内的空虚拟节点,使所述其它物理节点内的空虚拟节点在所述Chord环覆盖网络中的位置调整为所述当前物理节点内需要拆分数据的非空虚拟节点的邻居位置。具体地,如果没有空虚拟节点和所述当前物理节点的非空虚拟节点vj在同一个物理节点中,非空虚拟节点vj将在(-1,0)内生成一个随机数(查询键值),比如K,并向Chord环覆盖网络发送对查询键值K的查询。本发明实施例中,不论是否存在查询键值对应的空虚拟节点,都会有一个空虚拟节点响应。也即无论键值为K的空虚拟节点是否存在,一些空虚拟节点会响应非空虚拟节点vj。假设响应节点是空虚拟节点vk,则非空虚拟节点vj将拆分负载的一半(即)到空虚拟节点vk。为不失一般性,让vj将键较大的数据项移动到vk。
本发明实施例中,除了数据项传输,还同步更新Chord环覆盖网络,将所述当前物理节点内需要拆分数据的非空虚拟节点的邻居的信息发送给所述其它物理节点内的空虚拟节点,使所述其它物理节点内的空虚拟节点在所述Chord环覆盖网络中的位置调整为所述当前物理节点内需要拆分数据的非空虚拟节点的邻居位置。具体地,非空虚拟节点vj还将其右侧邻居的信息发送给空虚拟节点vk,并将其在Chord环覆盖网络的0级右侧邻居更改为虚拟节点vk。由于虚拟节点vk接收到数据后,成为了一个非空虚拟节点,其将离开覆盖网络中的原始位置,使用虚拟节点vk中数据项的键的下界作为键,并再次加入Chord环覆盖网络,作为vj的右侧覆盖邻居。
本发明实施例中,为实现负载均衡,还包括对数据进行合并和重新分配的操作。对于数据合并,在非空虚拟节点因数据删除而小于预设负载下限阈值时,根据所述非空虚拟节点在Chord环覆盖网络中邻居非空虚拟节点的负载,确定是否进行数据合并;当所述非空虚拟节点的负载及所述邻居非空虚拟节点的负载之和小于负载上限阈值时,将所述非空虚拟节点与所述邻居非空虚拟节点进行数据合并;将合并后的数据存储于所述邻居非空虚拟节点,并将所述非空虚拟节点在Chord环覆盖网络中调整为空虚拟节点。当当前物理节点的第一过载比值lj因为数据删除而小于预设过载阈值μi时,会触发合并和重新分配操作。是否触发合并或重新分配取决于非空虚拟节点vj在Chord环覆盖网络中的两个0级叠加邻居的负载。如果任意一个邻居的负载,比如虚拟节点vk,在lj+lk<ub,则会触发合并操作,vj会从vk中获取所有的数据项,最终虚拟节点vj变为非空虚拟节点,虚拟节点vk变为空虚拟节点。虚拟节点vk首先离开Chord环覆盖网络,然后在(-1,0)内生成一个随机键,并再次加入Chord环覆盖网络,其新覆盖位置是在非空虚拟节点的区域。
本发明实施例通过在各个物理节点中设置多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点。在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点,能够有效合理地进行负载均衡,大大减少了数据开销,提高了负载均衡效率。进一步地,构建覆盖网络与虚拟节点实现自组织,同时保持数据项的顺序,本地动态保持非空虚拟节点负载在一定范围内,实时评估物理节点的系统平均负载,发现负载不足的物理节点为过载的节点分担工作量。
图4示出了本发明实施例提供的云存储负载均衡装置的结构示意图。如图4所示,该装置300包括:
触发模块310,用于在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;所述当前物理节点为多个物理节点中的一个,每个所述物理节点中存在多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点;
第一拆分模块,用于当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;
第二拆分模块,用于当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
在一种可选的方式中,所述在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作,包括:
当所述当前物理节点的第一过载比值大于预设过载阈值时,确定所述当前物理节点过载;其中,
所述第一过载比值为所述当前物理节点中非空虚拟节点占所述当前物理节点中所有虚拟节点的比值;所述预设过载阈值为所有物理节点的非空虚拟节点占所有虚拟节点的比值。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点中的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点,包括:
当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点;所述Chord环覆盖网络包括所有物理节点的各个非空虚拟节点和空虚拟节点;各个所述空虚拟节点位于相邻区域;
将所述当前物理节点内需要拆分数据的的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点之前,所述方法还包括:
确定各个物理节点内各个非空虚拟节点及各个空虚拟节点;
为每一个非空虚拟节点和每一个空虚拟节点分别分配对应的键区间;各个所述空虚拟节点的键区间相邻设置。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点,包括:
所述当前物理节点内需要拆分数据的非空虚拟节点,在空虚拟节点键范围内生成一个随机数;所述空虚拟节点键范围为所有非空虚拟节点对应的键区间的集合;
根据所述随机数在所述Chord环覆盖网络中查询其它物理节点的空虚拟节点,以得到其它物理节点内可以接收所述数据的空虚拟节点。
在一种可选的方式中,所述将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点内的空虚拟节点,包括:
按照预设的拆分规则,将所述当前物理节点内需要拆分数据的非空虚拟节点的数据拆分至所述其它物理节点内的空虚拟节点;
并将所述当前物理节点内需要拆分数据的非空虚拟节点的邻居的信息发送给所述其它物理节点内的空虚拟节点,使所述其它物理节点内的空虚拟节点在所述Chord环覆盖网络中的位置调整为所述当前物理节点内需要拆分数据的非空虚拟节点的邻居位置。
在一种可选的方式中,所述装置还包括:
数据合并模块,用于在非空虚拟节点因数据删除而小于预设负载下限阈值时,根据所述非空虚拟节点在Chord环覆盖网络中邻居非空虚拟节点的负载,确定是否进行数据合并;当所述非空虚拟节点的负载及所述邻居非空虚拟节点的负载之和小于负载上限阈值时,将所述非空虚拟节点与所述邻居非空虚拟节点进行数据合并;将合并后的数据存储于所述邻居非空虚拟节点,并将所述非空虚拟节点在Chord环覆盖网络中调整为空虚拟节点。
本发明实施例的云存储负载均衡装置的具体工作过程与上述方法实施例的具体流程步骤大体一致,此处不再赘述。
本发明实施例通过在各个物理节点中设置多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点。在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点,能够有效合理地进行负载均衡,大大减少了数据开销,提高了负载均衡效率。进一步地,构建覆盖网络与虚拟节点实现自组织,同时保持数据项的顺序,本地动态保持非空虚拟节点负载在一定范围内,实时评估物理节点的系统平均负载,发现负载不足的物理节点为过载的节点分担工作量。
图5示出了本发明实施例提供的云存储负载均衡设备的结构示意图,本发明具体实施例并不对云存储负载均衡设备的具体实现做限定。
如图5所示,该云存储负载均衡设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。处理器402,用于执行程序410,具体可以执行上述用于云存储负载均衡方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机可执行指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。云存储负载均衡设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以被处理器402调用使云存储负载均衡设备执行以下操作:
在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;所述当前物理节点为多个物理节点中的一个,每个所述物理节点中存在多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点;
当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;
当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
在一种可选的方式中,所述在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作,包括:
当所述当前物理节点的第一过载比值大于预设过载阈值时,确定所述当前物理节点过载;其中,
所述第一过载比值为所述当前物理节点中非空虚拟节点占所述当前物理节点中所有虚拟节点的比值;所述预设过载阈值为所有物理节点的非空虚拟节点占所有虚拟节点的比值。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点中的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点,包括:
当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点;所述Chord环覆盖网络包括所有物理节点的各个非空虚拟节点和空虚拟节点;各个所述空虚拟节点位于相邻区域;
将所述当前物理节点内需要拆分数据的的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点之前,所述方法还包括:
确定各个物理节点内各个非空虚拟节点及各个空虚拟节点;
为每一个非空虚拟节点和每一个空虚拟节点分别分配对应的键区间;各个所述空虚拟节点的键区间相邻设置。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点,包括:
所述当前物理节点内需要拆分数据的非空虚拟节点,在空虚拟节点键范围内生成一个随机数;所述空虚拟节点键范围为所有非空虚拟节点对应的键区间的集合;
根据所述随机数在所述Chord环覆盖网络中查询其它物理节点的空虚拟节点,以得到其它物理节点内可以接收所述数据的空虚拟节点。
在一种可选的方式中,所述将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点内的空虚拟节点,包括:
按照预设的拆分规则,将所述当前物理节点内需要拆分数据的非空虚拟节点的数据拆分至所述其它物理节点内的空虚拟节点;
并将所述当前物理节点内需要拆分数据的非空虚拟节点的邻居的信息发送给所述其它物理节点内的空虚拟节点,使所述其它物理节点内的空虚拟节点在所述Chord环覆盖网络中的位置调整为所述当前物理节点内需要拆分数据的非空虚拟节点的邻居位置。
在一种可选的方式中,所述方法还包括:
在非空虚拟节点因数据删除而小于预设负载下限阈值时,根据所述非空虚拟节点在Chord环覆盖网络中邻居非空虚拟节点的负载,确定是否进行数据合并;
当所述非空虚拟节点的负载及所述邻居非空虚拟节点的负载之和小于负载上限阈值时,将所述非空虚拟节点与所述邻居非空虚拟节点进行数据合并;
将合并后的数据存储于所述邻居非空虚拟节点,并将所述非空虚拟节点在Chord环覆盖网络中调整为空虚拟节点。
本发明实施例通过在各个物理节点中设置多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点。在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点,能够有效合理地进行负载均衡,大大减少了数据开销,提高了负载均衡效率。进一步地,构建覆盖网络与虚拟节点实现自组织,同时保持数据项的顺序,本地动态保持非空虚拟节点负载在一定范围内,实时评估物理节点的系统平均负载,发现负载不足的物理节点为过载的节点分担工作量。
本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在云存储负载均衡设备上运行时,使得所述云存储负载均衡设备执行上述任意方法实施例中的云存储负载均衡方法。
可执行指令具体可以用于使得云存储负载均衡设备执行以下操作:
在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;所述当前物理节点为多个物理节点中的一个,每个所述物理节点中存在多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点;
当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;
当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
在一种可选的方式中,所述在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作,包括:
当所述当前物理节点的第一过载比值大于预设过载阈值时,确定所述当前物理节点过载;其中,
所述第一过载比值为所述当前物理节点中非空虚拟节点占所述当前物理节点中所有虚拟节点的比值;所述预设过载阈值为所有物理节点的非空虚拟节点占所有虚拟节点的比值。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点中的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点,包括:
当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点;所述Chord环覆盖网络包括所有物理节点的各个非空虚拟节点和空虚拟节点;各个所述空虚拟节点位于相邻区域;
将所述当前物理节点内需要拆分数据的的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点之前,所述方法还包括:
确定各个物理节点内各个非空虚拟节点及各个空虚拟节点;
为每一个非空虚拟节点和每一个空虚拟节点分别分配对应的键区间;各个所述空虚拟节点的键区间相邻设置。
在一种可选的方式中,所述当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点,包括:
所述当前物理节点内需要拆分数据的非空虚拟节点,在空虚拟节点键范围内生成一个随机数;所述空虚拟节点键范围为所有非空虚拟节点对应的键区间的集合;
根据所述随机数在所述Chord环覆盖网络中查询其它物理节点的空虚拟节点,以得到其它物理节点内可以接收所述数据的空虚拟节点。
在一种可选的方式中,所述将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点内的空虚拟节点,包括:
按照预设的拆分规则,将所述当前物理节点内需要拆分数据的非空虚拟节点的数据拆分至所述其它物理节点内的空虚拟节点;
并将所述当前物理节点内需要拆分数据的非空虚拟节点的邻居的信息发送给所述其它物理节点内的空虚拟节点,使所述其它物理节点内的空虚拟节点在所述Chord环覆盖网络中的位置调整为所述当前物理节点内需要拆分数据的非空虚拟节点的邻居位置。
在一种可选的方式中,所述方法还包括:
在非空虚拟节点因数据删除而小于预设负载下限阈值时,根据所述非空虚拟节点在Chord环覆盖网络中邻居非空虚拟节点的负载,确定是否进行数据合并;
当所述非空虚拟节点的负载及所述邻居非空虚拟节点的负载之和小于负载上限阈值时,将所述非空虚拟节点与所述邻居非空虚拟节点进行数据合并;
将合并后的数据存储于所述邻居非空虚拟节点,并将所述非空虚拟节点在Chord环覆盖网络中调整为空虚拟节点。
本发明实施例通过在各个物理节点中设置多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点。在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点,能够有效合理地进行负载均衡,大大减少了数据开销,提高了负载均衡效率。进一步地,构建覆盖网络与虚拟节点实现自组织,同时保持数据项的顺序,本地动态保持非空虚拟节点负载在一定范围内,实时评估物理节点的系统平均负载,发现负载不足的物理节点为过载的节点分担工作量。
本发明实施例提供一种云存储负载均衡装置,用于执行上述云存储负载均衡方法。
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使云存储负载均衡设备执行上述任意方法实施例中的云存储负载均衡方法。
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的云存储负载均衡方法。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
Claims (10)
1.一种云存储负载均衡方法,其特征在于,所述方法包括:
在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;所述当前物理节点为多个物理节点中的一个,每个所述物理节点中存在多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点;
当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;
当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
2.根据权利要求1所述的方法,其特征在于,所述在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作,包括:
当所述当前物理节点的第一过载比值大于预设过载阈值时,确定所述当前物理节点过载;其中,
所述第一过载比值为所述当前物理节点中非空虚拟节点占所述当前物理节点中所有虚拟节点的比值;所述预设过载阈值为所有物理节点的非空虚拟节点占所有虚拟节点的比值。
3.根据权利要求2所述的方法,其特征在于,所述当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点中的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点,包括:
当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点;所述Chord环覆盖网络包括所有物理节点的各个非空虚拟节点和空虚拟节点;各个所述空虚拟节点位于相邻区域;
将所述当前物理节点内需要拆分数据的的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
4.根据权利要求3所述的方法,其特征在于,所述当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点之前,所述方法还包括:
确定各个物理节点内各个非空虚拟节点及各个空虚拟节点;
为每一个非空虚拟节点和每一个空虚拟节点分别分配对应的键区间,以形成所述Chord环覆盖网络;各个所述空虚拟节点的键区间相邻设置。
5.根据权利要求3所述的方法,其特征在于,所述当所述当前物理节点内不存在空虚拟节点时,通过Chord环覆盖网络查询其它物理节点中的空虚拟节点,包括:
所述当前物理节点内需要拆分数据的非空虚拟节点,在空虚拟节点键范围内生成一个随机数;所述空虚拟节点键范围为所有非空虚拟节点对应的键区间的集合;
根据所述随机数在所述Chord环覆盖网络中查询其它物理节点的空虚拟节点,以得到其它物理节点内可以接收所述数据的空虚拟节点。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点内的空虚拟节点,包括:
按照预设的拆分规则,将所述当前物理节点内需要拆分数据的非空虚拟节点的数据拆分至所述其它物理节点内的空虚拟节点;
并将所述当前物理节点内需要拆分数据的非空虚拟节点的邻居的信息发送给所述其它物理节点内的空虚拟节点,使所述其它物理节点内的空虚拟节点在所述Chord环覆盖网络中的位置调整为所述当前物理节点内需要拆分数据的非空虚拟节点的邻居位置。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
在非空虚拟节点因数据删除而小于预设负载下限阈值时,根据所述非空虚拟节点在Chord环覆盖网络中邻居非空虚拟节点的负载,确定是否进行数据合并;
当所述非空虚拟节点的负载及所述邻居非空虚拟节点的负载之和小于负载上限阈值时,将所述非空虚拟节点与所述邻居非空虚拟节点进行数据合并;
将合并后的数据存储于所述邻居非空虚拟节点,并将所述非空虚拟节点在Chord环覆盖网络中调整为空虚拟节点。
8.一种云存储负载均衡装置,其特征在于,所述装置包括:
触发模块,用于在当前物理节点过载时,所述当前物理节点内的非空虚拟节点触发数据拆分操作;所述当前物理节点为多个物理节点中的一个,每个所述物理节点中存在多个虚拟节点,所述虚拟节点包括非空虚拟节点和空虚拟节点;
第一拆分模块,用于当所述当前物理节点内存在空虚拟节点时,将所述当前物理节点内的非空虚拟节点的数据拆分至所述当前物理节点中的空虚拟节点;
第二拆分模块,用于当所述当前物理节点内不存在空虚拟节点时,查找其它物理节点内的空虚拟节点,将所述当前物理节点内的非空虚拟节点的数据拆分至所述其它物理节点中的空虚拟节点。
9.一种云存储负载均衡设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7任意一项所述的云存储负载均衡方法的操作。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令在云存储负载均衡设备上运行时,使得云存储负载均衡设备执行如权利要求1-7任意一项所述的云存储负载均衡方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211500036.7A CN116264574A (zh) | 2022-11-28 | 2022-11-28 | 云存储负载均衡方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211500036.7A CN116264574A (zh) | 2022-11-28 | 2022-11-28 | 云存储负载均衡方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116264574A true CN116264574A (zh) | 2023-06-16 |
Family
ID=86723729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211500036.7A Pending CN116264574A (zh) | 2022-11-28 | 2022-11-28 | 云存储负载均衡方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116264574A (zh) |
-
2022
- 2022-11-28 CN CN202211500036.7A patent/CN116264574A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Godfrey et al. | Load balancing in dynamic structured P2P systems | |
Aspnes et al. | Load balancing and locality in range-queriable data structures | |
KR101928529B1 (ko) | 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법 | |
CN101465875B (zh) | 一种基于网络定位的负载均衡方法 | |
Mirsadeghi et al. | Exploiting common neighborhoods to optimize MPI neighborhood collectives | |
JP2013532333A (ja) | サーバクラスター | |
Schütt et al. | A structured overlay for multi-dimensional range queries | |
JP2022111013A (ja) | 通信ネットワークにおけるコンシステントハッシングの実現方法 | |
Qiu et al. | Mammoth data in the cloud: clustering social images | |
Shao et al. | Effective load balancing mechanism for heterogeneous range queriable cloud storage | |
CN116264574A (zh) | 云存储负载均衡方法、装置、设备及存储介质 | |
Datta et al. | On de Bruijn routing in distributed hash tables: there and back again | |
Cao et al. | Load-balancing schemes for a hierarchical peer-to-peer file search system | |
Shi et al. | Smart shuffling in MapReduce: a solution to balance network traffic and workloads | |
Bustos-Jimenez et al. | Balancing active objects on a peer to peer infrastructure | |
Sioutas et al. | ART^++: A Fault-Tolerant Decentralized Tree Structure with Ultimate Sub-logarithmic Efficiency | |
Zhang et al. | A data transmission algorithm for distributed computing system based on maximum flow | |
JP6566822B2 (ja) | 範囲検索可能なクラウドストレージにおける負荷分散方法 | |
Li et al. | The Performance Optimization of Big Data Processing by Adaptive MapReduce Workflow | |
Sangar et al. | A decentralized approach for homogenizing load distribution: in cloud data center based on stable marriage matching | |
Gao et al. | An efficient and scalable multi-dimensional indexing scheme for modular data centers | |
Cambazoglu et al. | Data-parallel Web crawling models | |
Santana-Santana et al. | Load balancing algorithms with partial information management for the dlml library | |
Jacob | Efficient Load Balancing in Peer-to-Peer Systems with Partial knowledge of the System | |
Yang et al. | A Load Balancing Method Based on Node Features in a Heterogeneous Hadoop Cluster |
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 |