CN102244685B - 一种支持负载均衡的分布式缓存动态伸缩方法及*** - Google Patents
一种支持负载均衡的分布式缓存动态伸缩方法及*** Download PDFInfo
- Publication number
- CN102244685B CN102244685B CN201110230333XA CN201110230333A CN102244685B CN 102244685 B CN102244685 B CN 102244685B CN 201110230333X A CN201110230333X A CN 201110230333XA CN 201110230333 A CN201110230333 A CN 201110230333A CN 102244685 B CN102244685 B CN 102244685B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- caching server
- migration
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种支持负载均衡的分布式缓存动态伸缩方法及***,属于软件技术领域。本方法为:1)各缓存服务器定期监测各自的资源利用率;2)各缓存服务器根据当前监测的资源利用率计算各自的加权负载值Li,并将其发送至缓存集群管理器;3)缓存集群管理器根据加权负载值Li,计算分布式缓存***当前的平均负载值当高于阈值thremax时,执行扩展操作;当低于设定阈值thremin时,执行收缩操作。本***包括缓存服务器、缓存客户端和缓存集群管理器;缓存服务器分别通过网络与缓存客户端、缓存集群管理器连接。本发明保障网络流量在各缓存节点间均衡分布,优化了***资源利用率;解决了数据一致性与服务的持续可用性保障问题。
Description
技术领域
本发明涉及一种分布式缓存动态伸缩方法及其***,尤其涉及一种支持负载均衡的分布式缓存动态伸缩方法及***,属于软件技术领域。
背景技术
云计算环境下,用户数量和网络流量出现了爆发性增长,如何在廉价、标准化的硬件和软件平台之上,对大容量、业务关键型的事务处理应用提供良好的支撑成为众多企业面临的问题。通常服务端瓶颈会出现在数据库,为了进一步解决该问题,分布式缓存技术得以引入。分布式缓存拉近了集群化对象数据与应用之间的距离,是加速数据访问、提供数据分布式共享的关键技术,该技术对于提高***的扩展能力、保障***可靠性具有非常重要的作用。
Forrester在2010年的技术报告中指出,可伸缩性是分布式缓存***的关键特性之一。本发明将缓存***的伸缩分为两类:静态伸缩和动态伸缩。静态伸缩是指***增减缓存节点时,需要停止当前运行的***,根据节点增减的情况更新配置信息,然后重新启动整个***。动态伸缩则是一种在线伸缩,***可以根据负载的变化自动完成缓存节点的添加和删除、缓存数据的迁移以及配置信息的更新,是在无人工参与的情况下进行的自我管理与自我维护。传统缓存***以改进数据访问速度为主要目的,大多应用于页面缓存、处理缓存和数据对象缓存。当前缓存***除加速应用访问外,还用来存储状态数据,提供高可用支持,因此在伸缩时数据一致性和服务的持续可用性必须得到保障。现有的分布式缓存***大多不支持动态伸缩,如OSCache,Memcached,Terracotta EX等,***在规模扩展时需要重启,导致服务中断和数据丢失,无法适应应用的需求。
实现一个可动态伸缩的分布式缓存***存在以下两方面的挑战:1)缓存动态伸缩时,部分缓存数据需要在节点间完成迁移。迁移过程中缓存服务中断导致请求失败或重要业务数据、状态数据的丢失,多用户并发操作数据的多个副本而产生的数据不一致等均会给用户带来利益损失。此外,数据迁移也要考虑迁移开销和当前***负载状况,合理控制迁移进度,避免因开销过大导致***过载以至服务崩溃。因此,如何保障伸缩过程中缓存服务的持续可用性与数据一致性成为一大挑战。2)缓存***中会存在若干热点数据区,即访问负载相对较高的区域,热点数据区的位置往往取决于应用的特点及用户访问模式。热点数据区极易成为***瓶颈,进而对缓存服务的可用性带来影响,因此伸缩过程中需要考虑对热点数据进行重均衡处理。
在分布式缓存***中,数据均衡策略将数据分布存储在各缓存服务器节点上,获取数据时从计算得到的节点上检索,避免了泛洪式查找,提高了数据查找的效率。早期比较流行的策略是余数算法,这种算法实现简单,其核心思想是依据服务器节点数的余数进行数据分布。余数算法的不足在于当服务器节点发生变化时(例如节点失效或节点伸缩时),键值映射到的服务器节点会发生剧烈变化,只有少量的数据仍在原服务器节点访问,其他数据则转移到了新的服务器节点,命中率大幅下降。
为了解决上述问题,麻省理工学院的学者(D.Karger,E.Lehman,T.Leighton,R.Panigrahy,M.Levine,and D.Lewin.Consistent hashing and random trees:distributed cachingprotocols for relieving hot spots on the World Wide Web.In Proceedings of the Twenty-NinthAnnual ACM Symposium on theory of Computing.STOC′97.pp.654-663.1997.)在97年提出了大家现在所熟知的一致性哈希算法(Consistent hashing),该算法目前仍在应用层组播、P2P和缓存平台等领域广泛使用。其基本思想是哈希函数的输出范围被定义为一个固定的环形空间,称之为哈希环,每个服务器节点与环上某一随机位置所代表的值相映射。每个缓存数据项的键值也被映射到哈希环上一个位置,然后在环上顺时针前进,当找到第一个代表某服务器节点的位置时,该数据项存储到此缓存服务器中。一致性哈希算法较好地解决了数据分区和路由问题,最大限度的降低了节点变化对数据分布造成的影响。表示为图1。文献(D.Hastorun,M.Jampani,G.Kakulapati,A.Pilchin,S.Sivasubramanian,P.Vosshall,and W.Vogels,“Dynamo:Amazon’s highly available key-value store,”In Proceedings of ACMSymposium on Operating Systems Principles(SOSP′07).pp.205-220,2007.)对一致性哈希算法进行了深入分析,认为其存在以下两点不足:1)服务节点在哈希环上随机分布导致数据与负载的不均匀分布;2)算法忽略了服务节点的性能差异。在实际场景中,热点分区对***的影响无法通过改进分布式哈希算法完全消除。
华盛顿州立大学的Chiu等人(D.Chiu,A.Shetty,G.Agrawal.Elastic Cloud Caches forAccelerating Service-Oriented Computations.In Proceedings of the ACM/IEEE InternationalConference for High Performance Computing,Networking,Storage and Analysis(SC′10).pp.1-11,2010.)针对缓存***的动态伸缩问题进行了研究,并提出了一种基于贪心法的数据迁移策略。当用户请求向缓存节点n***数据时,如果该节点剩余内存资源不足,会触发数据迁移事件,迁移算法将节点n的部分数据迁移到其他节点。目标节点的选取优先考虑当前负载最轻的缓存节点。如果迁移可能导致目标节点内存溢出,则分配一个新节点。迁移完成时,同步更新哈希映射表。节点收缩时选取当前负载最轻的两个缓存节点进行数据合并。上述研究工作的不足主要有两点:一是节点伸缩过程未考虑异构节点、热点分区访问带来的影响,无法动态均衡热点分区。二是未提供数据一致性保障,数据迁移操作可能受网络因素的影响导致操作失效或数据丢失,客户端哈希映射表信息不一致可能造成部分用户获取对象请求失败或并发操作数据的多个副本而产生不一致性问题等。
苏黎世联邦理工学院的Flavio的研究工作(ETH http://systems.ethz.pubzone.org/servlet/Attachment?attachmentId=109&versionId=1378371)主要针对云存储***的动态伸缩问题,该工作基于统计的方法在线监测热点分区,同时将热点分区的部分数据迁移至负载较轻的邻居节点。为了保障迁移顺利完成,其使用的哈希算法会保持Key之间的先后顺序。不足在于负载均衡决策在各缓存节点本地完成,缺乏全局信息,这样***往往需要经过多次迭代才能进入稳定的均衡状态,收敛速度慢,引入的开销较大。
发明内容
本发明的目的在于克服现有方案中存在的问题,提供一种支持负载均衡的分布式缓存动态伸缩方法及***。本发明方法在线监测***中各缓存节点的资源利用率,基于计算得到的加权负载值与***平均负载值决策***应如何伸缩。针对动态伸缩时的数据均衡问题,本发明方法考虑热点数据对***可用性造成的影响,提出了一种适用于异构环境的负载均衡方法。针对动态伸缩时的数据一致性保障问题,本发明实现了一种基于三阶段请求的数据访问协议,同时为了尽可能地消除数据迁移对***可用性造成的影响,本发明采用一种受控的数据迁移方法有效控制迁移进度,降低迁移开销。
在对缓存***动态伸缩时,本发明方法主要涉及以下三种基本机制:数据路由、数据均衡与信息同步机制,下面对这三部分内容作详细介绍:
(1)分布式缓存的路由机制可分为客户端主动(Client-driven)、服务器主动(Server-driven)以及负载均衡器路由三种。本发明方法采用客户端主动路由的机制,即客户端维护路由表,并依据路由表信息将请求直接转发至目标节点。相比于其他两种机制,该机制存在如下优点:数据路由到目标节点仅需要单跳,有效减少了多跳路由转发带来的网络开销;缓存服务器无须承担路由转发功能,有利于其性能的提高;响应时间短。
(2)本发明采用的数据均衡机制增加了对异构节点的支持,每个缓存节点i依据其处理能力被赋予一个初始权值wi。将整个哈希空间分成若干等大小的Q份数据分区(Q>>K,Q>>N,K为备份数,N为缓存服务节点数),缓存节点i按照如下方式被映射到第Ti个分区上:
分区与缓存节点的映射关系保存在分区服务器映射表中(映射表的第i行保存了第i个分区对应的缓存节点)。客户端采用二次哈希映射的方式来定位数据项,表示为图2。首先将数据项的key值通过一次哈希函数映射到哈希环上,位置信息标记为token,然后通过二次哈希映射函数将获取到的token映射为一个取值为1到Q之间的分区标识,得到分区标识后,客户端从分区服务器映射表中查询存放该分区的缓存节点。缓存***动态伸缩时会改变分区服务器映射关系,此时,客户端需要同步更新该映射表(也称为路由表或分区路由表)。
(3)分区路由表是整个缓存***得以正确运行的关键。缓存***动态伸缩和数据迁移时,分区路由信息会发生变化,因此需要有一套数据同步机制来确保路由信息的内容能够及时进行更新并获有效确认。现有的数据同步机制主要包括客户端确认、服务器确认、TTL(Time To Live)和捎带确认(Piggyback Validation)机制,本发明的分区路由信息同步采用Piggyback Validation方式。由于校验信息量较小,该同步机制引入的网络开销也相对较小,同时客户端和服务器端无需记录过多信息,不会产生额外开销。具体而言,当客户端向缓存服务器发送数据访问请求时,在请求中会捎带分区路由版本信息和同步信号;服务端解析请求时,如发现同步信号的存在则在请求响应中添加同步结果;客户端如接收到不同步信号,则重新向服务器请求新的路由信息,否则结束此次请求。
基于上述三种机制,本发明的技术解决方案可以表示为图3,包括以下步骤:
1)在特征采样时间段(或参考特征采样时间段)的每个采样窗口内,监测每个缓存节点的处理器(CPU)、内存(Memory)和网络(Network)等资源的利用率。
2)每个特征采样时间段结束时,各缓存节点负责计算该特征采样时间段内的加权负载值,计算方式如等式(2):
其中Li代表缓存节点i在该特征采样时间段内的加权负载值,α,β,γ分别表示CPU,内存和网络的权值,CPUij,Memij和Netij分别表示节点i在第j个采样窗口内的CPU,内存和网络资源利用率,M表示采样窗口数。
各缓存节点将计算得到的加权负载值发送至缓存集群管理器,管理器负责计算该特征采样时间段内***的平均负载值并对***如何伸缩作出决策,计算方式如等式(3):
当***的平均负载值高于阈值thremax时,执行节点扩展操作;当低于阈值thremin时,执行节点收缩操作。缓存集群管理器负责协调各缓存节点完成分区路由信息的更新以及数据分区的迁移。
3)缓存节点动态扩展时,部分缓存数据需要在节点间完成迁移。本发明方法考虑热点数据对***可用性造成的影响,在已有数据分区方案的基础上,通过移动不均衡服务节点上的分区数据以实现负载均衡的目标。假设***中现有缓存节点数为N,目标是求解第N+1个节点动态加入时的数据分区迁移方案。本发明方法使用transBytesi表示缓存节点i在特征采样时间段内的平均网络流量,使用wi表示缓存节点i的权值。采用加权网络流量T的方差D(T)来标识网络流量的均衡程度,定义加权网络流量Ti与平均加权网络流量T如下:
在一个特征采样时间段内,如果缓存节点的加权网络流量Ti满足(ε为阈值),则认为该节点处于负载均衡状态;否则,认为处于非均衡状态。定义迁移节点集合为满足条件的节点构成的集合。按照加权网络流量Ti与平均加权网络流量间的关系将迁移节点集合进一步分为迁出节点集合MigrationOutSet(节点i属于迁出节点集合当且仅当)和迁入节点集合MigrationInSet(节点i属于迁入节点集合当且仅当)。同时,将新节点加入MigrationInSet中。迁移的基本元素为数据分区,缓存节点i的各分区网络流量表示为集合{ti1,ti2,ti3……tik},k表示该节点的分区数。迁移方向约束为单向,即数据只能从MigrationOutSet中的节点迁移到MigrationInSet中的节点上。目标函数如等式(5)所示:
目标函数:
求解数据分区迁移方案的目标是使迁移节点集合加权网络流量T的方差之和最小,其中S表示迁移节点集合中的节点数(S<N)。假定迁入节点的剩余空间为待填充空间,迁出节点的多余数据为待填装物品,则将该问题转化为0-1多背包(0-1MKP)问题。0-1MKP问题是一个NP难问题(S.Hanafi,A.Freville.An efficient tabu search approach for the the 0-1multidimensional knapsack problem.European of Operational Research,1998,106:659~675),本发明使用分支限界法求解该问题的近似最优解。
4)基于步骤3)中求解得到的数据迁移方案,缓存集群管理器协调各缓存节点完成数据迁移操作。迁移过程中的数据一致性与服务可用性需要得到保障,本发明方法采用三阶段请求的数据访问协议实现迁移数据的一致性访问,采用受控的数据迁移方法避免迁移操作给缓存服务器造成过大的开销,从而保障了缓存服务的持续可用性。
①基于三阶段请求的数据访问协议
为了保障迁移过程中用户访问的连续性,采用将数据分区迁移完成后,再将分区从迁出节点删除的策略。这样在数据迁移时,同一数据可能同时存在于迁出节点与迁入节点,二者的版本可能不一致。考虑到迁移操作开始时,缓存服务节点会更新路由信息,而客户端与服务端同步路由表版本号并判断当前路由信息是否为最新版本,如果为旧版本则需要再维护一份最新的路由表。因此在数据迁移过程中,发生客户端对迁移数据的访问时,可采用迁入节点优先的策略,即当迁入节点和迁出节点的数据产生冲突时(Vi≠Vo),缓存客户端认为迁入节点数据Vi有效,并将该数据返回(即直接返回Vi给用户),表示为图4。更新数据时,由于难于监控每个数据项的迁移状态,协议采用迁出方与迁入方均更新的方法,即客户端首先会更新迁出节点的数据Vo(更新数据即直接覆盖),当获取到更新成功的信息后,再更新迁入节点,以避免更新丢失(这里的更新丢失是指当迁出节点在数据更新请求到达之前已将该数据成功迁移至迁入节点时,如果此时只对迁出节点更新而未对迁入节点同步更新的话,则客户端从迁入节点取到的数据是旧版本的不一致数据),表示为图5。
由于采用缓存客户端主动的分区路由方式,为实现迁移数据访问的一致性目标,客户端需要根据服务器状态采用相应的数据访问方式,从而保持状态同步。为了解决该问题,本发明方法实现了一种基于客户端三阶段请求的数据访问协议。该协议中缓存客户端会保存多个版本的路由信息,同时将请求处理分为三个阶段。第一阶段,客户端基于捎带确认(Piggyback Validation)机制与缓存服务节点进行路由信息同步,信息同步的结果是确保请求客户端拥有最新两个版本的路由表(表示为RTn和RTn-1);第二阶段,客户端完成路由信息同步后,使用缓存***中最新版本的分区路由表RTn进行路由,基于捎带确认机制请求缓存数据;第三阶段,根据第二阶段缓存服务器返回的数据值及返回的服务器状态(分为迁移状态和稳定状态)作相应处理。如果此时服务器处于迁移状态,客户端首先会判断服务器返回的数据值是否为空。如果不为空,表明请求数据已成功迁移至目标节点,则客户端直接将该数据值返回给发出请求的应用服务;反之,如果返回的数据值为空,表明请求数据尚未迁移至目标节点,则客户端根据上一版本的路由信息RTn-1找出迁出节点,并向该节点发送数据请求。如果此时服务器处于稳定状态(扩展完成,无数据迁移状态),表明迁移过程已成功完成,此时缓存数据在缓存***中的存储位置具有唯一性,客户端直接将该数据值返回给请求的应用服务。
②受控的数据迁移
缓存节点动态扩展时,***资源利用率位于饱和点,而数据迁移操作会引入额外的网络和计算开销,如果此时迁出节点正在提供服务,这部分开销有可能会造成***服务异常终止,同时过快的迁移速度可能加剧***本来就已存在的资源紧张状况。为了保障迁移操作顺利完成,同时尽可能地消除数据迁移对***可用性造成的影响,本发明采用一种受控的数据迁移方法,即根据迁出节点的性能状况合理控制迁移操作进度(缓存数据通常从高负载节点迁移至低负载节点,因此迁移操作对迁出节点影响更大)。影响缓存服务器请求处理效率的主要因素是I/O网络带宽,本发明方法中,迁出节点对其网络开销进行监测,当网络流速达到某一设定的带宽阈值时,迁出节点会将数据迁移速度降低θ%。
与此同时,如果迁移过程持续时间过长或频繁中断,则会导致***长时间处于迁移状态而增加额外的数据同步开销,降低***整体性能。因此,在减缓数据迁移速度时不能完全中断数据迁移操作,本发明方法设定数据迁移最小可用的网络流速为该节点网络带宽的10%。
5)缓存节点动态收缩时,首先依然是确定数据迁移方案,选取***中负载(使用L表示)最轻的两个节点i’,j’(Lj’<Li’)执行分区合并,节点i’的所有分区均迁移至节点j’。在剩下的缓存节点中,依据加权网络流量Ti与平均加权网络流量的关系,将满足条件的迁移节点集合进一步分为迁出节点集合与迁入节点集合。使用分区限界法求解数据分区迁移方案,目标是使迁移节点集合加权网络流量T的方差之和最小。基于上述迁移方案完成数据迁移,数据迁移过程中的一致性保障基于三阶段请求的数据访问协议来完成,同时采用受控的数据迁移方法有效控制迁移进度。迁移操作完毕时,将节点i’从缓存集群中移除,表示为图6。
与现有技术相比,本发明具有如下技术优势:
1)本发明采用的数据均衡机制增加了对异构节点的支持,同时考虑了运行过程中热点分区对***可用性产生的影响,通过移动不均衡服务节点上的数据分区以保障网络流量在各缓存节点间均衡分布,优化了***资源利用率。
2)针对动态伸缩时的数据一致性保障问题,本发明实现了一种基于三阶段请求的数据访问协议,该协议采用捎带确认机制同步分区路由信息,引入的同步开销较小,易于实施。在三阶段请求处理中,客户端维护多个版本的路由信息,结合与服务器间的路由与状态同步,解决了迁移过程中的数据访问不一致问题;通过采用受控的数据迁移方法合理控制迁移进度,有效的避免了数据迁移对***可用性造成的影响。
3)本发明可为缓存平台的弹性资源供给与性能调优提供支持。通过对缓存节点各类资源利用率进行侦测,帮助平台管理人员及时发现***中的性能瓶颈,并自动完成缓存节点的动态扩展,保障了服务质量的连续性与一致性;当***资源利用率较低时,自动完成节点的动态收缩,实现资源的按需供给,同时减少了人工参与。
附图说明
图1表示一致性哈希;
图2表示二次哈希映射;
图3表示分布式缓存动态扩展方法;
图4表示数据迁移时get操作;
图5表示数据迁移时update操作;
图6表示分布式缓存动态收缩方法;
图7表示部署拓扑图;
图8表示三阶段请求处理;
图9表示迁移控制流程;
图10表示动态扩展性能测试结果。
具体实施方式
以下结合具体实施例和附图对本发明作进一步说明。
整个分布式缓存***由缓存服务器(Cache server)、缓存客户端(Cache Client)和缓存集群管理器(Cache Admin)三部分组成。三者之间通过网络连接。各缓存服务器独立运行,由缓存集群管理器通过管理Agent统一监控和管理。管理Agent与缓存服务器位于同一物理节点,负责生成JMX管理MBean,当收到缓存集群管理器发出的控制命令后,管理Agent会自动适配该命令并控制缓存服务进程执行相应的操作。
缓存集群管理器中,拓扑监测器采用基于Jgroups的组播技术监测服务器节点拓扑变化,并通过JMX远程访问管理Agent获取各服务节点的性能信息,最终提供统一的监控视图控制整个缓存集群。缓存集群管理器主要由组播通讯组件、拓扑监测器,控制器,集群管理模块,Web端控制台组成。其中集群管理模块主要提供数据分区重分布和集群规模调整(包括动态扩展和收缩)两个主要功能。
缓存服务器主要分为缓存服务和管理Agent两部分。其中缓存服务由数据管理模块、命令控制引擎、状态管理模块以及迁移管理模块组成。数据管理模块主要负责管理已分配的内存空间,同时还负责缓存数据项的组织、存储和查询。命令控制引擎主要负责根据缓存命令的处理状态调度缓存请求,进行通信协议相关处理,并完成缓存请求处理过程。状态管理模块主要负责缓存服务器的状态管理,包括服务器迁移状态、缓存集群规模变化状态以及客户端请求中对路由信息的捎带确认处理。迁移管理模块负责在节点间的迁移工作。管理Agent的主要职责是为缓存服务器集群提供拓扑管理和缓存服务生命周期管理。
缓存客户端主要由缓存客户端API、客户端内核、分区选择器、请求转发器、多版本配置管理器、适配集成模块等主要模块组成,负责应用与缓存服务器间的通信及状态同步等。其中,缓存客户端API、客户端内核及分区选择器实现了客户端的基本功能,请求转发器与多版本配置管理器用以支持本发明方法提出的三阶段请求的数据访问协议,适配集成模块则用以增强现有缓存***的可维护性与易用性。缓存客户端API提供了包括读、写、删除数据在内一系列的服务接口。客户端内核主要包括节点管理模块、连接管理模块和通信模块,提供缓存客户端的核心功能。其中连接管理模块负责维护客户端到缓存服务器的所有连接和使用这些连接所必需的通信。缓存客户端基于JAVA NIO实现,相比于传统阻塞I/O模型,JAVANIO具有高效、资源开销较少的优点。传统阻塞I/O模型往往采用预先创建一定数量的连接形成连接池的方式来提高处理效率,而NIO仅需创建一个连接即可,这样就大大减少了线程创建和切换的开销,可以更好的支持高并发请求的处理。节点管理模块获取连接后,通过调用通信模块实现NIO机制的网络数据交互。分区选择器实现了一种基于一致性哈希的路由选择算法。当数据访问时,首先基于键值映射找到对应的分区,然后根据分区路由表找到该分区所对应的缓存服务器。请求转发器主要负责处理自服务器端返回的同步信息,并依据该信息进行后续请求转发。多版本配置管理器负责维护多个版本的路由表信息。客户端启动时,配置管理器会连接任意一个缓存服务器节点,获取并解析路由信息,实现连接属性的自配置;当缓存服务器端处于迁移状态时,配置管理器会提供历史路由信息的支持。同时,为便于缓存***与现有应用服务器(例如Tomcat,Jboss等)无缝对接,提供松耦合的状态备份与高可用支持,适配集成模块负责对各应用服务器的状态对象模块(Session)进行适配,这样只需简单设置配置文件便可以使用缓存服务。适配集成模块同时提供了通用的Java对象序列化方法,通过将Java对象转化为XML格式,灵活实现序列化与反序列化。
作为本实施例的实验环境,前端使用LoadRunner生成负载,中间件Web容器采用Tomcat处理用户请求,后端为DB2数据库和分布式缓存***。其中,分布式缓存***主要用来缓存业务数据,加速应用访问,同时消除数据库访问瓶颈。部署拓扑可以表示为图7,使用环境配置如表1所示。
本实施例采用的Web应用为一个简单的网上购物***,包括商品浏览、商品订购、订单确认等功能。该应用的业务数据保存在DB2数据库中,初始的书籍数据量为3000000条书籍记录,每条书籍记录包括书目信息和书籍内容信息。该应用通过使用Hibernate框架透明的访问缓存***中的数据。测试脚本采用LoadRunner录制,包括网上书店页面浏览,提交购物单等操作,每个请求之间添加0.3秒的思考时间(Think time)。
表1使用环境配置
本实施例方法具体流程如下:
1)在本实施例方法中,管理Agent负责提供缓存服务端的各类统计信息,如:缓存读取次数、更新次数、命中次数、各分区网络流量等;同时提供缓存服务节点状态监测功能,如:CPU、内存以及网络利用率等。在特征采样时间段的每个采样周期内,管理Agent负责监测所在节点的CPU、内存和网络等资源的利用率(为了便于计算,均以百分比形式表示)。本实施例定义每个特征采样时间段为300秒,由10个采样窗口组成,每个采样窗口宽度为30秒。
2)在每个特征采样时间段结束时,管理Agent计算该特征采样时间段内的加权负载值。α,β,γ分别表示CPU,内存和网络的权值,考虑到分布式缓存***的关键***资源是内存与网络I/O,而CPU资源优先级稍低,本实施例将α,β,γ分别设为0.1,0.4和0.5。缓存集群管理器基于JMX远程获取各节点监测信息,计算得到该特征采样时间段内***的平均负载值,基于该负载值决策***是否需要伸缩以及如何伸缩。本实施例将节点扩展操作的阈值thremax定义为70%,节点收缩的阈值thremin定义为30%,即当***平均负载值高于70%时,执行节点扩展操作,低于阈值30%时,执行节点收缩操作。
3)缓存节点动态扩展时,首先需要求解出新节点加入时的数据分区迁移方案。在本实施例中,Server1、Server2和Server3为缓存***中现有的服务器节点,第4个节点Server4为待加入节点。缓存集群管理器基于JMX远程获取3个服务节点的网络流量信息(transBytes)。由于各缓存节点配置相同,因此权值wi均设为1。基于上述信息,缓存集群管理器计算得到各节点的加权网络流量Ti与***的平均加权网络流量值
在一个特征采样时间段内,根据与阈值ε之间的关系,将缓存节点状态划分为均衡状态与非均衡状态,本实施例将阈值ε设为15%。处于非均衡状态的节点中,加权网络流量超过平均值的节点放入迁出节点集合(MigrationOutSet),将新节点Server4以及小于平均值的节点放入迁入节点集合(MigrationInSet)。迁移的基本元素为数据分区,迁移方向约束为MigrationOutSet中缓存节点上的分区数据迁移到MigrationInSet中的节点上。基于缓存节点各分区网络流量信息及迁移节点集合信息,本实施例采用分支限界法求解求解迁移方案的近似最优解,目标是使迁移节点集合加权网络流量T的方差之和最小。
4)基于步骤3)中求解得到的数据迁移方案,缓存集群管理器首先使用控制器向所有服务节点发送新的分区路由信息以更新路由配置,然后使用控制器控制各节点按迁移计划完成数据迁移。为了保障迁移过程中的数据一致性,本发明方法采用基于三阶段请求的数据访问协议,服务节点的状态管理模块负责服务端迁移状态以及客户端请求中对路由信息的捎带确认处理,客户端请求转发器负责处理来自服务端的同步信息,进行后续请求转发处理。
①基于三阶段请求的数据访问协议
为说明处理流程,假定初始时***中存在三个缓存节点Server1、Server2和Server3,整个哈希环被分为12份等大小的数据分区,三个缓存节点各自包含4份,分区路由表表示为RTn-1(路由表中Server1、Server2和Server3分别简写为S1、S2和S3)。***动态扩展时新节点Server4加入,根据步骤3)求解得到的数据迁移方案,分区4、8和12需要由原服务节点迁移到Server4中,最新的分区路由表表示为RTn,如图8所示。假定目前数据迁移尚未完成,客户端收到一个键值为Key1的数据访问请求。
(1)客户端对该键值进行哈希计算(采用Distributed Consistent Hashing算法),将计算结果映射到哈希环a位置,然后经二次哈希映射将位置a映射到数据分区4中。假定客户端当前路由表版本为t(t≤n-1,考虑到如果客户端长期未请求数据,路由表版本可能较低),根据该路由信息,定位数据分区4存储在服务器节点Server D上(D的取值可能为1、2或3),客户端向服务器节点Server D发送数据访问请求,请求中捎带版本同步信息;
(2)缓存服务器节点Server D收到捎带信息后进行版本校验,如果t<n-1,则会返回最新两个版本的路由表RTn与RTn-1;如果t=n-1,则会返回最新的路由表RTn。此时第一阶段请求完成;
(3)客户端读取最新版本的分区路由表RTn,根据路由信息,Key1存储在服务器节点Server4上,客户端向Server4发送数据访问请求。
(4)由于此时数据迁移操作尚未完成,Server4在请求响应中捎带返回标志位表明服务器处于迁移状态。如果该条数据已成功迁移至Server4,则直接向发出请求的应用服务返回该数据,如果尚未迁移至Server4,则返回空值。此时第二阶段请求完成;
(5)客户端收到服务器处于迁移状态的消息时,会判断自服务器返回的数据值是否为空。如果不为空,则直接将该数据值返回给发出请求的应用服务;反之,如果返回的数据值为空,则需要进行额外的请求处理。客户端本地读取上一版本的路由信息RTn-1,根据该版本路由信息,Key1被定位至服务器节点Server1上,客户端重新向Server1发送数据访问请求;
(6)Server1将请求处理结果返回。此时第三阶段请求完成;
(7)缓存客户端向发出请求的应用服务返回处理结果。
②受控的数据迁移
缓存服务节点中的迁移管理模块负责数据分区在节点间的迁移工作,当迁移命令到达并解析完成时,创建后台迁移线程进行数据迁移工作。迁移线程通过迁移分区视图获取对应分区的数据区块链表,从链表的尾部开始进行数据迁移操作,即最先加入缓存***的数据优先迁移,后加入缓存***的数据最后迁移。同时监控器监测***网络流量开销,当迁移线程完成固定大小的数据传输量后,从监控器中获取***状态,并调整下个数据迁移周期的迁移速度。在本发明方法中,当网络流速达到设定的网络带宽阈值时,将迁移速度降低20%。预留的最小网络流速为该节点网络带宽的10%。所有数据分区迁移完毕后,重置服务器状态为稳定状态。表示为图9。
本实施例针对该动态扩展方法进行了实验。整个实验过程使用LoadRunner模拟用户并发访问,每个事务包含10个servlet请求,收集实验过程中平均事务响应时间(AverageTransaction Response Time)数据作为评价标准。表示为图10。初始时缓存***中存在Server1、Server2和Server3三个服务节点,用户并发量设为600。在预热阶段,由于web应用不断将业务数据放到缓存***,***的平均事务响应时间逐渐下降,当缓存***空间达到一定负荷后,应用性能趋于稳定,平均事务响应时间为12.9秒。此时进一步增大访问负载,将用户并发量调至1000,缓存服务器集群到达资源饱和点,动态扩展加入1个新的缓存节点server4以保障服务质量的连续性。考虑到数据迁移过程会给***引入额外开销,此时平均事务响应时间略有上升(幅度为0.8秒)。当扩展过程完成后,***处理能力增加,响应时间再次下降,最终再次达到稳定,平均事务响应时间为8.1秒,与之前稳定时相比,减少了4.8秒。
为了进一步验证负载均衡算法的有效性,本实施例定义加权网络流量T的方差D(T)与平均加权网络流量值T的平方的比值为缓存集群的负载不均衡度。收集新节点加入后的负载不均衡度数据,表示为表2。同未使用负载均衡的动态扩展方法相比,本发明方法具有更好的负载均衡效果,***负载不均衡度降低了82.4%。
表2两种方法的负载不均衡度
支持负载均衡的动态扩展 | 不支持负载均衡的动态扩展 | 二者比值 |
6.28*10-3 | 3.56*10-2 | 0.176 |
5)当***平均负载值低于阈值30%时,执行节点收缩操作。在本实施例中,假定Server1、Server2、Server3和Server4为缓存***中现有的服务器节点,首先是迁移方案的确立。选取***中加权负载值L最小的两个缓存节点(假定为Server2和Server3且LServer3<LServer2),将Server2的所有分区均迁移至Server3。此外还要考虑对缓存节点进行负载均衡,在剩下的缓存节点Server1和Server4中,将满足的节点加入迁出节点集合,将满足的节点加入迁入节点集合,阈值ε’设为10%。本实施例采用分支限界法求解求解迁移方案的近似最优解。基于上述迁移方案完成数据迁移,数据迁移过程中使用三阶段请求的数据访问协议保障数据一致性,采用受控的数据迁移方法有效控制迁移进度。迁移操作完毕时,将节点Server2从缓存集群中移除。
Claims (10)
1.一种支持负载均衡的分布式缓存动态伸缩方法,其步骤为:
1)各缓存服务器定期监测各自的资源利用率;
2)各缓存服务器根据当前监测的资源利用率计算各自的加权负载值Li,并将其发送至缓存集群管理器;
a)扩展操作为:首先计算每一缓存服务器的加权网络流量Ti和***的平均网络流量 然后将满足的缓存服务器组成一迁出节点集合,满足的缓存服务器组成一迁入节点集合,同时,将新节点加入所述迁入节点集合中;最后根据目标函数确定所述迁出节点集合中缓存服务器的数据到所述迁入节点集合中缓存服务器的迁移方案,并进行数据迁移;
2.如权利要求1所述的方法,其特征在于所述资源包括:处理器,内存,网络。
3.如权利要求2所述的方法,其特征在于所述加权负载值Li的计算公式为:
其中,α表示CPU的权值,β为内存的权值,γ为网络的权值,CPUij表示节点i在第j个采样窗口内的CPU利用率,Memij表示节点i在第j个采样窗口内的内存利用率,Netij表示节点i在第j个采样窗口内的网络利用率,M表示采样窗口数。
4.如权利要求1或2或3所述的方法,其特征在于采用分支限界法求所述目标函数,得到所述迁移方案。
5.如权利要求1或2或3所述的方法,其特征在于如果数据迁移过程中,客户端对迁移数据进行访问,客户端首先更新迁出节点的迁移数据,当更新操作获取到更新成功的信息后,再更新迁入节点。
6.如权利要求1或2或3所述的方法,其特征在于,如果数据迁移过程中,客户端对迁移数据进行访问,迁入节点返回的数据与迁出节点返回的数据不一致,则客户端读取迁入节点的返回数据。
7.如权利要求1或2或3所述的方法,其特征在于如果数据迁移过程中,客户端对迁移数据进行访问,则:
1)客户端采用捎带确认机制与访问数据所在的缓存服务器进行路由信息同步,确保客户端拥有最新两个版本的路由表:RTn和RTn-1;
2)客户端使用分区路由表RTn进行路由,并采用捎带确认机制向缓存服务器请求缓存数据;
3)客户端根据缓存服务器返回值及返回的服务器状态作相应处理,即:当服务器状态为迁移状态时,如果返回值不为空,则客户端直接将处理结果返回给发出请求的应用服务;如果返回值为空,则客户端根据上一版本的路由信息RTn-1找出迁出节点,并向该节点发送数据请求;当缓存***位于稳定状态时,客户端直接将缓存服务器的返回值发送给请求的应用服务。
8.如权利要求1或2或3所述的方法,其特征在于所述迁出节点对其网络开销进行监测,当其网络流速达到某一设定的带宽阈值时,迁出节点将数据迁移速度降低θ%,但降低后的数据迁移速度不小于设定的数据迁移速度最小值。
9.一种支持负载均衡的分布式缓存动态伸缩***,其特征在于包括缓存服务器、缓存客户端和缓存集群管理器;所述缓存服务器分别通过网络与所述缓存客户端、缓存集群管理器连接;其中:
所述缓存服务器,用于根据接收的缓存集群管理器的控制命令,控制缓存服务进程执行相应的操作;
所述缓存集群管理器,用于监测缓存服务器节点拓扑变化,并获取各缓存服务器的性能信息,最终提供统一的监控视图控制整个缓存集群;其中,所述缓存集群管理器根据各缓存服务器的加权负载值Li,计算分布式缓存***当前的平均负载值当高于设定的阈值thremax时,执行扩展操作;当低于设定的阈值thremin时,执行收缩操作;
扩展操作为:首先计算每一缓存服务器的加权网络流量Ti和***的平均网络流量 然后将满足的缓存服务器组成一迁出节点集合,满足的缓存服务器组成一迁入节点集合,同时,将新节点加入所述迁入节点集合中;最后根据目标函数 确定所述迁出节点集合中缓存服务器的数据到所述迁入节点集合中缓存服务器的迁移方案,并进行数据迁移;
收缩操作为:首先选取***中加权负载值L最小的两个缓存服务器执行合并操作;然后计算每一缓存服务器的加权网络流量Ti和***的平均网络流量然后将满足 的缓存服务器组成一迁出节点集合,满足的缓存服务器组成一迁入节点集合;最后根据目标函数确定所述迁出节点集合中缓存服务器的数据到所述迁入节点集合中缓存服务器的迁移方案,并进行数据迁移;其中,ε、ε’分别为设定阈值,D(T)为加权网络流量T的方差,S为发生数据迁移的缓存服务器总数;
所述缓存客户端,负责应用与缓存服务器间的通信及状态同步。
10.如权利要求9所述的***,其特征在于所述缓存服务器包括缓存服务模块和管理Agent;所述缓存服务模块包括数据管理模块、命令控制引擎、状态管理模块以及迁移管理模块;所述客户端包括请求转发器、多版本配置管理器;其中:
所述数据管理模块用于管理已分配的内存空间,同时还负责缓存数据项的组织、存储和查询;
所述命令控制引擎用于根据缓存命令的处理状态调度缓存请求,进行通信协议处理,并完成缓存请求处理过程;
所述状态管理模块用于缓存服务器的状态管理,包括服务器迁移状态、缓存集群规模变化状态以及客户端请求中对路由信息的捎带确认处理;
所述迁移管理模块负责在缓存服务器节点间的迁移工作;
所述管理Agent用于为缓存服务器集群提供拓扑管理和缓存服务生命周期管理;
所述请求转发器用于处理自缓存服务器端返回的同步信息,并依据该信息进行后续请求转发;
所述多版本配置管理器用于维护多个版本的路由表信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110230333XA CN102244685B (zh) | 2011-08-11 | 2011-08-11 | 一种支持负载均衡的分布式缓存动态伸缩方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110230333XA CN102244685B (zh) | 2011-08-11 | 2011-08-11 | 一种支持负载均衡的分布式缓存动态伸缩方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102244685A CN102244685A (zh) | 2011-11-16 |
CN102244685B true CN102244685B (zh) | 2013-09-18 |
Family
ID=44962515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110230333XA Expired - Fee Related CN102244685B (zh) | 2011-08-11 | 2011-08-11 | 一种支持负载均衡的分布式缓存动态伸缩方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102244685B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516952A (zh) * | 2014-12-12 | 2015-04-15 | 华为技术有限公司 | 一种内存分区部署方法与装置 |
US9619391B2 (en) | 2015-05-28 | 2017-04-11 | International Business Machines Corporation | In-memory caching with on-demand migration |
CN109857725A (zh) * | 2019-02-20 | 2019-06-07 | 北京百度网讯科技有限公司 | 数据库管理方法及装置、服务器及计算机可读介质 |
Families Citing this family (105)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102801766B (zh) * | 2011-11-18 | 2015-01-07 | 北京安天电子设备有限公司 | 一种云服务器负载均衡及数据冗余备份的方法及*** |
CN103188159B (zh) * | 2011-12-28 | 2016-08-10 | 英业达股份有限公司 | 硬件效能的管理方法及云端运算*** |
CN102662759A (zh) * | 2012-03-20 | 2012-09-12 | 浪潮电子信息产业股份有限公司 | 一种云os中基于cpu负载的节能方法 |
CN102855299A (zh) * | 2012-08-16 | 2013-01-02 | 上海引跑信息科技有限公司 | 不中断服务条件下,分布式数据库迭代迁移的方法 |
CN102843244A (zh) * | 2012-09-18 | 2012-12-26 | 苏州阔地网络科技有限公司 | 一种网络会议负载分配的方法及*** |
CN102843304A (zh) * | 2012-09-21 | 2012-12-26 | 苏州阔地网络科技有限公司 | 一种网络会议负载控制方法及*** |
CN102843305A (zh) * | 2012-09-21 | 2012-12-26 | 苏州阔地网络科技有限公司 | 一种网络会议负载分配方法及*** |
CN102857577B (zh) * | 2012-09-24 | 2015-10-28 | 北京联创信安科技有限公司 | 一种集群存储自动负载均衡的***及方法 |
CN102932424B (zh) * | 2012-09-29 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种分布式并行文件***缓存数据同步的方法及*** |
CN103812895A (zh) * | 2012-11-12 | 2014-05-21 | 华为技术有限公司 | 调度方法、管理节点以及云计算集群 |
CN103838770A (zh) * | 2012-11-26 | 2014-06-04 | ***通信集团北京有限公司 | 一种数据逻辑分区的方法和*** |
CN102984274A (zh) * | 2012-12-13 | 2013-03-20 | 江苏新彩软件有限公司 | 一种基于数据挖掘的彩票云服务***动态负载优化方法 |
CN103095599A (zh) * | 2013-01-18 | 2013-05-08 | 浪潮电子信息产业股份有限公司 | 一种云计算操作***中动态反馈加权综合负载调度方法 |
CN103139295A (zh) * | 2013-01-30 | 2013-06-05 | 广东电网公司电力调度控制中心 | 一种云计算资源调度方法及装置 |
CN104009862A (zh) * | 2013-02-27 | 2014-08-27 | 腾讯科技(深圳)有限公司 | 一种设备调度方法及*** |
CN103227754B (zh) * | 2013-04-16 | 2017-02-08 | 浪潮(北京)电子信息产业有限公司 | 一种高可用集群***负载动态均衡方法及节点设备 |
CN104243537A (zh) * | 2013-06-24 | 2014-12-24 | ***股份有限公司 | 一种云计算环境下的自动伸缩方法和*** |
CN103346914A (zh) * | 2013-07-03 | 2013-10-09 | 曙光信息产业(北京)有限公司 | 分布式文件***的拓扑结构更新方法和装置 |
CN103336726B (zh) * | 2013-07-10 | 2016-08-31 | 北京百度网讯科技有限公司 | 检测Linux***中多任务冲突的方法与装置 |
CN103428102B (zh) * | 2013-08-06 | 2016-08-10 | 北京智谷睿拓技术服务有限公司 | 在分布式网络中实现动态负载平衡的方法和*** |
JP6131170B2 (ja) * | 2013-10-29 | 2017-05-17 | 株式会社日立製作所 | 計算機システム、及びデータ配置制御方法 |
CN103605575B (zh) * | 2013-11-18 | 2017-10-13 | 深圳市远行科技股份有限公司 | 一种Cloud Foundry平台应用调度***及方法 |
US9519869B2 (en) | 2013-11-25 | 2016-12-13 | International Business Machines Corporation | Predictive computer system resource monitoring |
CN103731341B (zh) * | 2013-12-30 | 2018-08-03 | 广州华多网络科技有限公司 | 一种对即时通讯业务进行处理的方法及*** |
CN103763346B (zh) * | 2013-12-31 | 2017-07-25 | 华为技术有限公司 | 一种分布式资源调度方法及装置 |
CN103916396B (zh) * | 2014-04-10 | 2016-09-21 | 电子科技大学 | 一种基于负载自适应的云平台应用实例自动伸缩方法 |
CN103997526B (zh) * | 2014-05-21 | 2018-05-22 | 中国科学院计算技术研究所 | 一种可扩展负载均衡***和方法 |
CN103970907A (zh) * | 2014-05-28 | 2014-08-06 | 浪潮电子信息产业股份有限公司 | 一种动态扩展数据库集群的方法 |
CN104023068B (zh) * | 2014-06-13 | 2017-12-15 | 北京信诺瑞得软件***有限公司 | 一种负载均衡中实现被动模式弹性计算资源调度的方法 |
CN105338026B (zh) * | 2014-07-24 | 2018-10-09 | 阿里巴巴集团控股有限公司 | 数据资源的获取方法、装置和*** |
CN105573838B (zh) * | 2014-10-14 | 2022-04-29 | 创新先进技术有限公司 | 缓存健康度检测方法及装置 |
JP6288596B2 (ja) | 2014-11-05 | 2018-03-07 | 華為技術有限公司Huawei Technologies Co.,Ltd. | データ処理方法および装置 |
CN104484130A (zh) * | 2014-12-04 | 2015-04-01 | 北京同有飞骥科技股份有限公司 | 一种横向扩展存储***的构建方法 |
CN106034144B (zh) * | 2015-03-12 | 2019-10-15 | 中国人民解放军国防科学技术大学 | 一种基于负载均衡的虚拟资产数据存储方法 |
CN104850634A (zh) * | 2015-05-22 | 2015-08-19 | 中国联合网络通信集团有限公司 | 一种数据存储节点调整方法及*** |
CN106330743B (zh) * | 2015-06-29 | 2020-10-13 | 中兴通讯股份有限公司 | 一种流量均衡度度量的方法及装置 |
CN105099935A (zh) * | 2015-07-28 | 2015-11-25 | 小米科技有限责任公司 | 服务器负载控制方法及装置 |
CN106411971B (zh) * | 2015-07-29 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 负载调节方法及装置 |
CN106612296A (zh) * | 2015-10-21 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 一种用户设备连接请求分配的方法及装置 |
CN105183670B (zh) * | 2015-10-27 | 2018-11-27 | 北京百度网讯科技有限公司 | 用于分布式缓存***的数据处理方法和装置 |
CN105357296B (zh) * | 2015-10-30 | 2018-10-23 | 河海大学 | 一种Docker云平台下弹性缓存*** |
CN105338109B (zh) * | 2015-11-20 | 2018-10-12 | 小米科技有限责任公司 | 分片调度方法、装置及分布式服务器*** |
CN106817432B (zh) * | 2015-11-30 | 2020-09-11 | 华为技术有限公司 | 云计算环境下虚拟资源弹性伸展的方法,***和设备 |
US9910713B2 (en) * | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
CN106909557B (zh) * | 2015-12-23 | 2020-06-16 | 中国电信股份有限公司 | 内存集群的存储方法及装置、内存集群的读取方法及装置 |
CN105516369A (zh) * | 2016-02-04 | 2016-04-20 | 城云科技(杭州)有限公司 | 视频云平台负载均衡方法及视频云平台负载均衡调度器 |
CN105847352B (zh) * | 2016-03-22 | 2019-09-17 | 聚好看科技股份有限公司 | 基于分布式缓存***的扩容方法、装置及分布式缓存*** |
CN105959427B (zh) * | 2016-04-25 | 2020-01-21 | 中国互联网络信息中心 | Dns服务器自动扩展方法 |
CN109416680B (zh) * | 2016-04-26 | 2023-02-17 | 安博科技有限公司 | 吊索路由逻辑与负载均衡 |
CN107608783A (zh) * | 2016-07-11 | 2018-01-19 | 中兴通讯股份有限公司 | 一种数据处理的方法及装置 |
US10097344B2 (en) * | 2016-07-15 | 2018-10-09 | Mastercard International Incorporated | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains |
CN106250226B (zh) * | 2016-08-02 | 2019-06-18 | 福建省华渔教育科技有限公司 | 基于一致性哈希算法的任务调度方法及*** |
CN107689977B (zh) * | 2016-08-05 | 2021-12-07 | 厦门雅迅网络股份有限公司 | 分布式缓存和推送的路由方法及其*** |
CN106371916B (zh) * | 2016-08-22 | 2019-01-22 | 浪潮(北京)电子信息产业有限公司 | 一种存储***io线程优化方法及其装置 |
CN106484528B (zh) * | 2016-09-07 | 2019-08-27 | 北京百度网讯科技有限公司 | 分布式框架中用于实现集群动态伸缩的方法及装置 |
CN106503098B (zh) * | 2016-10-14 | 2021-11-12 | 中金云金融(北京)大数据科技股份有限公司 | 内置于Paas服务层的区块链云服务框架*** |
CN106815075B (zh) * | 2016-12-15 | 2020-06-12 | 上海交通大学 | 建筑火灾数值仿真的区域分解优化方法 |
CN106603299B (zh) * | 2016-12-28 | 2020-05-01 | 北京奇艺世纪科技有限公司 | 一种服务健康指数的生成方法及装置 |
CN106886460B (zh) * | 2017-02-22 | 2021-07-20 | 北京百度网讯科技有限公司 | 负载均衡方法和装置 |
CN106790705A (zh) * | 2017-02-27 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种分布式应用本地缓存的实现***及实现方法 |
CN106873919A (zh) * | 2017-03-20 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种基于云存储***的数据存储方法和装置 |
CN107018197A (zh) * | 2017-04-13 | 2017-08-04 | 南京大学 | 一种支持负载均衡的动态伸缩移动感知复杂事件处理方法 |
CN107193989B (zh) * | 2017-05-31 | 2021-05-28 | 郑州云海信息技术有限公司 | 一种nas集群缓存处理方法和*** |
CN107196865B (zh) * | 2017-06-08 | 2020-07-24 | 中国民航大学 | 一种负载感知的自适应阈值过载迁移方法 |
CN109218341B (zh) * | 2017-06-29 | 2022-02-25 | 北京京东尚科信息技术有限公司 | 用于监控服务器和用于服务器的负载均衡方法和装置 |
CN107391033B (zh) * | 2017-06-30 | 2020-07-07 | 北京奇虎科技有限公司 | 数据迁移方法及装置、计算设备、计算机存储介质 |
CN107463630A (zh) * | 2017-07-14 | 2017-12-12 | 太仓诚泽网络科技有限公司 | 多端网页控制*** |
CN109729108B (zh) * | 2017-10-27 | 2022-01-14 | 阿里巴巴集团控股有限公司 | 一种防止缓存击穿的方法、相关服务器及*** |
CN107819867A (zh) * | 2017-11-18 | 2018-03-20 | 洛阳理工学院 | 一种集群网络的负载均衡方法和装置 |
CN108089918B (zh) * | 2017-12-06 | 2020-07-14 | 华中科技大学 | 一种面向异构服务器结构的图计算负载均衡方法 |
CN108182105B (zh) * | 2017-12-12 | 2023-08-15 | 苏州大学 | 基于Docker容器技术的局部动态迁移方法及控制*** |
CN108111586A (zh) * | 2017-12-14 | 2018-06-01 | 重庆邮电大学 | 一种高并发支持的web集群***及方法 |
CN108234616A (zh) * | 2017-12-25 | 2018-06-29 | 深圳华强聚丰电子科技有限公司 | 一种高可用分布式web缓存***和方法 |
CN108183947A (zh) * | 2017-12-27 | 2018-06-19 | 深圳天源迪科信息技术股份有限公司 | 分布式缓存方法及*** |
CN108519954A (zh) * | 2018-03-23 | 2018-09-11 | 北京焦点新干线信息技术有限公司 | 一种集中管理缓存的方法及装置 |
CN108512919B (zh) * | 2018-03-25 | 2021-07-13 | 上海米卡信息技术服务有限公司 | 一种云存储空间分配方法及服务器 |
CN108551474B (zh) * | 2018-03-26 | 2021-03-09 | 南京邮电大学 | 一种服务器集群的负载均衡方法 |
CN108712457B (zh) * | 2018-04-03 | 2022-06-07 | 苏宁易购集团股份有限公司 | 基于Nginx反向代理的后端服务器动态负载调整方法及装置 |
CN108924244B (zh) * | 2018-07-24 | 2022-02-25 | 阿里巴巴(中国)有限公司 | 分布式***以及用于该***的流量分配方法和装置 |
CN109376013B (zh) * | 2018-10-11 | 2020-12-15 | 北京小米智能科技有限公司 | 负载均衡方法及装置 |
CN109471720A (zh) * | 2018-10-19 | 2019-03-15 | 曙光信息产业(北京)有限公司 | 在线运维*** |
CN109525662A (zh) * | 2018-11-14 | 2019-03-26 | 程桂平 | 为热点内容设置副本的方法 |
CN109656956B (zh) * | 2018-12-14 | 2023-06-09 | 浪潮软件集团有限公司 | 一种实现业务***数据集中式缓存的方法及装置 |
CN109857528B (zh) * | 2019-01-10 | 2021-08-27 | 北京三快在线科技有限公司 | 数据迁移的速度调整方法、装置、存储介质和移动终端 |
CN110169774B (zh) * | 2019-05-28 | 2022-06-14 | 深圳正指向科技有限公司 | 一种基于区块链的运动状态识别***及方法 |
CN112015326B (zh) * | 2019-05-28 | 2023-02-17 | 浙江宇视科技有限公司 | 集群数据处理方法、装置、设备及存储介质 |
CN110374851A (zh) * | 2019-07-19 | 2019-10-25 | 爱景智能装备(无锡)有限公司 | 一种多台空压机中快速判断开停机优先级的方法 |
CN110943925B (zh) * | 2019-11-26 | 2020-11-03 | 腾讯科技(深圳)有限公司 | 一种路由信息同步的方法以及相关装置 |
CN111245743B (zh) * | 2020-01-09 | 2023-09-08 | 浙江吉利汽车研究院有限公司 | 一种信息处理方法、存储介质、网关及汽车 |
CN113468127A (zh) * | 2020-03-30 | 2021-10-01 | 同方威视科技江苏有限公司 | 数据缓存方法、装置、介质及电子设备 |
CN111600794B (zh) * | 2020-07-24 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 服务器切换方法、终端、服务器及存储介质 |
CN114584565B (zh) * | 2020-12-01 | 2024-01-30 | 中移(苏州)软件技术有限公司 | 一种应用防护方法及***、电子设备及存储介质 |
CN112738339B (zh) * | 2020-12-29 | 2022-09-23 | 杭州东信北邮信息技术有限公司 | 一种电信域微服务架构下的服务实例无损扩缩容方法 |
CN112717376B (zh) * | 2021-01-04 | 2022-12-02 | 厦门梦加网络科技股份有限公司 | 一种用于增强手机网络游戏的稳定性的方法和*** |
CN113709054A (zh) * | 2021-07-16 | 2021-11-26 | 济南浪潮数据技术有限公司 | 一种基于keepalived的LVS***部署调节方法、装置及*** |
CN113986522A (zh) * | 2021-08-29 | 2022-01-28 | 中盾创新数字科技(北京)有限公司 | 一种基于负载均衡的分布式存储服务器扩容*** |
CN114328062B (zh) * | 2021-11-18 | 2023-09-05 | 芯华章科技股份有限公司 | 校验缓存一致性的方法、装置和存储介质 |
CN113835868B (zh) * | 2021-11-25 | 2022-04-15 | 之江实验室 | 一种基于反馈和公平队列的服务质量感知的缓存调度方法 |
CN114466017B (zh) * | 2022-03-14 | 2024-03-12 | 阿里巴巴(中国)有限公司 | kubernetes边缘集群的数据监测方法和装置 |
CN115242721A (zh) * | 2022-07-05 | 2022-10-25 | 中国电子科技集团公司第十四研究所 | 一种嵌入式***及基于其的数据流负载均衡方法 |
CN115297131B (zh) * | 2022-08-01 | 2023-05-26 | 东北大学 | 一种基于一致性哈希的敏感数据分布式储存方法 |
CN115412464B (zh) * | 2022-11-01 | 2023-03-24 | 江苏荣泽信息科技股份有限公司 | 一种基于流量的区块链动态伸缩方法 |
CN116028234B (zh) * | 2023-03-31 | 2023-07-21 | 山东浪潮科学研究院有限公司 | 一种分布式数据库负载均衡方法、装置、设备及存储介质 |
CN117251341A (zh) * | 2023-09-27 | 2023-12-19 | 中国科学院空天信息创新研究院 | 缓存服务集群实时监控方法、装置、电子设备及介质 |
CN117614956B (zh) * | 2024-01-24 | 2024-03-29 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种分布式存储的网内缓存方法、***以及储存介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6078960A (en) * | 1998-07-03 | 2000-06-20 | Acceleration Software International Corporation | Client-side load-balancing in client server network |
CN101697526A (zh) * | 2009-10-10 | 2010-04-21 | 中国科学技术大学 | 分布式文件***中元数据管理的负载均衡方法及其*** |
CN102143215A (zh) * | 2011-01-20 | 2011-08-03 | 中国人民解放军理工大学 | 一种基于网络的pb级云存储***及其处理方法 |
-
2011
- 2011-08-11 CN CN201110230333XA patent/CN102244685B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6078960A (en) * | 1998-07-03 | 2000-06-20 | Acceleration Software International Corporation | Client-side load-balancing in client server network |
CN101697526A (zh) * | 2009-10-10 | 2010-04-21 | 中国科学技术大学 | 分布式文件***中元数据管理的负载均衡方法及其*** |
CN102143215A (zh) * | 2011-01-20 | 2011-08-03 | 中国人民解放军理工大学 | 一种基于网络的pb级云存储***及其处理方法 |
Non-Patent Citations (3)
Title |
---|
一种构件级动态集群管理***的设计与实现;罗嵘、王涛、张文博、谢飞;《计算机应用研究》;20110430;第28卷(第4期);全文 * |
可伸缩式分布式VOD***的设计与实现;杨灿,卢正鼎,邹雪城;《华中科技大学学报》;20050630;第33卷(第1期);28-31 * |
面向云环境的自适应集群调整方法;周欢云、王伟、张文博;《计算机科学与探索》;20110531(第4期);全文 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516952A (zh) * | 2014-12-12 | 2015-04-15 | 华为技术有限公司 | 一种内存分区部署方法与装置 |
CN104516952B (zh) * | 2014-12-12 | 2018-02-13 | 华为技术有限公司 | 一种内存分区部署方法与装置 |
US9619391B2 (en) | 2015-05-28 | 2017-04-11 | International Business Machines Corporation | In-memory caching with on-demand migration |
CN109857725A (zh) * | 2019-02-20 | 2019-06-07 | 北京百度网讯科技有限公司 | 数据库管理方法及装置、服务器及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102244685A (zh) | 2011-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102244685B (zh) | 一种支持负载均衡的分布式缓存动态伸缩方法及*** | |
US8108612B2 (en) | Location updates for a distributed data store | |
US7457835B2 (en) | Movement of data in a distributed database system to a storage location closest to a center of activity for the data | |
US9996552B2 (en) | Method for generating a dataset structure for location-based services and method and system for providing location-based services to a mobile device | |
CN103237046B (zh) | 支持混合云存储应用的分布式文件***及实现方法 | |
Nishio et al. | Data management issues in mobile and peer-to-peer environments | |
CN111580930A (zh) | 一种面向国产平台的云原生应用架构支撑方法及*** | |
CN101753405A (zh) | 集群服务器内存管理方法及其*** | |
CN102164184A (zh) | 云计算网络中计算机实体的接入和管理方法及云计算网络 | |
Mayer et al. | Graph: Heterogeneity-aware graph computation with adaptive partitioning | |
CN113722127A (zh) | 高效轻量易用的分布式网络消息中间件 | |
US20170351620A1 (en) | Caching Framework for Big-Data Engines in the Cloud | |
CN104679594A (zh) | 一种中间件分布式计算方法 | |
CN107807983A (zh) | 一种支持大规模动态图数据查询的并行处理框架及设计方法 | |
CN106326372A (zh) | Git中央仓库管理***及控制方法 | |
Le et al. | Dynastar: Optimized dynamic partitioning for scalable state machine replication | |
CN107197039B (zh) | 一种基于cdn的paas平台服务包分发方法及*** | |
CN112492022A (zh) | 提高数据库可用性的集群、方法、***及存储介质 | |
Panigrahi et al. | DATALET: An approach to manage big volume of data in cyber foraged environment | |
CN115357375A (zh) | 一种面向MPI的Serverless并行计算方法及其*** | |
CN103401951B (zh) | 基于对等架构的弹性云分发方法 | |
Tenzakhti et al. | Replication algorithms for the world-wide web | |
WO2015055502A2 (en) | Method of partitioning storage in a distributed data storage system and corresponding device | |
CN112698941A (zh) | 一种基于动态负载均衡的实时数据库查询方法 | |
Fang et al. | Design and evaluation of a pub/sub service in the cloud |
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: 20191022 Address after: 250002 room 701, Runxiang building, No. 87, Jingqi Road, Shizhong District, Jinan City, Shandong Province Patentee after: Jinan Jun'an Tai Investment Group Co., Ltd. Address before: 100190 No. four, 4 South Street, Haidian District, Beijing, Zhongguancun Patentee before: Institute of Software, Chinese Academy of Sciences |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130918 Termination date: 20200811 |
|
CF01 | Termination of patent right due to non-payment of annual fee |