CN110830562B - 一种基于虚拟节点的有限负载一致性哈希负载均衡策略 - Google Patents

一种基于虚拟节点的有限负载一致性哈希负载均衡策略 Download PDF

Info

Publication number
CN110830562B
CN110830562B CN201911044751.2A CN201911044751A CN110830562B CN 110830562 B CN110830562 B CN 110830562B CN 201911044751 A CN201911044751 A CN 201911044751A CN 110830562 B CN110830562 B CN 110830562B
Authority
CN
China
Prior art keywords
node
load
virtual
follows
cache
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
Application number
CN201911044751.2A
Other languages
English (en)
Other versions
CN110830562A (zh
Inventor
向敏
江雨舟
夏中
周闰
雷儒杰
王鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing University of Post and Telecommunications
Original Assignee
Chongqing University of Post and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN201911044751.2A priority Critical patent/CN110830562B/zh
Publication of CN110830562A publication Critical patent/CN110830562A/zh
Application granted granted Critical
Publication of CN110830562B publication Critical patent/CN110830562B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明属于网络集群与网络化控制技术领域,涉及一种基于虚拟节点的有限负载一致性哈希负载均衡策略,将缓存节点内存大小、CPU内核总数及磁盘大小作为独立信息数据波动赋权法的输入指标,计算各缓存节点性能量化值及性能量化值占比,根据设定的虚拟节点总数得到各缓存节点的虚拟节点数,将一致性哈希环均分为m段弧,利用Random函数为每个缓存节点生成对应数目的虚拟节点,按比例映射到每段弧上,负载均衡器更新集群缓存代理的负载量及各缓存节点的负载上限,在一致性哈希环上选择虚拟节点,利用拥有该虚拟节点的缓存节点进行服务。本发明解决了原策略负载分配不均和不支持异构集群缓存代理的问题,有效减少骨干网带宽占用率和集群缓存代理响应时间。

Description

一种基于虚拟节点的有限负载一致性哈希负载均衡策略
技术领域
本发明涉及网络集群与网络化控制技术领域,尤其涉及一种基于虚拟节点的有限负载一致性哈希负载均衡策略。
背景技术
伴随着互联网飞速发展的势头,网络应用已涉及人们日常生活的方方面面,网络流量呈指数级增长,传统的单体Web服务器架构难以应付当前多网络环境下的高并发请求,服务器负载压力持续增加。与此同时,随着JavaScript、CSS、JSON以及其他多媒体技术的发展,如今的互联网数据传输类型已不再是简单的文本数据,图片和视频数据正处于快速增长阶段,其所占网络总流量百分比逐年快速上升,导致了骨干网带宽紧张和用户访问时延增加。
集群缓存代理是指实现缓存机制的一组代理服务器,通过在骨干网边缘部署缓存节点,为用户提供服务,其目的是节约骨干网带宽资源并降低用户访问时延。目前,针对于集群缓存代理的研究主要停留在缓存预取策略和缓存替换策略上,其目的以节约内存空间、提高缓存命中率为主,而关于集群缓存代理负载均衡相关的研究较少。负载均衡就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,面对日益膨胀的网络工作,负载均衡性决定了集群缓存代理性能的优劣。如果负载均衡性较差,可能导致缓存节点利用率低,影响用户体验。因此,目前亟需一种有状态性负载均衡策略,在保证集群缓存代理负载均衡性的同时,维持其较高的缓存命中率,以节约骨干网带宽并加快集群缓存代理响应速度。
发明内容
有鉴于此,本发明的目的是提供一种基于虚拟节点的有限负载一致性哈希负载均衡策略,其通过在有限负载一致性哈希策略中引入虚拟节点,解决其负载均衡性受节点映射分散性影响的不足,并使其同时支持同构和异构集群缓存代理。
本发明通过以下技术手段解决上述技术问题:
一种基于虚拟节点的有限负载一致性哈希负载均衡策略,所述策略包括如下步骤:
S1.将缓存节点内存大小、处理器内核总数及磁盘大小作为独立信息数据波动赋权法的输入指标,计算各缓存节点性能量化值及性能量化值占比;
S2.设置虚拟节点总数为缓存节点个数的200-300倍,根据虚拟节点总数和步骤S1中缓存节点性能量化值占比,计算各缓存节点应分得的虚拟节点数;
S3.利用Random函数为每个缓存节点生成对应数目的虚拟节点;
S4.计算各缓存节点拥有虚拟节点数的最大公约数m,将一致性哈希环均分为m段弧。通过MD5函数,将各缓存节点拥有的虚拟节点均匀映射到一致性哈希环的各段弧上;
S5.请求到达负载均衡器时,负载均衡器更新集群缓存代理负载量和各缓存节点负载上限值;
S6.将请求的URL作为S4中MD5函数的输入,利用有限负载一致性哈希的请求分配策略在一致性哈希环上选择虚拟节点,并利用拥有该虚拟节点的缓存节点进行服务。
进一步,步骤S1中,利用独立信息数据波动赋权法计算各缓存节点性能量化值及性能量化值占比的具体过程为:
S11.计算指标j的离差系数Vj,计算公式如下:
Figure BDA0002253830930000021
其中,δj表示指标j的标准差,
Figure BDA0002253830930000022
表示指标j的均值,j∈[1,3];
S12.遍历所有指标,依次将指标j作为函数输出,其他指标作为输入进行回归运算,得到指标j的决定系数
Figure BDA0002253830930000023
和独立信息程度Dj
S13.归一化Vj得到Vj′,归一化Dj得到Dj′,计算公式如下:
Figure BDA0002253830930000024
Figure BDA0002253830930000025
其中,max(Vj)表示各缓存节点指标j的最大离差系数,max(Dj)表示各缓存节点指标j的最大独立信息程度;
S14:计算指标j的纯量信息Ij,计算公式如下:
Ij=Vj′×Dj
S15:计算指标j的权重值Wj,计算公式如下:
Figure BDA0002253830930000031
其中,i表示指标个数。
S16.计算指标j的归一化值Qj,计算公式如下:
Figure BDA0002253830930000032
其中,Tj表示指标j包含的样本集,Max(Tj)表示指标j的最大值。
S17:将Qj与该指标权重值Wj线性加权,得到缓存节点n的性能量化值Fn,计算公式如下:
Figure BDA0002253830930000033
其中,n∈[1,s],s表示缓存节点数目。
S18:计算缓存节点n的性能量化值占比θn,计算公式如下:
Figure BDA0002253830930000034
进一步,所述指标j的决定系数
Figure BDA0002253830930000035
和独立信息程度Dj获取过程如下:设置s组观察值,每组观察值包含内存大小、处理器内核总数及硬盘大小三个指标,它们之间相互影响,构建评价矩阵As×3,计算公式如下:
Figure BDA0002253830930000036
求得指标j的平均值
Figure BDA0002253830930000037
计算公式如下:
Figure BDA0002253830930000038
其中,j∈[1,3]。
将指标j作为因变量,其余指标作为自变量,可以得到多元线性回归模型如下所示:
Figure BDA0002253830930000039
其中,β0~3表示回归系数,ε是均值为0、方差为σ2(σ>0)的随机变量。
求得回归系数后,带入自变量可以得到自变量与因变量的线性关系如下式所示:
Figure BDA0002253830930000041
其中,
Figure BDA0002253830930000042
为因变量线性回归后的结果。
可得指标j的复相关系数Rj和独立信息程度Dj如下所示:
Figure BDA0002253830930000043
Figure BDA0002253830930000044
进一步,步骤S2中各个缓存节点分得的虚拟节点数目计算如下式所示:
Nn=Nt×θn
其中,Nt表示虚拟节点总数,设置为缓存节点个数s的200-300倍,Nn表示缓存节点n拥有的虚拟节点数。
进一步,所述S3步骤具体如下:
利用各缓存节点拥有的虚拟节点数构建矩阵N,如下式所示:
N=(N1 N2 … Nn … Ns-1 Ns)
利用Random函数并参照矩阵N中各元素值,为每个缓存节点随机生成对应数目的唯一虚拟节点主机号(IP:Port),如缓存节点1则需生成N1个主机号各不相同的虚拟节点,以此类推。
进一步,步骤S4中利用MD5函数将各缓存节点拥有的虚拟节点均匀映射到一致性哈希环各段弧上的过程具体为:
S41.计算矩阵N各元素的最大公约数m,将一致性哈希环均分为m段弧;
S42.计算每个缓存节点在每段弧上需要分配的虚拟节点数量,构成集合C,如下所示:
Figure BDA0002253830930000045
S43.计算一致性哈希环上每段弧的长度davg,计算公式如下:
Figure BDA0002253830930000046
其中,Hmax表示哈希环的最大值。
S44.定位当前弧区间编号k,初始值k=1;
S45.当前弧区间编号k是否大于m,如果大于m,则结束执行,虚拟节点映射完成;否则执行S46。
S46.计算当前弧区间起始坐标Bs,计算公式如下:
Figure BDA0002253830930000051
S47.循环各缓存节点,参照C中各元素值,为每个缓存节点随机取出对应数量的虚拟节点。将各虚拟节点主机号作为MD5函数输入,得到各虚拟节点哈希值,计算公式如下:
Hv=MD5(Sv)
其中,Sv表示第v个虚拟节点的主机号,Hv表示第v个虚拟节点的哈希值,v∈[1,Nt];
S48.将各虚拟节点映射到当前弧区间内,计算公式如下:
Figure BDA0002253830930000052
其中,Bc(v)表示第v个虚拟节点在当前弧上的位置。如果Bc(v)在当前弧上已被其他虚拟节点占用,则重新生成Sv后,执行S47;
S49.递增当前弧区间编号k,跳转至步骤S44。
进一步,步骤S5中各缓存节点负载上限计算过程具体为:
S51.新的请求到达负载均衡器后,首先计算集群缓存代理的总负载量Lt,计算公式如下:
Figure BDA0002253830930000053
其中,Ln表示当前时刻缓存节点n的负载量,Lnew表示当前时刻的新增负载量。
S52.计算集群缓存代理的平均负载Lavg,计算公式如下:
Figure BDA0002253830930000054
S53.计算集群缓存代理中各缓存节点的平均性能量化值Favg,计算公式如下:
Figure BDA0002253830930000055
S54.为每个缓存节点保留1.2倍的负载裕量,更新各缓存节点负载上限如下式所示:
Figure BDA0002253830930000056
其中,Lc(n)表示当前时刻缓存节点n的负载上限。
进一步,步骤S6中在一致性哈希环上选择虚拟节点过程具体为:
S61.将请求的URL作为S47中MD5函数的输入,得到请求的哈希值,计算公式如下:
Hr=MD5(Sr)
其中,Sr表示请求r的URL,Hr表示请求r的哈希值;
S62.将Hr映射到一致性哈希环上,以Hr的位置为起点,找出顺时针方向的首个虚拟节点Vf
S63.搜索拥有虚拟节点Vf的缓存节点,如果该缓存节点当前负载已达到其负载上限,则用该虚拟节点Vf的值更新Hr的值,并跳转至S62;否则,选择该缓存节点提供服务,计算公式如下:
Hr=Val(Vf)
其中,Val(Vf)表示虚拟节点Vf的哈希值。
S64.如果遍历相邻两段弧上所有虚拟节点均未找到能够提供服务的缓存节点,则结束搜索,直接返回。
本发明提出的策略在有限负载一致性哈希策略基础上进行改进,引入虚拟节点,解决了原策略负载均衡性受节点映射分散性影响较大的不足,同时支持同构和异构集群缓存代理,为集群缓存代理负载均衡提供了新的思路和解决方案。该方法具有很强的通用性和适用性,能够显著提高集群缓存代理的负载均衡性,降低骨干网带宽和集群缓存代理响应时间,为用户提供更稳定的服务和更快速的响应。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为本发明的一种基于虚拟节点的有限负载一致性哈希负载均衡策略的算法工作流程图;
图2为本发明中缓存节点性能量化阶段流程示意图;
图3为本发明中虚拟节点映射流程阶段示意图;
图4为本发明中虚拟节点在一致性哈希环上分布示意图;
图5为本发明请求分配阶段流程示意图。
具体实施方式
以下通过特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容了解本发明的优点和功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
如图1所示,本发明的基于虚拟节点的有限负载一致性哈希负载均衡策略包括缓存节点性能量化阶段、虚拟节点映射阶段、请求分配阶段三个阶段,各阶段具体如下:
一、缓存节点性能量化阶段
考虑到各缓存节点间存在性能差异,本发明计算了各缓存节点的性能量化值及性能量化值占比,以同时支持同构和异构集群缓存代理。为了避免熵权法难以解耦指标间相关性问题,本发明首先综合考虑数据信息和数据信息独立程度,采用独立信息数据波动赋权法,将各缓存节点内存大小、处理器内核总数及硬盘大小作为评价指标,得到各节点性能量化值及性能量化值占比。
如图2所示,本发明中缓存节点性能量化流程具体如下:
S1.将各缓存节点内存大小、处理器内核总数及硬盘大小作为独立信息数据波动赋权法的三个指标,并计算各缓存节点性能量化值及性能量化值占比,如下:
设置s组观察值,每组观察值包含内存大小、处理器内核总数及硬盘大小3个指标,构造评价矩阵As×3如式(1)所示:
Figure BDA0002253830930000071
式(1)中,s表示缓存节点数量,χ1,1表示第一组的内存大小,χ1,2表示第一组的处理器内核总数,χ1,3表示第一组的硬盘大小;χ2,1表示第二组的内存大小,χ2,2表示第二组的处理器内核总数,χ2,3表示第二组的硬盘大小;以此类推,χs,1表示第s组的内存大小,χs,2表示第s组的处理器内核总数,χs,3表示第s组的硬盘大小。
可以求得指标j的平均值
Figure BDA0002253830930000072
如式(2)所示:
Figure BDA0002253830930000073
式(2)中,j∈[1,3]。
将指标j作为因变量,其余指标作为自变量,可以得到多元线性回归模型如式(3)所示:
Figure BDA0002253830930000081
式(3)中,β0~3表示回归系数,ε是均值为0、方差为σ2(σ>0)的随机变量。
求得回归系数后,带入自变量可以得到自变量与因变量的线性关系如式(4)所示:
Figure BDA0002253830930000082
式(4)中,
Figure BDA0002253830930000083
为因变量线性回归后的结果。
复相关系数R反应了一个变量与其他多个变量之间线性相关程度,定义指标j的复相关系数Rj如式(5)所示:
Figure BDA0002253830930000084
将复相关系数Rj执行平方操作,即可求得指标j的决定系数
Figure BDA0002253830930000085
进而求得指标j的独立信息程度Dj如式(6)所示:
Figure BDA0002253830930000086
独立信息数据波动赋权法计算缓存节点性能量化值,以及性能量化值占比的具体步骤如下:
a.计算指标j的离差系数Vj,如式(7)所示:
Figure BDA0002253830930000087
式(7)中,δj表示指标j的标准差,
Figure BDA0002253830930000088
表示指标j的均值。
b.遍历所有指标,依次将指标j作为函数输出,其他指标作为输入进行回归运算,通过式(5)求得指标j的决定系数
Figure BDA0002253830930000089
进而通过式(6)求得指标j的独立信息程度Dj
c.归一化Vj得到Vj′,归一化Dj得到Dj′,如式(8)、式(9)所示:
Figure BDA0002253830930000091
Figure BDA0002253830930000092
式(8)、式(9)中,max(Vj)表示各缓存节点指标j的最大离差系数,max(Dj)表示各缓存节点指标j的最大独立信息程度。
d.计算指标j的纯量信息Ij,如式(10)所示:
Ij=Vj′×Dj′ (10)
e.计算指标j的权重值Wj,如式(11)所示:
Figure BDA0002253830930000093
式(11)中,i表示指标个数。
f.计算指标j的归一化值Qj,如式(12)所示:
Figure BDA0002253830930000094
式(12)中,Tj表示指标j包含的样本集,Max(Tj)表示指标j的最大值。
g.将Qj与该指标的权重值Wj线性加权,得到缓存节点n的性能量化值Fn如式(13)所示:
Figure BDA0002253830930000095
式(13)中,n∈[1,s],s表示缓存节点数目。
h.计算缓存节点n的性能量化值占比θn,如式(14)所示:
Figure BDA0002253830930000096
二、虚拟节点映射阶段
得到各缓存节点性能量化值Fn及性能量化值占比θn后,需要按比例为各缓存节点生成一定数量的虚拟节点。如图3所示,为了保证虚拟节点分布的随机性、缓存节点增加或删除后负载均衡的自恢复性、高缓存命中率以及缓存节点快速定位性,本发明虚拟节点映射过程分为如下步骤:
S2.设置虚拟节点总数Nt为缓存节点数的200-300倍,例如虚拟节点总数可以是缓存节点数的200倍,或者210倍,或者230倍,或者260倍、或者280倍,或者300倍。根据各缓存节点性能量化值占比,各缓存节点应分配的虚拟节点数如式(15)所示:
Nn=Nt×θn (15)
式(15)中,Nn表示缓存节点n拥有的虚拟节点数,n∈[1,s]。
矩阵N包含了各缓存节点拥有的虚拟节点数,如式(16)所示:
N=(N1 N2 … Nn … Ns-1 Ns) (16)
S3.利用Random函数并参照N中各元素值,为每个缓存节点随机生成对应数量的唯一虚拟节点主机号(IP:Port),如缓存节点1则需生成N1个主机号互不相同的虚拟节点,以此类推。
S4.利用MD5函数将各缓存节点拥有的虚拟节点均匀映射到一致性哈希环的各段弧上,其映射流程如下:
(a)计算矩阵N中各元素的最大公约数m,并将一致性哈希环均分为m段弧。
(b)计算每个缓存节点在每段弧上需要分配的虚拟节点数量并构成集合C,如式(17)所示:
Figure BDA0002253830930000101
(c)计算一致性哈希环上每段弧的长度davg,如式(18)所示:
Figure BDA0002253830930000102
式(18)中,Hmax表示哈希环的最大值。
(d)定位当前弧区间编号k,初始值k=1。
(e)比较当前弧区间编号k是否大于m,如果大于m,则结束执行,虚拟节点映射完成;否则,执行f。
(f)计算当前弧区间起始坐标Bs,如式(19)所示:
Figure BDA0002253830930000103
(g)循环各缓存节点,参照C中各元素值,为每个缓存节点随机取出对应数量的虚拟节点。将各虚拟节点主机号作为MD5函数输入,得到各虚拟节点哈希值,如式(20)所示:
Hv=MD5(Sv) (20)
式(20)中,Sv表示第v个虚拟节点的主机号,Hv表示第v个虚拟节点的哈希值,v∈[1,Nt];
(h)将各虚拟节点映射到当前弧区间内,如式(21)所示:
Figure BDA0002253830930000111
式(21)中,Bc(v)表示第v个虚拟节点在当前弧上的位置。如果Bc(v)在当前弧上已被其他虚拟节点占用,则重新生成Sv后,执行步骤(g)。
(i)递增当前弧区间编号k,跳转至步骤(d)。
虚拟节点在一致性哈希环上分布示意图如图4所示。图4中,Cache1、Cache2及Cache3分别拥有8个虚拟节点,一致性哈希环的各段弧上均匀映射了各缓存节点对应的虚拟节点,实现了一致性哈希环的细分。
三、请求分配阶段
当请求到达负载均衡器时,负载均衡器首先计算出各缓存节点的当前连接数,并将其作为该缓存节点的当前负载。然后,负载均衡器会计算当前时刻集群缓存代理的总负载和平均负载,以更新各缓存节点负载上限。最后,请求将按照有限负载一致性哈希策略的请求转发规则选择虚拟节点以及拥有该虚拟节点的缓存节点,请求分配流程示意图如图5所示。
本发明请求分配分为如下步骤:
S5.当请求到达负载均衡器时,首先更新集群缓存代理中各缓存节点的负载上限,各缓存节点负载上限更新步骤如下所示:
(1)新的请求到达负载均衡器后,计算集群缓存代理的当前总负载量Lt,如式(22)所示:
Figure BDA0002253830930000112
式(22)中,Ln表示当前时刻缓存节点n的负载量,Lnew表示当前时刻的新增负载量。
(2)计算集群缓存代理的平均负载Lavg,如式(23)所示:
Figure BDA0002253830930000113
(3)计算集群缓存代理中各缓存节点的平均性能量化值Favg,如式(24)所示:
Figure BDA0002253830930000114
(4)为每个缓存节点保留1.2倍的负载裕量,更新各缓存节点负载上限,如式(25)所示:
Figure BDA0002253830930000115
式(25)中,Lc(n)表示当前时刻缓存节点n的负载上限。
S6.在一致性哈希环上为请求选择虚拟节点分为如下步骤:
①将请求的URL作为式(20)中MD5函数的输入,得到请求的哈希值,如式(26)所示:
Hr=MD5(Sr) (26)
式(26)中,Sr表示请求r的URL,Hr表示请求r的哈希值;
②将Hr映射到一致性哈希环上,以Hr的位置为起点,找出顺时针方向的首个虚拟节点Vf
③搜索拥有虚拟节点Vf的缓存节点,如果该缓存节点当前负载已达到其负载上限,则用该虚拟节点Vf的值更新Hr的值,并跳转至步骤②;否则,选择该缓存节点提供服务,如式(27)所示:
Hr=Val(Vf) (27)
式(27)中,Val(Vf)表示虚拟节点Vf的哈希值。
④如果遍历相邻两段弧上所有虚拟节点均未找到能够提供服务的缓存节点,则结束搜索,直接返回。
上述基于虚拟节点的有限负载一致性哈希负载均衡策略,在有限负载一致性哈希策略基础上进行改进,引入虚拟节点,解决了原策略负载均衡性受节点映射分散性影响较大的不足,同时能够支持同构和异构集群缓存代理,为集群缓存代理负载均衡提供了新的思路和解决方案。上述的基于虚拟节点的有限负载一致性哈希负载均衡策略具有很强的通用性和适用性,能够显著提高集群缓存代理的负载均衡性,降低骨干网带宽和集群缓存代理响应时间,为用户提供更稳定的服务和更快速的响应。
以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。本发明未详细描述的技术、形状、构造部分均为公知技术。

Claims (6)

1.一种基于虚拟节点的有限负载一致性哈希负载均衡策略,其特征在于,所述策略包括如下步骤:
S1.将缓存节点内存大小、处理器内核总数及磁盘大小作为独立信息数据波动赋权法的输入指标,计算各缓存节点性能量化值及性能量化值占比;
S2.设置虚拟节点总数为缓存节点个数的200-300倍,根据虚拟节点总数和步骤S1中各缓存节点性能量化值占比,计算各缓存节点应分得的虚拟节点数目;
S3.利用Random函数为每个缓存节点生成对应数目的虚拟节点;
S4.计算各缓存节点拥有虚拟节点数的最大公约数m,将一致性哈希环均分为m段弧,通过MD5函数将各缓存节点拥有的虚拟节点均匀映射到一致性哈希环的各段弧上;
S5.请求到达负载均衡器时,负载均衡器更新集群缓存代理负载量和各缓存节点负载上限值;
S6.将请求的URL作为步骤S4中MD5函数的输入,利用有限负载一致性哈希的请求分配策略在一致性哈希环上选择虚拟节点,并利用拥有该虚拟节点的缓存节点进行服务;
所述步骤S1中,独立信息数据波动赋权法计算各缓存节点性能量化值及性能量化值占比的具体过程如下:
S11.计算指标j的离差系数Vj,计算公式如下:
Figure FDA0003427235930000011
其中,δj表示指标j的标准差,
Figure FDA0003427235930000012
表示指标j的均值,j∈[1,3];
S12.遍历所有指标,依次将指标j作为函数输出,其他指标作为输入进行回归运算,得到指标j的决定系数
Figure FDA0003427235930000013
和独立信息程度Dj
S13.归一化Vj得到Vj′,归一化Dj得到Dj′;
S14.计算指标j的纯量信息Ij,计算公式如下:
Ij=Vj′×Dj
S15.计算指标j的权重值Wj,计算公式如下:
Figure FDA0003427235930000014
其中,i表示指标个数;
S16.计算指标j的归一化值Qj,计算公式如下:
Figure FDA0003427235930000021
其中,Tj表示指标j包含的样本集,Max(Tj)表示指标j的最大值;
S17.将Qj与该指标权重值Wj线性加权,得到缓存节点n的性能量化值Fn,计算公式如下:
Figure FDA0003427235930000022
其中,n∈[1,s],s表示缓存节点数目;
S18.计算缓存节点n的性能量化值占比θn,计算公式如下:
Figure FDA0003427235930000023
所述步骤S4中利用MD5函数将各缓存节点拥有的虚拟节点均匀映射到一致性哈希环各段弧上的过程具体如下:
S41.计算矩阵N中各元素的最大公约数m,将一致性哈希环均分为m段弧;
S42.计算每个缓存节点在每段弧上需要分配的虚拟节点数量,构成集合C,如下所示:
Figure FDA0003427235930000024
S43.计算一致性哈希环上每段弧的长度davg,如下所示:
Figure FDA0003427235930000025
其中,Hmax表示哈希环的最大值;
S44.定位当前弧区间编号k,初始值k=1;
S45.比较当前弧区间编号k是否大于m,如果大于m,则结束执行,虚拟节点映射完成;否则执行步骤S46;
S46.计算当前弧区间起始坐标Bs,如下式所示:
Figure FDA0003427235930000026
S47.循环各缓存节点,参照集合C中各元素值,为每个缓存节点随机取出对应数量的虚拟节点,将各虚拟节点主机号作为MD5函数输入,得到各虚拟节点哈希值,如下所示:
Hv=MD5(Sv)
其中,Sv表示第v个虚拟节点的主机号,Hv表示第v个虚拟节点的哈希值,v∈[1,Nt];
S48.将各虚拟节点映射到当前弧区间内;
S49.递增当前弧区间编号k,跳转至步骤S44;
所述步骤S6中,在一致性哈希环上选择虚拟节点的过程如下:
S61.将请求的URL作为步骤S47中MD5函数的输入,得到请求的哈希值,如下所示:
Hr=MD5(Sr)
其中,Sr表示请求r的URL,Hr表示请求r的哈希值;
S62.将Hr映射到一致性哈希环上,以Hr的位置为起点,找出顺时针方向的首个虚拟节点Vf
S63.搜索拥有虚拟节点Vf的缓存节点,如果该缓存节点当前负载已达到其负载上限,则用该虚拟节点Vf的值更新Hr的值,并跳转至步骤S62;否则,选择该缓存节点提供服务,如下所示:
Hr=Val(Vf)
其中,Val(Vf)表示虚拟节点Vf的哈希值;
S64.如果遍历相邻两段弧上所有虚拟节点均未找到能够提供服务的缓存节点,则结束搜索,直接返回。
2.根据权利要求1所述的一种基于虚拟节点的有限负载一致性哈希负载均衡策略,其特征在于,步骤S12中所述指标j的决定系数
Figure FDA0003427235930000031
和独立信息程度Dj获取过程如下:
设置s组观察值,每组观察值包含内存大小、处理器内核总数及硬盘大小三个指标,构建评价矩阵As×3,求得指标j的平均值
Figure FDA0003427235930000032
将指标j作为因变量,其余指标作为自变量,构建多元线性回归模型如下式所示:
Figure FDA0003427235930000033
其中,β0~3表示回归系数,ε是均值为0、方差为σ2(σ>0)的随机变量,
求得回归系数后,带入自变量可以得到自变量与因变量的线性关系如下所示:
Figure FDA0003427235930000041
其中,
Figure FDA0003427235930000042
为因变量线性回归后的结果;
可得指标j的复相关系数Rj和独立信息程度Dj如下所示:
Figure FDA0003427235930000043
Figure FDA0003427235930000044
3.根据权利要求2所述的一种基于虚拟节点的有限负载一致性哈希负载均衡策略,其特征在于,步骤S2中各缓存节点应分得的虚拟节点数目计算如下:
Nn=Nt×θn
其中,Nt表示虚拟节点总数,Nn表示缓存节点n拥有的虚拟节点数。
4.根据权利要求3所述的一种基于虚拟节点的有限负载一致性哈希负载均衡策略,其特征在于,所述S3步骤具体如下:
利用各缓存节点拥有的虚拟节点数构建矩阵N,如下所示:
N=(N1 N2 … Nn … Ns-1 Ns)
利用Random函数并参照矩阵N中各元素值,为每个缓存节点随机生成对应数目的唯一虚拟节点主机号(IP:Port)。
5.根据权利要求4所述的一种基于虚拟节点的有限负载一致性哈希负载均衡策略,其特征在于,步骤S48中将各虚拟节点映射到当前弧区间内,如下所示:
Figure FDA0003427235930000045
其中,Bc(v)表示第v个虚拟节点在当前弧上的位置,如果Bc(v)在当前弧上已被其他虚拟节点占用,则重新生成Sv后,执行步骤S47。
6.根据权利要求5所述的一种基于虚拟节点的有限负载一致性哈希负载均衡策略,其特征在于,步骤S5中,各缓存节点负载上限计算过程如下:
S51.新的请求到达负载均衡器后,计算集群缓存代理的总负载量Lt,如下所示:
Figure FDA0003427235930000046
其中,Ln表示当前时刻缓存节点n的负载量,Lnew表示当前时刻的新增负载量;
S52.计算集群缓存代理的平均负载Lavg,如下所示:
Figure FDA0003427235930000051
S53.计算集群缓存代理中各缓存节点的平均性能量化值Favg,如下所示:
Figure FDA0003427235930000052
S54.为每个缓存节点保留1.2倍的负载裕量,更新各缓存节点负载上限,如下所示:
Figure FDA0003427235930000053
其中,Lc(n)表示当前时刻缓存节点n的负载上限。
CN201911044751.2A 2019-10-30 2019-10-30 一种基于虚拟节点的有限负载一致性哈希负载均衡策略 Active CN110830562B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911044751.2A CN110830562B (zh) 2019-10-30 2019-10-30 一种基于虚拟节点的有限负载一致性哈希负载均衡策略

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911044751.2A CN110830562B (zh) 2019-10-30 2019-10-30 一种基于虚拟节点的有限负载一致性哈希负载均衡策略

Publications (2)

Publication Number Publication Date
CN110830562A CN110830562A (zh) 2020-02-21
CN110830562B true CN110830562B (zh) 2022-06-10

Family

ID=69551368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911044751.2A Active CN110830562B (zh) 2019-10-30 2019-10-30 一种基于虚拟节点的有限负载一致性哈希负载均衡策略

Country Status (1)

Country Link
CN (1) CN110830562B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111917851A (zh) * 2020-07-22 2020-11-10 电信科学技术第五研究所有限公司 一种基于一致性哈希实现带权的负载均衡调度方法
CN112492008B (zh) * 2020-11-19 2022-05-20 深圳壹账通智能科技有限公司 节点位置确定方法、装置、计算机设备和存储介质
CN113014439B (zh) * 2021-04-19 2021-10-26 广州大一互联网络科技有限公司 一种数据中心带宽的虚拟弹性管理方法
CN113630319B (zh) * 2021-06-28 2022-08-19 济南浪潮数据技术有限公司 一种数据分流方法、装置及相关设备
CN113821340A (zh) * 2021-08-27 2021-12-21 济南浪潮数据技术有限公司 分布式系统的动态均衡方法、系统、终端及存储介质
CN113886081A (zh) * 2021-09-29 2022-01-04 南京地铁建设有限责任公司 一种基于负载均衡的车站多刷脸阵列人脸库分割方法
CN115665161B (zh) * 2022-10-17 2024-04-02 重庆邮电大学 一种clickhouse实时数据流负载均衡方法及系统
CN118227673B (zh) * 2024-05-22 2024-08-02 山东港口科技集团烟台有限公司 一种物联数据缓存处理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107197035A (zh) * 2017-06-21 2017-09-22 中国民航大学 一种基于一致性哈希算法的亲和性动态负载均衡方法
CN110336891A (zh) * 2019-07-24 2019-10-15 中南民族大学 缓存数据分布方法、设备、存储介质及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914457B2 (en) * 2009-10-06 2014-12-16 Red Hat, Inc. Caching of nodes in cache cluster
US9497281B2 (en) * 2013-04-06 2016-11-15 Citrix Systems, Inc. Systems and methods to cache packet steering decisions for a cluster of load balancers
US9860316B2 (en) * 2014-09-19 2018-01-02 Facebook, Inc. Routing network traffic based on social information
CN109218438A (zh) * 2018-10-12 2019-01-15 山东科技大学 一种分布式缓存服务器集群的性能优化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107197035A (zh) * 2017-06-21 2017-09-22 中国民航大学 一种基于一致性哈希算法的亲和性动态负载均衡方法
CN110336891A (zh) * 2019-07-24 2019-10-15 中南民族大学 缓存数据分布方法、设备、存储介质及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
B. Campbell ; S. Donovan等.Diameter Load Information Conveyance.《IETF 》.2019, *
一致性哈希的数据集群存储优化策略研究;邱宁佳等;《信息与控制》;20161215(第06期);全文 *
基于虚节点的一致性哈希算法的优化;巴子言等;《软件》;20141215(第12期);全文 *

Also Published As

Publication number Publication date
CN110830562A (zh) 2020-02-21

Similar Documents

Publication Publication Date Title
CN110830562B (zh) 一种基于虚拟节点的有限负载一致性哈希负载均衡策略
Yu et al. Location-aware associated data placement for geo-distributed data-intensive applications
US8087025B1 (en) Workload placement among resource-on-demand systems
KR102338208B1 (ko) 데이터를 처리하기 위한 방법, 장치 및 시스템
US8214498B2 (en) Method and system for managing a peer of a peer-to-peer network to search for available resources
US8176037B2 (en) System and method for SQL query load balancing
CN108416465B (zh) 一种移动云环境下的工作流优化方法
Chen et al. MapReduce skyline query processing with a new angular partitioning approach
JP5600573B2 (ja) 負荷分散装置及びプログラム
CN113778683B (zh) 一种基于神经网络的Handle标识体系解析负载均衡方法
CN111177154A (zh) 分布式数据库缓存方法及其哈希环优化
US20170140028A1 (en) Load balancing for multi-tiered querying
JP2009295127A (ja) アクセス方法、アクセス装置及び分散データ管理システム
CN111159193A (zh) 多层一致性哈希环及其在创建分布式数据库中的应用
Zou et al. Semantic overlay network for large-scale spatial information indexing
Mostafa et al. An intelligent dynamic replica selection model within grid systems
CN112765177B (zh) 一种基于负载驱动的分布式图数据分割和复制方法
US9898518B2 (en) Computer system, data allocation management method, and program
CN109844723B (zh) 使用基于服务的统计信息进行主控建立的方法和系统
Shao et al. Effective load balancing mechanism for heterogeneous range queriable cloud storage
Irandoost et al. Learning automata-based algorithms for MapReduce data skewness handling
CN113377544A (zh) 一种基于负荷数据动态更新率的web集群负载均衡方法
Al Ridhawi et al. Client-side partial file caching for cloud-based systems
Wang et al. Low-cost web service discovery based on distributed decision tree in P2P environments
CN108965387B (zh) 一种提高p2p数据存储抗毁性的均衡方法及系统

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