CN104202349B - 分布式缓存资源调度的方法、装置及*** - Google Patents

分布式缓存资源调度的方法、装置及*** Download PDF

Info

Publication number
CN104202349B
CN104202349B CN201410186164.8A CN201410186164A CN104202349B CN 104202349 B CN104202349 B CN 104202349B CN 201410186164 A CN201410186164 A CN 201410186164A CN 104202349 B CN104202349 B CN 104202349B
Authority
CN
China
Prior art keywords
cache
node
data
hash
cache node
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
CN201410186164.8A
Other languages
English (en)
Other versions
CN104202349A (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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410186164.8A priority Critical patent/CN104202349B/zh
Priority claimed from CN200980118719.2A external-priority patent/CN102577241B/zh
Publication of CN104202349A publication Critical patent/CN104202349A/zh
Application granted granted Critical
Publication of CN104202349B publication Critical patent/CN104202349B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种分布式缓存资源调度的方法、装置及***。在所述分布式缓存***中,各缓存节点分布在一个基于一致性哈希算法的虚拟圆上。所述方法包括以下步骤:对分布式缓存***中的各缓存节点的负载值进行监控;根据所述负载值判断当前分布式缓存***中是否存在负载异常;若当前分布式缓存***中存在负载异常,则对所述分布式缓存***中的缓存节点的布局进行调整。本发明实现了分布式缓存***中资源分布的自动化调度,使资源分布处于平衡状态。

Description

分布式缓存资源调度的方法、装置及***
本申请是2009年12月31日递交的,申请号为200980118719.2,发明名称为“分布式缓存资源调度的方法、装置及***”的中国申请的分案申请,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及通信技术领域,尤其涉及一种分布式缓存资源调度的方法、装置及***。
背景技术
目前,分布式缓存是IT技术领域中,特别是Web技术领域中,普遍使用的一项缓存技术,其主要应用于网页页面缓存、数据库缓存等方面以满足用户对网络***响应速度的要求。
在分布式缓存***中,缓存客户端的数据需要通过一定的负载均衡算法来分布到各个缓存节点上;目前最常用的负载均衡算法是hash(哈希)算法,而一致性hash算法(ConsistentHashing)又是hash算法中使用比较广泛的一种。
在基于一致性hash算法的分布式缓存***中,所有的缓存节点可以是均布于一个虚拟圆结构上(以下简称“圆”),当使用一般的hash函数时,物理服务器的映射点分布非常不均匀,现有技术中可以通过设置虚拟节点的方法,为每个物理服务器分配若干个虚拟节点(例如,100~200),由于所述100~200个虚拟节点均布在所述“圆”上而且每个虚拟节点的覆盖范围都很小,因此可以起到均衡不同缓存节点上的负载的效果。但是,由于需要设置虚拟节点的数量很大,会使得缓存客户端的计算量也变得很大,增重缓存客户端的负担;同时,在布设有虚拟节点的“圆”中再次出现负载不均时,现有技术仍然无法对缓存节点上的负载进行及时调整。
而针对分布式缓存***中整体负载过高或者过低的情况,目前还没有比较有效的方式来对分布式缓存***中的资源分布进行调度。
发明内容
本发明的实施例提供一种分布式缓存资源调度的方法、装置及***,用以实现分布式缓存***中资源分布的自动化调度,使资源分布处于平衡状态。
为达到上述目的,本发明的实施例采用如下技术方案:
一种分布式缓存资源调度的方法,在分布式缓存***中各缓存节点分布在一个基于一致性哈希算法的虚拟圆上,所述方法包括:
对分布式缓存***中的各缓存节点的负载值进行监控;
根据所述负载值判断当前分布式缓存***中是否存在负载异常;
若当前分布式缓存***中存在负载异常,则对所述分布式缓存***中的缓存节点的布局进行调整。
一种分布式缓存资源调度的方法,包括:
接收缓存管理装置发送的通知消息,该消息中包含有分布式缓存***的虚拟圆上即将丢失数据的哈希段对应的旧缓存节点的位置信息;
在当前缓存节点上不存在缓存客户端要读取的数据时,根据所述位置信息访问所述旧缓存节点以获取并保存所述数据;
其中,所述即将丢失数据的哈希段是所述分布式缓存***的虚拟圆上出现缓存节点布局的调整后,所归属的缓存节点有改变的哈希段。
一种缓存管理装置,该缓存管理装置所在的分布式缓存***中各缓存节点分布在一个基于一致性哈希算法的虚拟圆上,所述缓存管理装置包括:
监控单元,用于对分布式缓存***中的各缓存节点的负载值进行监控;
判断单元,用于根据所述负载值判断当前分布式缓存***中是否存在负载异常;
调整单元,用于在当前分布式缓存***中存在负载异常时,对所述分布式缓存***中的缓存节点的布局进行调整。
一种缓存节点,包括:
接收单元,用于接收缓存管理装置发送的通知消息,该消息中包含有分布式缓存***的虚拟圆上即将丢失数据的哈希段对应的旧缓存节点的位置信息;
获取单元,用于在当前缓存节点上不存在缓存客户端要读取的数据时,根据所述位置信息访问所述旧缓存节点以获取并保存所述数据;
其中,所述即将丢失数据的哈希段是所述分布式缓存***的虚拟圆上出现缓存节点布局的调整后,所归属的缓存节点有改变的哈希段。
一种分布式缓存***,包括缓存客户端、缓存管理装置及多个缓存节点;其中,
所述缓存客户端,用于根据一致性哈希算法将数据分布到所述多个缓存节点上;
所述缓存管理装置,用于对分布式缓存***中的各缓存节点的负载值进行监控,并根据所述负载值判断当前分布式缓存***中是否存在负载异常;若存在异常,则对所述多个缓存节点的布局进行调整;其中,所述负载异常包括负载不均、负载过高或者负载过低。
本发明实施例提供的分布式缓存资源调度的方法、装置及***,在当前分布式缓存***中存在负载异常时,通过调整缓存节点之间的布局来改变不同缓存节点所承担的负载量,实现分布式缓存***中资源分布的自动化调度,使所述分布式缓存***中的资源分布呈一种平衡状态。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有的通过一致性hash算法来实现分布式缓存的原理示意图;
图2为本发明实施例一中分布式缓存资源调度的方法的流程图;
图3为本发明实施例一中缓存管理装置的结构示意图;
图4为本发明实施例二中分布式缓存资源调度的方法的流程图;
图5为本发明实施例二中缓存节点的结构示意图;
图6为本发明实施例三中移动缓存节点位置的方法流程图;
图7为本发明实施例三中的分布式缓存***的虚拟圆结构示意图一;
图8为本发明实施例三中的分布式缓存***的虚拟圆结构示意图二;
图9为本发明实施例四中添加缓存节点的方法流程图;
图10为本发明实施例四中的分布式缓存***的虚拟圆结构示意图;
图11为本发明实施例五中移除缓存节点的方法流程图;
图12为本发明实施例五中的分布式缓存***的虚拟圆结构示意图;
图13为本发明实施例六中的缓存管理装置的结构示意图;
图14为本发明实施例六提供的缓存管理装置中移动模块的结构示意图;
图15为本发明实施例六提供的缓存管理装置中增加模块的结构示意图;
图16为本发明实施例六提供的缓存管理装置中移除模块的结构示意图;
图17为本发明实施例六提供的缓存节点的结构示意图;
图18为本发明实施例六提供的分布式缓存***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在基于一致性hash算法的分布式缓存***中,所有的缓存节点均根据其分别对应的哈希值而分布于一个虚拟圆结构上(以下简称“圆”),该“圆”一般由缓存管理装置生成并保存。所述缓存管理装置可以是一个缓存管理节点。
在所述“圆”上的一段数据范围(如“圆”上1000~20000的hash值范围)将称为一个“hash段”。
在所述分布式缓存***中,缓存客户端一般会从缓存管理装置中下载“圆”上所有缓存节点的信息,以供缓存客户端进行一致性hash运算。
一般情况下,都是以数据的键到保存该数据的缓存节点的方向作为“圆”的正方向;其体现在“圆”上可以是顺时针,也可以是逆时针。在本发明的实施例中,将顺时针方向定义为正方向来作为示例;也就是说,“圆”上的数据会按照顺时钟方向来选择缓存节点,而缓存客户端在读取数据时也会根据所述数据的键对应的hash值在“圆”的顺时针方向上寻找最近的缓存节点进行操作。
结合图1所示,通过一致性hash算法来实现分布式缓存的基本原理大致如下:
首先,将多个缓存节点配置到0~232的“圆”(continuum,这里的“圆”是由负载均衡设备生成的虚拟圆,其实质上是一种闭联集)上;在这里,232只是一个示例,“圆”的大小当然还可以是其它值,而将所述缓存节点配置到“圆”上的方法可以是将多个缓存节点平均排布在所述“圆”上,当然也可以是参照适合某些具体场景的其它规则来进行配置;
然后,求出需存储数据对应的键的哈希值,例如通过md5(Message-DigestAlgorithm5,信息-摘要算法5)算法,并将计算得到的哈希值对232取余;根据取余的结果将所述需存储的数据映射到所述“圆”上;
之后,从所述需存储的数据对应的键映射到“圆”上的位置开始顺时针查找,并将所述需存储的数据保存到查找到的第一个缓存节点(服务器)上。
在分布式缓存***中存在有多个缓存节点,而不同的缓存节点所承担的负载大小也各有不同。一般情况下,以一个缓存节点的多项负载数据中的最大值作为该缓存节点的负载值,例如某一缓存节点当前的内存使用率为50%,带宽使用率为80%,其它的负载数据也均小于80%,则该缓存节点的负载值即为80%。如果最高负载节点和最低负载节点之间的负载差距超过阈值(例如15%),或者所有缓存节点的整体负载高于上限值(例如80%)或整体负载低于下限值(例如40%),那么就认为当前分布式缓存***中存在缓存负载异常。
下面结合附图对本发明实施例提供的分布式缓存资源调度的方法、装置及***进行详细描述。
实施例一:
如图2所示,本实施例提供的分布式缓存资源调度的方法,包括以下步骤:
201、对分布式缓存***中的各缓存节点的负载值进行监控;这里的负载值可以包含但不限于各个缓存节点的内存占用率、带宽占用率等。
202、根据所述负载值判断当前分布式缓存***中是否存在负载异常;所述负载异常包括负载不均、负载过高或者负载过低。
一般情况下,如果当前分布式缓存***中,所有缓存节点的负载值中的最大值和最小值之差超过一阈值(比如,15%)时,就认为当前分布式缓存***中存在负载不均;
如果所有缓存节点的整体负载高于上限值(例如80%)或者所有节点的负载值中的最小值高于某一预设值(比如60%),那么就认为当前分布式缓存***中存在负载过高的问题,也就是***过载;
而如果所有缓存节点的整体负载低于下限值(例如40%),则认为当前分布式缓存***中存在负载过低的问题;
在本实施例中,所谓整体负载是由所有缓存节点的负载值的平均值来表示,当然也可以是通过其它方式来表示。
203、若当前分布式缓存***中存在负载异常,则对所述分布式缓存***中的缓存节点的布局进行调整。
在本实施例中,针对上述三种负载异常的情况,对缓存节点的布局进行调整的方式分别为:
1)针对负载不均的情况,可以通过移动所述“圆”上的缓存节点的位置的方式来改变缓存节点的覆盖范围,从而改变缓存节点上的负载值大小;
2)针对负载过高的情况,可以在所述“圆”中添加新的缓存节点,通过新增的缓存节点来分担邻近的缓存节点上的负载;
3)针对负载过低的情况,可以从所述“圆”中移除一个或者多个缓存节点,使所述移除的缓存节点上的负载转移到邻近的缓存节点上,从而提高分布式缓存***的整体负载。
上述步骤的执行主体可以是缓存管理装置,即分布式缓存***中的缓存管理节点。
为了更好地实现上述方法,本实施例中还提供了一种缓存管理装置,如图3所示,该缓存管理装置所在的分布式缓存***中各缓存节点分布在一个基于一致性哈希算法的虚拟圆上,所述缓存管理装置包括:
监控单元31,用于对分布式缓存***中的各缓存节点的负载值进行监控;
判断单元32,用于根据所述负载值判断当前分布式缓存***中是否存在负载异常;
调整单元33,用于在当前分布式缓存***中存在负载异常时,对所述分布式缓存***中的缓存节点的布局进行调整。
上述缓存管理装置,可以是分布式缓存***中的缓存管理节点。
本发明实施例中提供的分布式缓存资源调度的方法及装置,通过对当前分布式缓存***中各缓存节点的负载值进行监控,并在当前分布式缓存***中存在负载异常时,自动调整缓存节点之间的布局来改变不同缓存节点所承担的负载量,实现分布式缓存***中资源分布的自动化调度,使所述分布式缓存***的资源分布处于一种平衡状态。
实施例二:
如图4所示,本实施例提供的分布式缓存资源调度的方法,包括以下步骤:
401、接收缓存管理装置发送的通知消息,该消息中包含有分布式缓存***的虚拟圆上即将丢失数据的哈希段对应的旧缓存节点的位置信息。
其中,所述即将丢失数据的哈希段是所述分布式缓存***的虚拟圆上出现缓存节点布局的调整后,所归属的缓存节点有改变的哈希段。
402、在当前缓存节点上不存在缓存客户端要读取的数据时,根据所述位置信息访问所述旧缓存节点以获取并保存所述数据。
上述各步骤的执行主体可以是分布式缓存***中的缓存节点,且该缓存节点是所述即将丢失数据的哈希段所对应的新缓存节点。
为了更好地实现上述分布式缓存资源调度的方法,本实施例中还提供了一种缓存节点,如图5所示,该缓存节点包括:
接收单元51,用于接收缓存管理装置发送的通知消息,该消息中包含有分布式缓存***的虚拟圆上即将丢失数据的哈希段对应的旧缓存节点的位置信息;
获取单元52,用于在当前缓存节点上不存在缓存客户端要读取的数据时,根据所述位置信息访问所述旧缓存节点以获取并保存所述数据;
其中,所述即将丢失数据的哈希段是所述分布式缓存***的虚拟圆上出现缓存节点布局的调整后,所归属的缓存节点有改变的哈希段。
本实施例中提供的分布式缓存资源调度的方法及缓存节点,通过将所述即将丢失数据的哈希段对应的旧缓存节点的位置信息告知其对应的新缓存节点,使得所述新缓存节点在发现自身不具备缓存客户端需要的数据时,可以根据所述位置信息访问所述旧缓存节点以获取相应的数据,从而减少了数据的丢失。
实施例三:
在本实施例中,将以一具体实例来进一步说明通过移动缓存节点在所述“圆”上的位置,来实现分布式缓存***中资源调度的方法。
首先,判断当前分布式缓存***中是否存在负载不均,具体的判断方式在前面已有描述,此处不再赘述;如果当前分布式缓存***中存在负载不均,则可以通过移动缓存节点在所述“圆”上的位置的方式来对分布式缓存***中的缓存节点的布局进行调整。
具体地,移动缓存节点在所述“圆”上的位置的过程,如图6所示,包括:
601、选取所述“圆”上负载差距最大的至少一对相邻缓存节点。
在选取“圆”上负载差距最大的相邻缓存节点时,可以是选取其中负载差距最大的一对,这种方式比较适合缓存节点较少的分布式缓存***;也可以是按照负载差距值从大到小的顺序选取多对缓存节点,这种方式比较适合缓存节点较多的分布式缓存***;当然还可以是其它选择方式。
602、对所选出的每对相邻缓存节点中的两个缓存节点的负载值进行比较。
以其中一对相邻缓存节点为例,如果位于正方向(顺时针)的缓存节点的负载值较大,则执行步骤603;如果位于反方向(逆时针)的缓存节点的负载值较大,则执行步骤604。
603、将位于反方向的缓存节点沿正方向移动。
参看图7所示的分布式缓存***中的“圆”结构,其中负载值最大的缓存节点是节点5(98%),负载值最小的缓存节点是节点2(20%),它们之间的负载差为78%,高于阈值(比如15%),因此当前的分布式缓存***中存在负载不均,而且此时负载差距最大的一对相邻缓存节点是节点3和节点4。由于节点4上的负载值比节点3上的负载值要大,因此为了使节点3和节点4上的负载趋向于均衡化,需要将节点3沿顺时针方向移动。
如果当前节点4上的负载值为a,其所覆盖的hash段的长度为A;节点3上的负载值为b,其所覆盖的hash段的长度为B,且节点3的负载能力是节点4的X倍(负载能力与节点的硬件条件有关,一般X>0;如果节点3和节点4选用的是相同硬件或者虚拟硬件,则X为1);则,节点3在“圆”上沿顺时针方向移动的距离为:
s = A · X 1 + X · a - b a
这样,节点3在“圆”上的覆盖范围变大,所承担的负载也变大;同时,节点4所承担的负载则变小,从而使节点3和节点4之间的负载趋向均衡。
504、将位于反方向的缓存节点沿反方向移动。
参看图8所示的分布式缓存***中的“圆”结构,此时负载差距最大的一对相邻缓存节点是节点1和节点2。由于节点1上的负载值比节点2上的负载值要大,因此为了使节点1和节点2上的负载趋向于均衡化,需要将节点1沿逆时针方向移动。
如果当前节点1上的负载值为c,其所覆盖的hash段的长度为C;节点2上的负载值为d,其所覆盖的hash段的长度为D,且节点2的负载能力是节点1的X倍(负载能力与节点的硬件条件有关,一般X>0;如果节点1和节点2选用的是相同硬件或者虚拟硬件,则X为1);则,节点1在“圆”上沿顺时针方向移动的距离为:
s = C · X 1 + X · c - d c
这样,节点1在“圆”上的覆盖范围变小,所承担的负载也变小;同时,节点2所承担的负载则变大,从而使节点1和节点2之间的负载趋向均衡。
上面的描述,只是以其中一对相邻的缓存节点作为示例来介绍本实施例所提供的分布式缓存负载均衡的方法。如果在对所述一对相邻缓存节点的布局进行调整后,当前分布式缓存***中仍然存在负载不均的问题,那么就重复上述操作,直至分布式缓存***中各缓存节点的负载值中的最大值和最小值之差低于阈值。
通过上述方法,对“圆”上的缓存节点的布局进行调整,可以使整个分布式缓存***中的总负载在各个缓存节点上重新分配,从而达到负载均衡的目的。
不过,在所述分布式缓存***中,只要存在缓存节点位置的变动,就会出现所述“圆”中的一段hash段的数据会在访问时丢失的情况。
针对这一问题,在本实施例中,由缓存管理装置向即将丢失数据的hash段对应的新缓存节点发送一通知消息,该通知消息中包含有所述即将丢失数据的hash段对应的旧缓存节点的位置信息。所述位置信息中包含有旧缓存节点的IP(InternetProtocol,因特网协议)地址和端口号,当然还可以包含其它一些用于表征位置的信息。
结合图7的情况,节点3沿“圆”的顺时针方向移动至节点3'的位置。对于节点3和节点3'之间的hash段M,其原属于节点4的覆盖范围;在节点3移动后,所述hash段M归属到节点3'的覆盖范围。此时,缓存客户端在请求获取hash段M上的数据时,会向节点3'发起该读操作请求,而实际上hash段M上的数据仍然保存在节点4中而非节点3'中,因此就会造成hash段M上的数据丢失。
在本实施例中,在移动了节点3的位置之后,分布式缓存***中的缓存管理装置就会向节点3'发送一通知消息,该通知消息中包含有节点4的位置信息(一般指IP地址和端口号)。这样,在缓存客户端向节点3'请求获取hash段M上的数据时,如果在节点3'中没有相应的数据,那么节点3'会根据所述位置信息去访问节点4以获取相应的数据(例如通过图7中所示的T1接口),并将获取到的数据保存在节点3'中,同时将所述数据返回给发起读操作请求的缓存客户端。
在上述通知消息中,还可以携带有超时时间timeout的信息;这样,就可以将节点3'访问节点4以获取数据的操作限定在timeout之内。如果上述获取数据的操作在超出所述timeout后仍未完成,节点3'也会停止继续访问节点4来获取数据的过程。
更进一步地,还可以在上述通知消息中添加hash段M的范围(例如:10001~20200);这样,在缓存客户端向节点3'请求获取数据而在节点3'中并没有相应数据的时候,节点3'会对所述数据的键进行一致性哈希运算(这里进行一致性哈希运算的算法同缓存客户端中保存的一致性哈希算法是一样的),并将运算得到的哈希值跟所述通知消息中携带的hash段M的范围进行比对,判断所述由节点3'计算得到哈希值是否属于hash段M的范围;如果属于,节点3'才可以访问节点4以获取相应的数据。通过在通知消息中添加hash段M的范围信息,可以更加明确节点3'需要从节点4中获取的数据是即将丢失数据的hash段M所对应的数据,而非其它hash段的数据,这样可以减少信令消耗、节省资源。
上面的描述中仅以缓存客户端向节点3'发起读操作请求为例,如果所述节点3'接收到的是计数请求,而本节点中又没有相应的计数值时,同样可以通过访问节点4来获取以往记录的计数值;该处理过程同上述处理读操作请求的过程基本原理一致,此处不再赘述。
结合图8的情况,节点1沿“圆”的逆时针方向移动至节点1'的位置。对于节点1和节点1'之间的hash段N,其原属于节点1的覆盖范围;在节点1移动后,所述hash段N归属到节点2的覆盖范围。此时,缓存客户端在请求获取hash段N上的数据时,会向节点2发起该读操作请求,而hash段N上的数据实际保存在节点1'(也就是移动后的节点1)中而非节点2中,因此就会造成hash段N上的数据丢失。
在本实施例中,在移动了节点1的位置之后,分布式缓存***中的缓存管理装置就会向节点2发送一通知消息,该通知消息中包含有节点1'的位置信息(一般指IP地址和端口号)。这样,在缓存客户端向节点2请求获取hash段N上的数据时,如果在节点2中没有相应的数据,那么节点2会根据所述位置信息去访问节点1'以获取相应的数据(例如通过图8中所示的T1接口),并将获取到的数据保存在节点2中,同时将所述数据返回给发起读操作请求的缓存客户端。
在上述通知消息中,还可以携带有超时时间timeout的信息;这样,就可以将节点2访问节点1'以获取数据的操作限定在timeout之内。如果上述获取数据的操作在超出所述timeout后仍未完成,节点2也会停止继续访问节点1'来获取数据的过程。
更进一步地,还可以在上述通知消息中添加hash段N的范围(例如:10001~20200);这样,在缓存客户端向节点2请求获取数据而在节点2中并没有相应数据的时候,节点2会对所述数据的键进行一致性哈希运算(这里进行一致性哈希运算的算法同缓存客户端中保存的一致性哈希算法是一样的),并将运算得到的哈希值跟所述通知消息中携带的hash段N的范围进行比对,判断所述由节点2计算得到哈希值是否属于hash段N的范围;如果属于,节点2才可以访问节点1'以获取相应的数据。通过在通知消息中添加hash段N的范围信息,可以更加明确节点3'需要从节点4中获取的数据是即将丢失数据的hash段N所对应的数据,而非其它hash段的数据,这样可以减少信令消耗、节省资源。
上面的描述中仅以缓存客户端向节点2发起读操作请求为例,如果所述节点2接收到的是计数请求,而本节点中又没有相应的计数值时,同样可以通过访问节点1'来获取以往记录的计数值;该处理过程同上述处理读操作请求的过程基本原理一致,此处不再赘述。
本实施例提供的分布式缓存资源调度的方法,在当前分布式缓存***中存在负载不均时,通过移动缓存节点在分布式缓存***的虚拟圆结构上的位置来改变不同缓存节点所承担的负载量,使得不同缓存节点之间的负载值差异逐渐变小,进而使所述分布式缓存***达到负载均衡的状态;
而且,在本实施例中还提供了一种减少缓存数据丢失的方案,通过将某一段即将丢失数据的哈希段对应的旧缓存节点的位置信息告知该哈希段对应的新缓存节点,使得所述新缓存节点能够根据所述位置信息访问旧缓存节点以获取相应的数据,进而减少数据丢失的情况。
实施例四:
在本实施例中,将以一具体实例来进一步说明通过在分布式缓存***中添加缓存节点,来实现分布式缓存***中资源调度的方法。
首先,判断当前分布式缓存***中是否存在负载过高,具体的判断方式在前面已有描述,此处不再赘述;如果当前分布式缓存***中存在负载过高,则可以通过在所述“圆”上增加缓存节点的方式来对分布式缓存***中的缓存节点的布局进行调整。
具体地,在所述“圆”上增加缓存节点的过程,如图9所示,包括:
901、选取所述“圆”上负载值最高的缓存节点,例如图10中的节点5。
902、在所述负载值最高的缓存节点所对应的哈希段的中间位置增设一缓存节点。
参看图10所示的分布式缓存***中的“圆”结构,负载值最高的缓存节点是节点5,而节点5所覆盖的哈希段即为位于节点5的逆时针方向上的节点4和节点5之间的哈希段。此时,在节点5所覆盖的哈希段的中间位置增设一节点5';由于该节点5'位于节点5的顺时针方向而且正位于所述哈希段的中间位置,因此节点5'将哈希段均分为P1和P2两段,使得哈希段P1仍然归属于节点5,而哈希段P2则归属到节点5',从而降低节点5上的负载,同时也降低了当前分布式缓存***中所有节点的平均负载。
如果在所述“圆”上增加了一个节点之后,当前分布式缓存***中仍然存在负载过高的问题,那么可以重复上述操作,直至分布式缓存***中的整体负载低于上限值。
通过上述方法,在“圆”上增设新的缓存节点,可以对原来负载值较高的缓存节点上的负载进行分流,进而降低分布式缓存***的整体负载,解决***过载的问题。
在本实施例中,需要注意的是,在增加缓存节点前,首先要确保已有足够数量的缓存节点服务器是处于启动状态(可以是正在运行中或者待机中),这样才能顺利地将新的缓存节点加入到所述虚拟圆结构中,以分担其它缓存节点上的负载。
然而,在所述分布式缓存***中,只要存在缓存节点布局上的变动,就会出现所述“圆”中的一段hash段的数据会在访问时丢失的情况。
针对这一问题,在本实施例中,由缓存管理装置向即将丢失数据的hash段对应的新缓存节点发送一通知消息,该通知消息中包含有所述即将丢失数据的hash段对应的旧缓存节点的位置信息。所述位置信息中包含有旧缓存节点的IP地址和端口号,当然还可以包含其它一些用于表征位置的信息。
结合图10的情况,在节点4和节点5之间的哈希段的中间位置增设节点5'。对于节点4和节点5'之间的hash段P2,其原属于节点5的覆盖范围;在增设了节点5'之后,所述hash段P2归属到节点5'的覆盖范围。此时,缓存客户端在请求获取hash段P2上的数据时,会向节点5'发起该读操作请求,而实际上hash段P2上的数据仍然保存在节点5中而非节点5'中,因此就会造成hash段P2上的数据丢失。
在本实施例中,在增加了节点5'之后,分布式缓存***中的缓存管理装置就会向节点5'发送一通知消息,该通知消息中包含有节点5的位置信息(一般指IP地址和端口号)。这样,在缓存客户端向节点5'请求获取hash段P2上的数据时,如果在节点5'中没有相应的数据,那么节点5'会根据所述位置信息去访问节点5以获取相应的数据,并将获取到的数据保存在节点5'中,同时将所述数据返回给发起读操作请求的缓存客户端。
在上述通知消息中,还可以携带有超时时间timeout的信息;这样,就可以将节点5'访问节点5以获取数据的操作限定在timeout之内。如果上述获取数据的操作在超出所述timeout后仍未完成,节点5'也会停止继续访问节点5来获取数据的过程。
更进一步地,还可以在上述通知消息中添加hash段P2的范围;这样,在缓存客户端向节点5'请求获取数据而在节点5'中并没有相应数据的时候,节点5'会对所述数据的键进行一致性哈希运算,并将运算得到的哈希值跟所述通知消息中携带的hash段P2的范围进行比对,判断所述由节点5'计算得到哈希值是否属于hash段P2的范围;如果属于,节点5'才可以访问节点5以获取相应的数据。通过在通知消息中添加hash段P2的范围信息,可以更加明确节点5'需要从节点5中获取的数据是即将丢失数据的hash段P2所对应的数据,而非其它hash段的数据,这样可以减少信令消耗、节省资源。
上面的描述中仅以缓存客户端向节点5'发起读操作请求为例,如果所述节点5'接收到的是计数请求,而本节点中又没有相应的计数值时,同样可以通过访问节点5来获取以往记录的计数值;该处理过程同上述处理读操作请求的过程基本原理一致,此处不再赘述。
本实施例提供的分布式缓存资源调度的方法,在当前分布式缓存***中存在负载过高时,通过增加新的缓存节点来改变不同缓存节点所承担的负载量,并降低所有缓存节点的平均负载,也就是降低分布式缓存***的整体负载,使所述分布式***处于一种平衡的状态;
而且,在本实施例中还提供了一种减少缓存数据丢失的方案,通过将某一段即将丢失数据的哈希段对应的旧缓存节点的位置信息告知该哈希段对应的新缓存节点,使得所述新缓存节点能够根据所述位置信息访问旧缓存节点以获取相应的数据,进而减少数据丢失的情况。
实施例五:
在本实施例中,将以一具体实例来进一步说明通过从分布式缓存***中移除缓存节点,来实现分布式缓存***中资源调度的方法。
首先,判断当前分布式缓存***中是否存在负载过低,具体的判断方式在前面已有描述,此处不再赘述;如果当前分布式缓存***中存在负载过低,则可以通过从所述“圆”上移除缓存节点的方式来对分布式缓存***中的缓存节点的布局进行调整。
具体地,在所述“圆”上增加缓存节点的过程,如图11所示,包括:
1101、选取所述“圆”上总负载值最低的一对相邻缓存节点,例如图12中的节点2和节点3。
1102、将所述总负载值最低的一对相邻缓存节点中位于反方向上的负载节点从所述分布式缓存***中移除。在经过一定时长之后,被移除的缓存节点就会被置为关机、待机或者待命等状态。
参看图12所示的分布式缓存***中的“圆”结构,总负载值最低的一对相邻缓存节点是节点2和节点3,且节点2位于节点3的逆时针方向上。在移除了节点2之后,原本属于节点2的覆盖范围内的哈希段Q全部归属到了节点3的覆盖范围。这样,由于缓存节点数量的减少,当前分布式缓存***中所有节点的平均负载升高,也就是当前分布式缓存***的整体负载升高,使得当前***维持在一定的平衡状态。
如果在从所述“圆”上移除了一个节点之后,当前分布式缓存***中仍然存在负载过低的问题,那么可以重复上述操作,直至分布式缓存***中的整体负载高于下限值。
不过,在所述分布式缓存***中,只要存在缓存节点布局上的变动,就会出现所述“圆”中的一段hash段的数据会在访问时丢失的情况。
针对这一问题,在本实施例中,由缓存管理装置向即将丢失数据的hash段对应的新缓存节点发送一通知消息,该通知消息中包含有所述即将丢失数据的hash段对应的旧缓存节点的位置信息。所述位置信息中包含有旧缓存节点的IP地址和端口号,当然还可以包含其它一些用于表征位置的信息。
结合图12的情况,在移除了节点2之后,原本属于节点2的覆盖范围内的哈希段Q全部归属到了节点3的覆盖范围。此时,缓存客户端在请求获取hash段Q上的数据时,会向节点3发起该读操作请求,而实际上hash段Q上的数据仍然保存在节点2中而非节点3中,因此就会造成hash段Q上的数据丢失。
在本实施例中,在移除了节点2之后,分布式缓存***中的缓存管理装置就会向节点3发送一通知消息,该通知消息中包含有节点2的位置信息(一般指IP地址和端口号)。这样,在缓存客户端向节点3请求获取hash段Q上的数据时,如果在节点3中没有相应的数据,那么节点3会根据所述位置信息去访问节点2以获取相应的数据(虽然节点2从所述“圆”中移除,但还是可以根据位置信息对其进行寻址的),并将获取到的数据保存在节点3中,同时将所述数据返回给发起读操作请求的缓存客户端。
在上述通知消息中,还可以携带有超时时间timeout的信息;这样,就可以将节点3访问节点2以获取数据的操作限定在timeout之内。如果上述获取数据的操作在超出所述timeout后仍未完成,节点3也会停止继续访问节点2来获取数据的过程。
更进一步地,还可以在上述通知消息中添加hash段Q的范围;这样,在缓存客户端向节点3请求获取数据而在节点3中并没有相应数据的时候,节点3会对所述数据的键进行一致性哈希运算,并将运算得到的哈希值跟所述通知消息中携带的hash段Q的范围进行比对,判断所述由节点3计算得到哈希值是否属于hash段Q的范围;如果属于,节点3才可以访问节点2以获取相应的数据。通过在通知消息中添加hash段Q的范围信息,可以更加明确节点3需要从节点2中获取的数据是即将丢失数据的hash段Q所对应的数据,而非其它hash段的数据,这样可以减少信令消耗、节省资源。
上面的描述中仅以缓存客户端向节点3发起读操作请求为例,如果所述节点3接收到的是计数请求,而本节点中又没有相应的计数值时,同样可以通过访问节点2来获取以往记录的计数值;该处理过程同上述处理读操作请求的过程基本原理一致,此处不再赘述。
本实施例提供的分布式缓存资源调度的方法,在当前分布式缓存***中存在负载过低时,通过移除某一缓存节点来改变不同缓存节点所承担的负载量,并提高所有缓存节点的平均负载,也就是提高分布式缓存***的整体负载,使所述分布式***处于一种平衡的状态;
而且,在本实施例中还提供了一种减少缓存数据丢失的方案,通过将某一段即将丢失数据的哈希段对应的旧缓存节点的位置信息告知该哈希段对应的新缓存节点,使得所述新缓存节点能够根据所述位置信息访问旧缓存节点以获取相应的数据,进而减少数据丢失的情况。
在对实际的分布式缓存***进行负载均衡操作时,上述实施例三、实施例四和实施例五中提供的方案都不是孤立的,可以优选地采用其中一种方案,也可以是采用其中两种或者三种的结合,这样可以达到更好的效果。
此外,在上述实施例三、实施例四和实施例五中,如果涉及到写操作请求的话,那么所述缓存管理装置在将即将丢失数据的哈希段对应的旧缓存节点的位置信息告知新缓存节点的同时,也需要将所述新缓存节点的位置信息告知旧缓存节点。
这样,在缓存客户端向所述新缓存节点发起写操作请求时,所述新缓存节点会接收并保存所述缓存客户端要求写入的数据;然后判断所接收的数据是否属于所述即将丢失数据的哈希段;如果数据,则所述新缓存节点会根据所述旧缓存节点的位置信息将所述数据再转发给所述旧缓存节点以进行同步。同样的,所述旧缓存节点在接收到属于所述即将丢失数据的哈希段的数据时,也会根据所述新缓存节点的位置信息将数据转发给所述新缓存节点以进行同步,从而实现同一段hash段对应的新、旧缓存节点之间的写同步。
当然,上述写同步的过程也可以是限定在超时时间timeout内进行;如果超过了timeout,对数据进行写同步的操作仍未完成,所述新缓存节点也会停止数据同步的过程。
通过对同一hash段对应的新、旧缓存节点进行写同步,可以避免缓存节点位置变更后,对同一个“键”的读写不在同一个缓存节点的问题。
在上述实施例中,均是以“圆”的顺时针作为正方向来对本发明实施例中提供的方案加以阐述的。不过,需要说明的是,以顺时针作为“圆”的正方向只是本发明实施例中的一个示例;如果以逆时针方向作为所述“圆”的正方向的话,即按照逆时针方向来选择保存数据的缓存节点,其进行负载均衡的过程同上述以顺时针方向作为正方向时的方案的基本原理一致,因此,同样属于本发明的保护范围之内。
实施例六:
对应于上述方法的实施例,一方面,在本实施例中提供了一种用于分布式缓存资源调度的缓存管理装置,如图13所示,包括判断单元131、调整单元132以及监控单元133;其中,
监控单元133,用于对所述分布式缓存***中的各缓存节点的负载值进行监控;
判断单元131,用于根据所述负载值判断当前分布式缓存***中是否存在负载异常;所述负载异常包括负载不均、负载过高或者负载过低;
调整单元132,用于在当前分布式缓存***中存在负载异常时,对所述分布式缓存***中的缓存节点的布局进行调整。
同前述的方法实施例中一样,在本实施例的分布式缓存***中各缓存节点分布在一个基于一致性哈希算法的“圆”上,并以数据的键到保存所述数据的缓存节点的方向作为所述虚拟圆的正方向;则,所述调整单元132包括:
移动模块1321,用于移动缓存节点在所述虚拟圆上的位置;和/或,
增加模块1322,用于在所述虚拟圆上增加缓存节点;和/或,
移除模块1323,用于从所述虚拟圆中移除缓存节点。
具体地,如图14所示,所述移动模块1321可以包括:
第一选取子模块141,用于选取所述虚拟圆上负载差距最大的至少一对相邻缓存节点;
比较子模块142,用于对所选出的每对相邻缓存节点中的两个缓存节点的负载值进行比较;
移动子模块143,用于在所选出的每对相邻缓存节点中位于正方向的缓存节点的负载值较大时,将位于反方向的缓存节点沿正方向移动;在位于反方向的缓存节点的负载值较大时,将该缓存节点沿反方向移动。
如图15所示,所述增加模块1322可以包括:
第二选取子模块151,用于选取所述虚拟圆上负载值最高的缓存节点;
增设子模块152,用于在所述负载值最高的缓存节点所对应的哈希段的中间位置增设一缓存节点。
如图16所示,所述移除模块1323可以包括:
第三选取子模块161,用于选取所述虚拟圆中总负载值最低的一对相邻缓存节点;
移除子模块162,用于将所述总负载值最低的一对相邻缓存节点中位于反方向上的负载节点从所述分布式缓存***中移除。
另一方面,本实施例中还提供了一种缓存节点,如图17所示,该缓存节点包括:
接收单元171,用于接收缓存管理装置发送的通知消息,该消息中包含有分布式缓存***的虚拟圆上即将丢失数据的哈希段对应的旧缓存节点的位置信息;
获取单元172,用于在当前缓存节点上不存在缓存客户端要读取的数据时,根据所述位置信息访问所述旧缓存节点以获取并保存所述数据;
其中,所述即将丢失数据的哈希段是所述分布式缓存***的虚拟圆上出现缓存节点布局的调整后,所归属的缓存节点有改变的哈希段。
进一步地,所述接收单元171接收到的通知消息中还包括:所述即将丢失数据的哈希段的范围;那么,所述获取单元172,可以包括:
判断模块1721,用于在当前缓存节点上不存在缓存客户端要读取的数据时,判断所述缓存客户端要读取的数据的键对应的哈希值是否属于所述即将丢失的数据的哈希段;
获取模块1722,用于在所述判断模块的判断结果为是时,根据所述位置信息访问所述旧缓存节点以获取并保存所述数据。
如果当前分布式缓存***还涉及到写操作的话,那么本实施例中的缓存节点中还可以包括:
保存单元173,用于接收并保存所述缓存客户端或者所述旧缓存节点要求写入的数据;
判断单元174,用于判断所述缓存客户端要求写入的数据的键对应的哈希值是否属于所述即将丢失的数据的哈希段;
同步单元175,用于在所述判断单元的判断结果为是时,将所述缓存客户端要求写入的数据同步写入到所述旧缓存节点上。
此外,如果所述接收单元171接收到的通知消息中还包括超时时间;那么,本实施例中的缓存节点还包括:
停止单元176,用于在超出所述超时时间后,停止数据获取或者数据同步的操作。
此外,本实施例中还提供了一种分布式缓存***,如图18所示,该分布式缓存***包括:缓存管理装置181、缓存客户端182以及多个缓存节点183;其中,
所述缓存客户端182,用于根据一致性哈希算法将数据分布到所述多个缓存节点183上;
所述缓存管理装置181,用于对分布式缓存***中的各缓存节点183的负载值进行监控,并根据所述负载值判断当前分布式缓存***中是否存在负载异常;若存在异常,则对所述多个缓存节点183的布局进行调整;其中,所述负载异常包括负载不均、负载过高或者负载过低。
进一步地,所述缓存管理装置181,还用于在完成缓存节点183的布局调整后,向分布式缓存***的虚拟圆上即将丢失数据的哈希段对应的新缓存节点发送一通知消息,该通知消息中包含有分布式缓存***的虚拟圆上即将丢失数据的哈希段对应的旧缓存节点的位置信息;这样,所述新缓存节点在当前缓存节点上不存在缓存客户端要读取的数据时,就能够根据所述位置信息访问所述旧缓存节点以获取并保存所述数据;
其中,所述即将丢失数据的哈希段是所述分布式缓存***的虚拟圆上出现缓存节点布局的调整后,所归属的缓存节点有改变的哈希段。
本实施例中提供的分布式缓存资源调度的装置及***,在当前分布式缓存***中存在负载异常时,通过移动缓存节点在分布式缓存***的虚拟圆结构上的位置、或者在所述虚拟圆结构上添加或移除缓存节点来改变不同缓存节点所承担的负载量,实现分布式缓存***中资源分布的自动化调度,使所述分布式缓存***的资源分布处于一种平衡状态;而且,在本实施例所提供的方案中,通过将某一段即将丢失数据的哈希段对应的旧缓存节点的位置信息告知该哈希段对应的新缓存节点,使得所述新缓存节点能够根据所述位置信息访问旧缓存节点以获取相应的数据,进而减少数据丢失的情况。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (8)

1.一种分布式缓存资源调度的方法,其特征在于,包括:
接收缓存管理装置发送的通知消息,该通知消息中包含有分布式缓存***的虚拟圆上即将丢失数据的哈希段对应的旧缓存节点的位置信息;
在当前缓存节点上不存在缓存客户端要读取的数据时,根据所述位置信息访问所述旧缓存节点以获取并保存所述数据;
其中,所述即将丢失数据的哈希段是所述分布式缓存***的虚拟圆上出现缓存节点布局的调整后,所归属的缓存节点有改变的哈希段。
2.根据权利要求1所述的方法,其特征在于,所述通知消息中还包括:所述即将丢失数据的哈希段的范围;则,
所述根据所述位置信息访问所述旧缓存节点来获取并保存所述数据,包括:
判断所述缓存客户端要读取的数据的键对应的哈希值是否属于所述即将丢失数据的哈希段;
如果属于,则根据所述位置信息访问所述旧缓存节点以获取并保存所述数据。
3.根据权利要求2所述的方法,其特征在于,还包括:
接收并保存所述缓存客户端或者所述旧缓存节点要求写入的数据;
判断所述缓存客户端要求写入的数据的键对应的哈希值是否属于所述即将丢失数据的哈希段;
如果属于,则将所述缓存客户端要求写入的数据同步写入到所述旧缓存节点上。
4.根据权利要求1、2或3所述的方法,其特征在于,所述通知消息中还包括超时时间;则,所述方法还包括:
在超出所述超时时间后,停止数据获取或者数据同步的操作。
5.一种缓存节点,其特征在于,包括:
接收单元,用于接收缓存管理装置发送的通知消息,该消息中包含有分布式缓存***的虚拟圆上即将丢失数据的哈希段对应的旧缓存节点的位置信息;
获取单元,用于在当前缓存节点上不存在缓存客户端要读取的数据时,根据所述位置信息访问所述旧缓存节点以获取并保存所述数据;
其中,所述即将丢失数据的哈希段是所述分布式缓存***的虚拟圆上出现缓存节点布局的调整后,所归属的缓存节点有改变的哈希段。
6.根据权利要求5所述的缓存节点,其特征在于,所述通知消息中还包括:所述即将丢失数据的哈希段的范围;则,
所述获取单元,包括:
判断模块,用于在当前缓存节点上不存在缓存客户端要读取的数据时,判断所述缓存客户端要读取的数据的键对应的哈希值是否属于所述即将丢失数据的哈希段;
获取模块,用于在所述判断模块的判断结果为是时,根据所述位置信息访问所述旧缓存节点以获取并保存所述数据。
7.根据权利要求6所述的缓存节点,其特征在于,该缓存节点还包括:
保存单元,用于接收并保存所述缓存客户端或者所述旧缓存节点要求写入的数据;
判断单元,用于判断所述缓存客户端要求写入的数据的键对应的哈希值是否属于所述即将丢失数据的哈希段;
同步单元,用于在所述判断单元的判断结果为是时,将所述缓存客户端要求写入的数据同步写入到所述旧缓存节点上。
8.根据权利要求5、6或7所述的缓存节点,其特征在于,所述通知消息中还包括超时时间;则,所述缓存节点还包括:
停止单元,用于在超出所述超时时间后,停止数据获取或者数据同步的操作。
CN201410186164.8A 2009-12-31 2009-12-31 分布式缓存资源调度的方法、装置及*** Active CN104202349B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410186164.8A CN104202349B (zh) 2009-12-31 2009-12-31 分布式缓存资源调度的方法、装置及***

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200980118719.2A CN102577241B (zh) 2009-12-31 2009-12-31 分布式缓存资源调度的方法、装置及***
CN201410186164.8A CN104202349B (zh) 2009-12-31 2009-12-31 分布式缓存资源调度的方法、装置及***

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200980118719.2A Division CN102577241B (zh) 2009-12-31 2009-12-31 分布式缓存资源调度的方法、装置及***

Publications (2)

Publication Number Publication Date
CN104202349A CN104202349A (zh) 2014-12-10
CN104202349B true CN104202349B (zh) 2016-04-13

Family

ID=52087574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410186164.8A Active CN104202349B (zh) 2009-12-31 2009-12-31 分布式缓存资源调度的方法、装置及***

Country Status (1)

Country Link
CN (1) CN104202349B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106034144B (zh) * 2015-03-12 2019-10-15 中国人民解放军国防科学技术大学 一种基于负载均衡的虚拟资产数据存储方法
CN105007328A (zh) * 2015-07-30 2015-10-28 山东超越数控电子有限公司 一种基于一致性hash的网络cache设计方法
CN105099912A (zh) * 2015-08-07 2015-11-25 浪潮电子信息产业股份有限公司 一种多路径的数据调度方法及装置
CN107450791B (zh) * 2016-05-30 2021-07-02 阿里巴巴集团控股有限公司 一种信息显示方法及装置
CN109951543A (zh) * 2019-03-14 2019-06-28 网宿科技股份有限公司 一种cdn节点的数据查找方法、装置及网络设备
CN115904261A (zh) * 2023-03-09 2023-04-04 浪潮电子信息产业股份有限公司 一种缓存倾斜抑制方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731742A (zh) * 2005-08-26 2006-02-08 南京邮电大学 对等计算中一种分布式哈希表
CN1937557A (zh) * 2006-09-05 2007-03-28 华为技术有限公司 结构化对等网络***及其负载查询、转移及资源查找方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731742A (zh) * 2005-08-26 2006-02-08 南京邮电大学 对等计算中一种分布式哈希表
CN1937557A (zh) * 2006-09-05 2007-03-28 华为技术有限公司 结构化对等网络***及其负载查询、转移及资源查找方法

Also Published As

Publication number Publication date
CN104202349A (zh) 2014-12-10

Similar Documents

Publication Publication Date Title
CN102577241B (zh) 分布式缓存资源调度的方法、装置及***
CN104202349B (zh) 分布式缓存资源调度的方法、装置及***
US20160306554A1 (en) Data storage management
US9405589B2 (en) System and method of optimization of in-memory data grid placement
US9568975B2 (en) Power balancing to increase workload density and improve energy efficiency
US10178021B1 (en) Clustered architecture design
CN108173698B (zh) 网络服务管理方法、装置、服务器及存储介质
Xing et al. A distributed multi-level model with dynamic replacement for the storage of smart edge computing
CN108183947A (zh) 分布式缓存方法及***
WO2017020742A1 (zh) 负载均衡方法及设备
CN104994156A (zh) 一种集群的负载均衡方法及***
CN102164116A (zh) 均衡负载的方法、***及相应设备
CN103631894A (zh) 一种基于hdfs的动态副本管理方法
CN108512768B (zh) 一种访问量的控制方法及装置
CN113553179A (zh) 分布式键值存储负载均衡方法及***
EP3588913B1 (en) Data caching method, apparatus and computer readable medium
CN107623732A (zh) 一种基于云平台的数据存储方法、装置、设备及存储介质
CN105095495A (zh) 一种分布式文件***缓存管理方法和***
US20180375739A1 (en) Cache based on dynamic device clustering
CN111385359A (zh) 对象网关的负载处理方法及装置
CN117033004B (zh) 负载均衡方法、装置、电子设备及存储介质
CN103955397B (zh) 一种基于微架构感知的虚拟机调度多策略选择方法
CN111049750B (zh) 一种报文转发方法、***及设备
EP2983105B1 (en) Electronic device, on-chip memory and method of operating the on-chip memory
CN112540966A (zh) 一种文件同步的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220223

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right