CN101729582A - 分布式存储的管理方法、装置及*** - Google Patents
分布式存储的管理方法、装置及*** Download PDFInfo
- Publication number
- CN101729582A CN101729582A CN200810172511A CN200810172511A CN101729582A CN 101729582 A CN101729582 A CN 101729582A CN 200810172511 A CN200810172511 A CN 200810172511A CN 200810172511 A CN200810172511 A CN 200810172511A CN 101729582 A CN101729582 A CN 101729582A
- Authority
- CN
- China
- Prior art keywords
- experience value
- user experience
- file
- copy
- overall customer
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种分布式存储的管理方法、装置及***,涉及服务型的分布式存储***,解决了现有技术中没有从用户体验的角度考虑进行副本管理的问题。本发明实施例在客户端需要计算用户体验值,并将该用户体验值发送给存储根节点,由存储根节点根据接收到的用户体验值计算出整体用户体验值,然后在相应管理域进行副本数量的调整。本发明实施例主要用于分布式存储***,特别是P2P模式下的分布式存储***。
Description
技术领域
本发明涉及服务型的分布式存储***,尤其涉及分布式存储的管理方法、装置及***。
背景技术
在分布式存储***中以多副本方式为客户端提供服务,所谓多副本方式就是在存储***中将提供服务的文件保存为多个副本。当***中一个副本或者多个副本发生故障时,客户端可以从其他未发生故障的副本处得到相应的服务,所以,以多副本方式提供服务能够提高***的可靠性。同时,一般情况下,分布式存储***的多个副本是分布在不同的存储节点上的,能够有效的将访问负荷分散到多个存储节点上。此外,用户可以选择距离客户端最近的副本获取相应服务,缩短了客户端访问的响应时间。
分布式存储***中文件的副本个数即为副本冗余度,如果副本冗余度过大,虽然用户下载体验相对较高,但过多的副本需要进行同步将消耗大量的网络资源;如果副本冗余度过小,文件的可靠性和用户体验都将降低。所以,分布式存储***需要设定一个较为合适的副本冗余度。
目前的副本管理方案中,主要是基于用户的访问频率调整副本冗余度,即:采用基于频率的副本管理机制(FRM,Frequency-based Replication Management)对***进行管理。首先,统计用户对文件各个副本的访问频率,增加访问频率高的文件的副本,以提高***服务性能;并且减少访问频率低的文件的副本,以减轻存储节点的负荷。
在实现上述副本管理方案的过程中,发明人发现现有技术中至少存在如下问题:
在某些***中,仅仅依靠存储节点的被访问频率来调整副本冗余度,不够合理,,不能合理调整客户端接受服务的质量。
例如:在P2P(Peer to Peer,点对点)的传输模式下,分布式存储***中的存储节点和客户端同时提供服务,***服务的总体能力体现在客户端和存储节点两方面的服务能力上。所以,在P2P传输模式下,随着加入***的客户端数量增加,客户端的服务能力也在逐渐增大,甚至可能超过存储节点的服务能力。客户端对文件的访问频率可能很高,按照现有的副本管理方案就需要增加副本数量,但实际上由于客户端能够提高足够的服务能力,并不需要增加副本数量,就可以满足客户端的需求,这就造成了存储节点的资源浪费。
并且,如果某个文件的访问频率不高,那么说明加入***的客户端较少,这样就基本上要依靠存储节点的服务能力来满足客户端的需求,而现有的副本管理方案却减少访问频率低的文件的副本数量,造成该文件能够提供的服务质量得不到保证,违背了以多副本方式提供服务的初衷。
发明内容
本发明的实施例提供一种分布式存储的管理方法、装置及***,能够合理的对文件的副本数量进行调整,以合理地调整客户端接受服务的质量。
为达到上述目的,本发明的实施例采用如下技术方案:
一种分布式存储的管理方法,包括:
计算文件提供服务的用户体验值;
将所述用户体验值发送给所述文件的存储根节点,所述用户体验值为调整所述文件在各个管理域内的副本数量提供依据。
一种分布式存储的管理方法,包括:
接收客户端发送的文件的用户体验值;
在每个管理域中,根据接收的用户体验值计算所述文件的整体用户体验值;
根据所述整体用户体验值调整对应管理域中所述文件的副本数量。
一种客户端,包括:
计算单元,用于计算文件提供服务的用户体验值;
发送单元,用于将所述用户体验值发送给所述文件的存储根节点,所述用户体验值为调整所述文件在各个管理域内的副本数量提供依据。
一种存储节点,包括:
接收单元,用于接收客户端发送的文件的用户体验值;
计算单元,用于根据接收的用户体验值,按管理域计算所述文件的整体用户体验值;
处理单元,用于根据所述整体用户体验值调整对应管理域中所述文件的副本数量。
一种分布式存储***,包括至少一个存储节点,其中一个存储节点为文件的存储根节点,所述存储根节点用于接收客户端发送的文件的用户体验值;根据接收的用户体验值按管理域计算所述文件所有客户端的整体用户体验值;并根据所述整体用户体验值调整对应管理域中所述文件的副本数量。
本发明实施例提供的分布式存储的管理方法、装置及***,客户端计算用户体验值并将计算出的用户体验值反馈给存储节点,这样,存储节点就能够根据接收到的用户体验值对各个管理域内的副本数量进行调整。由于用户体验值反映了客户端接受到的服务质量,所以,这种调整方式相对于现有技术中单纯根据访问频率进行副本冗余度的调整而言,本发明实施例更能体现客户端接受服务的质量,调整后的副本冗余度也较符合客户端的要求,即:使得客户端接受到的服务质量更加合理。
附图说明
图1为本发明实施例分布式存储的管理方法在客户端实现的流程图;
图2为本发明实施例分布式存储的管理方法在存储节点实现的流程图;
图3为本发明实施例客户端的原理图;
图4为本发明实施例存储节点的原理图;
图5为本发明实施例分布式存储***的原理图;
图6为本发明实施例分布式存储的管理方法在客户端实现的流程图;
图7为本发明实施例分布式存储的管理方法在存储节点实现的流程图;
图8为本发明实施例客户端的原理图;
图9为本发明实施例存储节点的原理图;
图10为本发明实施例分布式存储***的原理图。
具体实施方式
在分布式存储***中,由存储服务器(ChunkServer)作为存储节点构成DHT(分布式哈希表,Distributed Hash Table)网络;客户端通过已知的存储节点在***中进行各种操作,例如:发布、查询、更新和删除文件等操作。每个文件均由特定的存储节点管理其元数据,包括文件的版本号、大小、分块信息、每个块的副本所分布的存储节点列表以及下载和拥有此文件的客户端列表,此节点称为该文件的存储根节点。一般来说,存储根节点是由文件的名称通过哈希计算得到的,由于每个文件对应的存储根节点可能不同,这样就分散了各个存储节点的负载压力。
存储节点一般由四个功能构成:存储功能、域管理功能、DHT路由功能和文件管理功能。
存储功能:存储节点最基本的就是存储功能,并且可以将文件分成分块进行存储,各个分块分布在不同的存储节点中,也可以将整个文件作为整体进行存储。文件分块后,存储在不同的存储节点中,为客户端提供下载等服务,存储各个分块的存储节点需要定期所对应文件的存储根节点发送心跳报文,同时也接收所述存储文件根节点的定期扫描,以表明该分块处于激活状态。
域管理功能:根据存储节点和客户端所在地理位置和运营商的不同,可以将DHT网络划分成不同的管理域。每个管理域中所有节点由域根节点管理,域根节点由管理域的域名哈希得到的节点承担。当客户端需要访问某个文件时,先访问该文件的存储根节点,获取该文件各个分块在其他存储节点的分布情况,以及该文件在DHT网络中其它客户端的分布情况;然后优先访问邻居的客户端,当访问需求得不到满足时,再访问存储节点,并且是优先访问与该客户端处于同一个管理域的存储节点。
在一个管理域中的所有存储节点需要定期向域根节点发送心跳报文,并且域根节点需要定期扫描该管理域中存储节点的信息,确定这些存储节点是否处于存活状态。
DHT路由功能:该功能主要处理客户端的查询请求,比如客户端下载或者发布某文件时,需要查询该文件对应的存储根节点。存储节点收到用户的请求时,通过DHT路由功能计算得到所查询文件的存储根节点地址,或者计算该管理域的域根节点地址,并返回给客户端。
文件管理功能:当某个存储节点作为文件的存储根节点时,需要文件管理功能完成各个分块的副本和分布情况的统计和管理。
为了完成对各个分块的管理,该文件管理功能需要保存各个分块的元数据信息,例如分块号、分块大小、分块版本号、以及分块副本分布的存储节点列表。所述的文件管理功能还需要管理正在下载此文件的客户端列表,客户端下载文件时,向存储根结点发送请求Peerlist(节点列表)报文,存储根节点向客户端返回Peerlist,且客户端需要定期向存储根结点发送心跳报文。如果当前网络中拥有该文件的客户端节点不够,则需要将文件的分块所分布的存储节点返回给客户端。
文件管理功能还需要定期检查副本冗余度,进行相应的副本扩散或者副本收缩。副本扩散指在指定管理域内增加副本;副本收缩指在指定管理域内删除副本。
下面结合附图,对本发明实施例分布式存储的管理方法、存储节点、客户端及***进行详细描述。
本发明实施例提供一种分布式存储的管理方法,可以在客户端实现,如图1所示,该管理方法包括:
101、计算接受到文件提供的服务的用户体验值,例如:客户端在下载某文件时,需要计算下载的用户体验值。
102、将所述用户体验值发送给所述文件的存储根节点,该存储根节点就是管理该文件各个副本的存储节点。所述用户体验值为存储根结点调整所述文件在各个管理域内的副本数量提供依据。
本发明实施例还提供一种可以在存储根节点处实现的分布式存储的管理方法,如图2所示,该方法包括:
201、接收到正在访问该文件的客户端所发送的用户体验值。
202、由于客户端所处的地位位置不同使得客户端可能属于不同的管理域,所以,将所接收到的用户体验值按照客户端所属的管理域来划分,并且根据划分情况计算每个管理域中所有客户端的整体用户体验值。所述的整体用户体验值是根据该管理域中所有客户端所发送的用户体验值计算得到的。
203、本发明实施例需要根据计算得出的整体用户体验值调整对应管理域中所述文件的副本数量。由于各个管理域中的整体用户体验值都有可能不处于预定的范围内,所以,需要调整该文件的副本数量,以使得整体用户体验值处于预定的范围内。
本发明实施例还提供一种客户端,如图3所示,该客户端包括:计算单元31和发送单元32。
其中,计算单元31用于计算文件提供服务的用户体验值;发送单元32用于将所述用户体验值发送给所述文件的存储根节点,该存储根节点就是管理该文件各个副本的存储节点,所述用户体验值为存储根节点调整所述文件的副本数量提供依据。
本发明实施例还提供一种存储节点,如图4所示,该存储节点包括接收单元41、计算单元42和处理单元43。
其中,接收单元41用于接收客户端发送的文件的用户体验值,该存储节点为该文件的存储根节点;根据客户端所属管理域的不同,计算单元42用于根据接收的用户体验值计算所述文件所有客户端的整体用户体验值,并且是每个管理域都分别计算出一个整体用户体验值;处理单元43用于根据所述整体用户体验值调整对应管理域中所述文件的副本数量,以使得整体用户体验值能够符合预定的范围。
上述客户端可存储节点可以组成分布式存储***,一般来说分布式存储***是包括至少一个管理域,并且每个管理域中包括客户端和存储节点,该存储***中的一个存储节点为文件的存储根节点。如图5所示,该***包括作为存储根节点的存储节点51、以及多个客户端(52、53至5n)。
在所有的客户端中,如果任何一个客户端(52、53或5n)正在访问一个存储根节点51管理的文件,那么,该客户端(52、53或5n)就需要计算文件提供服务的用户体验值,并将所述用户体验值发送给所述文件的存储根节点51。
所述作为存储根节点的存储节点51用于接收客户端(52、53或5n)发送的文件的用户体验值;然后按照客户端所属的管理域不同,根据每个管理域中接收的用户体验值计算所述文件所有客户端的整体用户体验值;并根据所述整体用户体验值调整对应管理域中所述文件的副本数量。
本发明实施例提供的分布式存储的管理方法、存储节点、客户端及***,客户端计算用户体验值并将计算出的用户体验值反馈给存储节点,这样,存储节点就能够根据接收到的用户体验值进行文件的副本数量调整。由于用户体验值反映了客户端接受到的服务质量,所以,这种调整方式相对于现有技术中单纯根据访问频率进行副本数量的调整而言,本发明实施例更能体现客户端接受服务的质量,调整后的副本数量也较符合客户端的要求,即:使得客户端接受到的服务质量更加合理。
本发明实施例提供一种适用于客户端实现的分布式存储的管理方法,如图6所示,该管理方法包括:
601、为了计算接受到文件提供的服务的用户体验值,例如:客户端在下载某文件时,需要计算下载的用户体验值,首先获取该文件在统计周期内的平均下载速率va和该统计周期末点的瞬时下载速率vm。
602、计算平均下载速率va和瞬时下载速率vm的加权平均值,计算公式为:
fa*va+fm*vm,fa和fm分别表示平均下载速率va和瞬时下载速率vm对用户体验的影响因子,并且fp+fm=1。
603、由于客户端当前的下载进程的数量N和该文件所对应的优先级Pt都会影响到用户的体验,所以本发明实施例需要根据优先级来确定该文件理论上占用的下载带宽,计算公式为:
604、将所述加权平均值除以所述理论上占用的下载带宽得到用户体验值,具体公式为:
605、为了进一步体现用户体验对连续性的要求,本发明实施例中还需要计算本统计周期内用户体验值UENew和上一周期内用户体验值UEPrevious的加权平均值,并将所述加权平均值作为本统计周期内新的用户体验值。当前周期新的用户体验值UECurrent的计算公式为:
UECurrent=fp*UEPrevious+fn*UENew,其中,fp和fn作为权值,分别表示用户前一周期的体验值和本周期的体验值对当前体验值(即新的用户体验值)的贡献程度,并且满足fp+fn=1。
如果客户端非常重视体验的连续性,可以将fp取大一些;如果用户只重视本周期的体验,可以将fn设大一些。在某些情况下,fp也可以取零值,例如在文件被访问的初始情况下,即第一个周期内,用户没有前一周期体验值UEPrevious,所以fp默认为0,此时,fn取权值1。在fp默认为0时,表示本周期的用户体验值就是该文件提供服务的用户体验值。
一般来说,通过上述601至604已经能够计算出的用户体验值UENew,并且是可以直接使用的,本发明实施例是为了体现客户端对体验连续性的需要,增加了605,在实际运用时,可以省去605,而直接执行606,此时,相当于采用本周期的用户体验值作为该文件提供服务的用户体验值。
606、客户端将所述用户体验值发送给所述文件的存储根节点,该存储根节点就是管理该文件各个副本的存储节点。所述用户体验值为存储根结点调整所述文件的副本数量提供依据。具体的,客户端是在向存储根节点发送的心跳报文中携带了所述的用户体验值。
如果实施例中执行了605,那么发送的用户体验值为当前体验值UECurrent,如果实施例中没有执行605,则发送的用户体验值为本统计周期内用户体验值UENew。
在本发明实施例中计算用户体验值时,需要用到该文件理论上占用的下载带宽,但在某些情况下,客户端需要保持一定的理想下载速率才能有较好的用户体验,例如:对于实时播放类的应用,就需要客户端保持一定的理想下载速率,才能保证播放的流畅。所以,在具体运用时,可以采用客户端需要保持的理想下载速率R来代替该文件理论上占用的下载带宽,这样,本统计周期内的用户体验值计算公式可以改为:
在客户端将上述用户体验值发送给存储根节点后,存储根节点根据这些用户体验值调整文件的副本数量。存储根结点采用的方法如图7所示,该分布式存储的管理方法包括:
701、接收客户端发送的心跳报文,该报文中携带了所述文件的用户体验值。
702、由于客户端所处的地位位置不同使得客户端可能属于不同的管理域,所以,存储根节点需要将所接收到的用户体验值按照客户端所属的管理域来划分,并且根据划分情况计算每个管理域中所有客户端的整体用户体验值。所述的整体用户体验值是根据该管理域中所有客户端所发送的用户体验值计算得到的,一般取所有客户端发送的所述文件的用户体验值的平均值,整体用户体验值AverageUE的计算公式如下:
本发明实施例中,存储根节点需要保存如下信息:
管理域的名称,文件的副本数,前一统计周期的整体用户体验值,当前周期的整体用户体验值,以及每个用户的用户名及其对应的体验值。每个用户的体验值具体表示为:<用户1,用户1体验值>,<用户2,用户2体验值>......<用户n,用户n体验值>。
其保存的数据结构如下表:
其中,上述表示的意识对应如下:
DomainID:管理域的ID;
ReplicaNum:该管理域内文件副本数量;
AverageUE:该管理域内下载该文件客户端的整体用户体验值;
PeersVec:该管理域内下载该文件的用户信息;
PeerID:用户ID;
PeerUE:用户体验值。
703、在存储根节点中设置有用户体验值的合理范围,若整体用户体验值位于该范围内,则表示这样的服务质量和存储节点的负荷是合理的;如果整体用户体验值小于该范围的用户体验最小值UEmin,表示用户的服务质量得不到满足;如果整体用户体验值大于该范围的用户体验最大值UEmax,表示用户的服务质量得到的过分的满足,可能给存储节点带来过多的负荷。
一般情况下,这个合理的范围为1至1.2。
本过程可以获取所有管理域中整体用户体验值超过UEmax的第一比例,以及整体用户体验值小于UEmin的第二比例。
704、判断所述第一比例是否超过预设的第一目标比例Tmax,若所述第一比例超过Tmax,则执行705;否则执行706。
705、减小所述文件的副本冗余度的上限。
706、判断所述第二比例是否超过预设的第二目标比例Tmin,若所述第二比例超过Tmin,则执行707;否则执行708。
707、增大所述文件的副本冗余度的上限。
在上述705和707中需要调整副本冗余度的上限,一般来说,每个文件都会配置副本冗余度的上限和下限。冗余度下限是为保证文件可靠性而设定的,即某个副本掉线,而其它副本仍然可以访问,只有所有副本全都掉线的时候,才可能该文件不可得。比如,一个存储节点的可靠性为0.9,则设置副本冗余度下限设置为3时,可得到该文件的可靠性为1-0.1*0.1*0.1=0.999,只有0.001的概率该文件所有的3个副本全都同时掉线,而使文件不可获得,这样就保证了文件的可靠性。
其中,704至705为减小所述文件的副本冗余度的上限的操作,而706至707为增大所述文件的副本冗余度的上限的操作,这两个操作可以都执行,也可以只执行其中一个操作。如:假设所述Tmax和Tmin相加等于或超过100%,那么就只会执行其中一个操作。
设置副本冗余度的上限是为了保证资源的合理利用,因为过多的副本会造成存储节点的开销增大,且在总的存储空间有限的情况下,无节制的副本增加会造成其它文件占用的存储空间减少。本发明实施例通过对副本冗余度上限进行动态调整,使得存储节点的资源利用更加合理。
708、判断当前的副本冗余度是否小于副本冗余度的下限,如果当前的副本冗余度小于副本冗余度的下限,则执行709;否则执行710。
709、在最小的整体用户体验值对应的管理域中进行副本扩散,并返回执行708。
710、判断当前的副本冗余度是否大于副本冗余度的上限,如果当前的副本冗余度大于副本冗余度的上限,则执行711;否则执行712。
711、在最大的整体用户体验值对应的管理域中进行副本收缩,并返回执行710。
上述709和711中分别进行了副本扩散和副本收缩的操作,这样可以合理调整该文件在***中的副本冗余度,整个存储***中该文件的副本冗余度符合设定的副本冗余度的上限要求和下限要求,使其更符合存储节点所能提供的资源。
虽然,整个***的副本冗余度满足的要求,但由于副本冗余度只关心整个***的运营的平均状况,所以可能存在这样的情况:某个管理域中的副本较多,而另一个管理域中的副本较少,这样副本较多的管理域中的客户端就能更好的下载文件,其体验值也会相对较好;而副本较少的管理域中的客户端的体验就相对较差。
为了使各个管理域之间的副本数量合理分布,本发明实施例中,对于每个管理域都可以执行下述过程:
712、从所有管理域中选出最大的整体用户体验值。
713、判断所选最大的整体用户体验值是否大于用户体验最大值UEmax,如果所选最大的整体用户体验值大于UEmax,则执行714;否则执行715。
714、在对应的管理域中收缩所述文件的副本。
715、从所有管理域中选出最小的整体用户体验值。
716、判断所选最小的整体用户体验值是否小于用户体验最小值UEmin,如果所选最小的整体用户体验值小于预设的用户体验最小值,则执行717;否则结束该管理方法的流程。
717、在对应的管理域中扩散所述文件的副本。
通过执行上述712至717,在整体用户体验值过于好的管理域中收缩副本,而在整体用户体验值过于差的管理域中扩散副本,相当于把体验值较好的管理域中的副本转移到了体验值较差的管理域中,实现了对整个***各个管理域中副本数量的合理分布。
上述712至714为收缩副本操作,715至717为扩散副本操作,并且,收缩副本和扩散副本的操作可以只执行其中一个操作,也可以两个操作都执行。
上述703至707是对副本冗余度上限的调整,708至711是根据副本冗余度进行副本数量的调整,712至717是根据整体用体验值对管理域中的副本数量进行调整,所述这三个方案之间没有必然的联系,可以单独存在于实施例中,也可以组合存在于实施例中。并且在调整副本冗余度上限的方案和根据副本冗余度调整副本数量的方案同时存在的情况下,后者需要利用前者调整后得到的副本冗余度上限。
对应于图6所描述的分布式存储的管理方法,本发明实施例还提供一种客户端,如图8所示,该客户端包括:计算单元81和发送单元82。
计算单元81用于计算文件提供服务的用户体验值;,该计算单元81包括如下两种实现方式:
第一、计算单元81包括本统计周期内用户体验值计算模块815和输出模块816,其中的本统计周期内用户体验值计算模块用于计算本统计周期内用户体验值UENew;输出模块用于将本统计周期内用户体验值UENew作为文件提供服务的用户体验值输出。
第二、为了能够体现文件提供服务的用户体验值的连续性,还可以在用户体验值计算模块815和输出模块816的基础上增加存储模块817和加权计算模块818(见图8的虚线部分)。其中,本统计周期内用户体验值计算模块815用于计算本统计周期内用户体验值UENew;存储模块817用于存储上一周期内用户体验值UEPrevious;加权计算模块818用于计算本统计周期内用户体验值和上一周期内用户体验值的加权平均值;输出模块816用于将所述的加权平均值作为文件提供服务的用户体验值输出。
上述用户体验值计算模块815包括:获取子模块811、加权子模块812、处理子模块813、除法子模块814
获取子模块811用于获取该文件统计周期内的平均下载速率va和该统计周期末点的瞬时下载速率vm;加权子模块812用于计算平均下载速率va和瞬时下载速率vm的加权平均值,计算公式为:fa*va+fm*vm,fa和fm分别表示平均下载速率va和瞬时下载速率vm对用户体验的影响因子,并且fp+fm=1;处理子模块813用于依据文件向的下载优先级确定该文件理论上占用的下载带宽,公式为:其中,Pt表示该文件对应的优先级,Pi表示所有下载进程分别对应的优先级,T表示该客户端所享有的总的下载带宽;除法子模块814用于将所述加权平均值除以所述理论上占用的下载带宽得到用户体验值,即:本统计周期内用户体验值。
发送单元82用于将所述用户体验值发送给所述文件的存储根节点,该存储根节点就是管理该文件各个副本的存储节点,所述用户体验值为存储根节点调整所述文件的副本冗余度提供依据。
在具体运用时,可以采用客户端需要保持的理想下载速率R来代替该文件理论上占用的下载带宽,这样处理子模块813就用于确定该文件理论上的理想下载速率R。
对应于图7所描述的分布式存储的管理方法,本发明实施例还提供一种存储节点,如图9所示,该客户端包括:接收单元91、计算单元92和处理单元93。
其中,接收单元91用于接收客户端发送的文件的用户体验值,该存储节点为该文件的存储根节点;根据客户端所属管理域的不同,计算单元92用于根据接收的用户体验值计算所述文件所有客户端的整体用户体验值,并且是每个管理域都分别计算出一个整体用户体验值,一般来说,所述计算单元92计算所有客户端发送的所述文件的用户体验值的平均值,并将该平均值作为整体用户体验值;处理单元93用于根据所述整体用户体验值调整对应管理域中所述文件的副本冗余度,以使得整体用户体验值能够符合预定的范围。
在存储节点中事先设置有用户体验值的合理范围,若整体用户体验值位于该范围内,则表示这样的服务质量和存储节点的负荷是合理的;如果整体用户体验值小于该范围的用户体验最小值UEmin,表示用户的服务质量得不到满足;如果整体用户体验值大于该范围的用户体验最大值UEmax,表示用户的服务质量得到的过分的满足,可能给存储节点带来过多的负荷。
在具体实施时,本发明实施例中的处理单元93可以包括:第五判断模块937、第六判断模块938、第一获取模块939、第二获取模块9313、第一调整模块9312和第二调整模块9314。
第一获取模块939用于获取所有管理域中整体用户体验值超过UEmax的第一比例,;第五判断模块937用于判断所述第一比例是否超过预设的第一目标比例Tmax;如果所述第一比例超过Tmax,则第一调整模块9312用于减小所述文件的副本冗余度的上限。
第二获取模块9313用于获取所有管理域中整体用户体验值小于UEmin的第二比例,第六判断模块938用于判断所述第二比例是否超过预设的第二目标比例Tmin,如果所述第二比例超过预设的比例Tmin,所述第二调整模块9314用于增大所述文件的副本冗余度的上限。
上述增大副本冗余度上限和减小副本冗余度上限的方案可以同时存在于一个实施例中,也可以只将其中一个方案部署在实施例中。
通过上面的操作,本发明实施例完成对副本冗余度上限的调整。在有的情况下,可以第五判断模块937和第六判断模块938只存在其中一个,例如:Tmin和Tmax相加等于或超过100%。
在具体实施时,本发明实施例中的处理单元93可以包括:第三判断模块935、第四判断模块936、扩散模块9310、收缩模块9311。并执行如下操作:第三判断模块935用于判断当前的副本冗余度是否小于副本冗余度的下限;如果当前的副本冗余度小于副本冗余度的下限,所述扩散模块9310在最小的整体用户体验值对应的管理域中进行副本扩散;第四判断模块936用于判断当前的副本冗余度是否大于副本冗余度的上限;如果当前的副本冗余度大于副本冗余度的上限,所述收缩模块9311在最大的整体用户体验值对应的管理域中进行副本收缩。
为了使各个管理域中副本的数量合理分布,在具体实施时,本发明实施例中的处理单元93也可以包括:第一选择模块931、第二选择模块932、第一判断模块933、第二判断模块934。并执行如下操作:第一选择模块931用于从所有管理域中选出最大的整体用户体验值;第一判断模块933用于判断所选最大的整体用户体验值是否大于UEmax,如果所选最大的整体用户体验值大于UEmax,则收缩模块9311在对应的管理域中收缩所述文件的副本;第二选择模块932用于从所有管理域中选出最小的整体用户体验值;第二判断模块934于判断所选最小的整体用户体验值是否小于UEmin,如果所选最小的整体用户体验值小于UEmin,扩散模块9310在对应的管理域中扩散所述文件的副本。
本发明实施例中第一选择模块931、第一判断模块933和收缩模块9311配合完成副本收缩,而第二选择模块932、第二判断模块934和扩散模块9310配合完成副本扩散,并且上述两组模块可以只选择其中一个作为本发明实施例的处理单元93的组成部分。
上述实施例中分别实现了副本冗余度上限的调整、根据副本冗余度进行副本数量的调整、根据整体用体验值对管理域中的副本数量进行调整,但这三个方案之间没有必然的联系,都可以作为一个单独实现方案,也可以将上述三个方案按照各种方式组合作为一个实现方案。
当调整副本冗余度上限的方案和根据副本冗余度调整副本数量的方案同时存在时,后者需要利用前者调整后的副本冗余度上限,在这种情况下,第一调整模块9312和第二调整模块9314均需要分别连接到第四判断模块936(见图9中的虚线)。
本发明实施例中的存储节点和客户端可以组成一个分布式存储***,具体如图10所示,其中客户端和存储节点都是按照管理域进行管理的。
本发明实施例可以用于各种分布式存储***中,但对于P2P的存储***而言,本发明实施例具有明显的优点,下面具体分析将本发明实施例运用于P2P***中的优势:
以客户端下载某一个文件为例,假设***中目前有M个副本,并且Min≤M≤Max,其中,Min为副本冗余度下限,Max为副本冗余度上限,同时假设目前***中有P个该文件的数据分片分布在网络的客户端中,并能够以P2P方式提供数据,并且N个客户端正在对该文件进行下载。如果存储节点的上行带宽均为Us,客户端的上行带宽为Ui,客户端的下行带宽为Di,其中i∈[1,N],上述这些带宽均为分配给该文件的带宽。
则存储节点能为每个客户端提供的平均最大上行带宽为:
具有数据分片的客户端能为需求节点提供的平均最大上行带宽为:
我们假设***能提供的上行带宽都能被有效的利用,那么每个客户端能得到的平均上行带宽作为它的下载速度,则客户的最大下载体验值为:
***平均下载体验值为:
假设每个客户端的上行带宽和下行带宽均为Uc,Dc,则
由上述公式可知,当下载该文件的客户端数量N越来越大,该文件的副本数M显然无法与N在一个数量级进行增长,但是,如果P的数值越大,就能够平衡下载客户端数量N的增长,使得此时的用户体验不强烈依赖于服务器副本数目M增长,并且用户体验仍然保持在一个可以接受的水平。如果文件副本在***中的分布不广,P数值也较小,此时用户体验由副本数M和数据分片的规模P共同决定,这时增加副本数对提高用户体验能够产生积极的效果。
例如:用户启动单任务下载,接入网为adsl,Uc=512kbps,Dc=2Mbps,Us=1Gbps,通过上述计算可得:AverageUE=(0.25P+500M)/N
假设,当前***中只有1个副本,且客户端还没有数据分片时,即M=1,P=0。若N=1000,AverageUE=0.5;当N增大到10000时,AverageUE减小到0.05,降低了90%,若此时将M增大到6(相当于增加5个副本),AverageUE增大到0.3;当M为1,P此时是10000,N增大到10000时,AverageUE=0.3,如果0.3是可接受的体验值,则不必再存储节点增加副本。在这个案例中,客户端提供的访问能力,能使大规模并发访问时,在保证同样0.3体验值的基础上,为存储节点节省5个副本的资源。
本发明实施例综合考虑了P2P***中客户端同时提供服务的情况,避免了在采用访问频率控制机制下出现的不合理增加副本的情况。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (21)
1.一种分布式存储的管理方法,其特征在于,包括:
计算文件提供服务的用户体验值;
将所述用户体验值发送给所述文件的存储根节点,所述用户体验值为调整所述文件在各个管理域内的副本数量提供依据。
2.根据权利要求1所述的分布式存储的管理方法,其特征在于,计算文件提供服务的用户体验值具体包括:计算本统计周期内用户体验值,并计算所述本统计周期内用户体验值和上一周期内用户体验值的加权平均值,以所述加权平均值作为所述文件提供服务的用户体验值。
3.根据权利要求2所述的分布式存储的管理方法,其特征在于,计算文件提供服务的用户体验值具体包括:计算本统计周期内用户体验值;以本统计周期内用户体验值作为所述文件提供服务的用户体验值。
4.根据权利要求2或3所述的分布式存储的管理方法,其特征在于,所述计算本统计周期内用户体验值包括:
获取该文件在统计周期内的平均下载速率和该统计周期末点的瞬时下载速率;
计算平均下载速率和瞬时下载速率的加权平均值;
依据文件的下载优先级确定该文件理论上占用的下载带宽;
将所述加权平均值除以所述理论上占用的下载带宽得到用户体验值。
5.根据权利要求2或3所述的分布式存储的管理方法,其特征在于,所述计算本统计周期内用户体验值包括:
获取该文件在统计周期内的平均下载速率和该统计周期末点的瞬时下载速率;
计算平均下载速率和瞬时下载速率的加权平均值;
确定该文件理论上的理想下载速率;
将所述加权平均值除以所述理想下载速率得到用户体验值。
6.一种分布式存储的管理方法,其特征在于,包括:
接收客户端发送的文件的用户体验值;
在每个管理域中,根据接收的用户体验值计算所述文件的整体用户体验值;
根据所述整体用户体验值调整对应管理域中所述文件的副本数量。
7.根据权利要求6所述的分布式存储的管理方法,其特征在于,所述每个管理域的整体用户体验值为:该管理域中所有客户端发送的所述文件的用户体验值的平均值。
8.根据权利要求6所述的分布式存储的管理方法,其特征在于,根据所述整体用户体验值调整对应管理域中所述文件的副本数量包括:
从所有管理域中选出最大的整体用户体验值;判断所选最大的整体用户体验值是否大于预设的用户体验最大值;如果所选最大的整体用户体验值大于预设的用户体验最大值,则在对应的管理域中收缩所述文件的副本;和/或
从所有管理域中选出最小的整体用户体验值;判断所选最小的整体用户体验值是否小于预设的用户体验最小值;如果所选最小的整体用户体验值小于预设的用户体验最小值,则在对应的管理域中扩散所述文件的副本。
9.根据权利要求6或8所述的分布式存储的管理方法,其特征在于,根据所述整体用户体验值调整对应管理域中所述文件的副本数量进一步包括:
判断当前的副本冗余度是否小于副本冗余度的下限;
如果当前的副本冗余度小于副本冗余度的下限,则在最小的整体用户体验值对应的管理域中进行副本扩散;
判断当前的副本冗余度是否大于副本冗余度的上限;
如果当前的副本冗余度大于副本冗余度的上限,则在最大的整体用户体验值对应的管理域中进行副本收缩。
10.根据权利要求9所述的分布式存储的管理方法,其特征在于,根据所述整体用户体验值调整对应管理域中所述文件的副本数量还包括:
获取所有管理域中整体用户体验值超过预设的用户体验最大值的第一比例;判断所述第一比例是否超过预设的第一目标比例;若所述第一比例超过预设的第一目标比例,则减小所述文件的副本冗余度的上限;和/或
获取所有管理域中整体用户体验值小于预设的用户体验最小值的第二比例;判断所述第二比例是否超过预设的第二目标比例;若所述第二比例超过预设的第二目标比例,则增大所述文件的副本冗余度的上限。
11.一种客户端,其特征在于,包括:
计算单元,用于计算文件提供服务的用户体验值;
发送单元,用于将所述用户体验值发送给所述文件的存储根节点,所述用户体验值为调整所述文件在各个管理域内的副本数量提供依据。
12.根据权利要求11所述的客户端,其特征在于,所述计算单元包括:
本统计周期内用户体验值计算模块,用于计算本统计周期内用户体验值;
存储模块,用于存储上一周期内用户体验值。
加权计算模块,用于计算本统计周期内用户体验值和上一周期内用户体验值的加权平均值;
输出模块,用于将所述的加权平均值作为文件提供服务的用户体验值输出。
13.根据权利要求12所述的客户端,其特征在于,所述计算单元还包括:
本统计周期内用户体验值计算模块,用于计算本统计周期内用户体验值;
输出模块,用于将所述的本统计周期内用户体验值作为文件提供服务的用户体验值输出。
14.根据权利要求12或13所述的客户端,其特征在于,所述本统计周期内用户体验值计算模块包括:
获取子模块,用于获取该文件在统计周期内的平均下载速率和该统计周期末点的瞬时下载速率;
加权子模块,用于计算平均下载速率和瞬时下载速率的加权平均值;
处理子模块,用于依据文件的下载优先级确定该文件理论上占用的下载带宽;
除法子模块,用于将所述加权平均值除以所述理论上占用的下载带宽得到用户体验值。
15.根据权利要求12或13所述的客户端,其特征在于,所述本统计周期内用户体验值计算模块包括:
获取子模块,用于获取该文件在统计周期内的平均下载速率和该统计周期末点的瞬时下载速率;
加权子模块,用于计算平均下载速率和瞬时下载速率的加权平均值;
处理子模块,用于确定该文件理论上的理想下载速率;
除法子模块,用于将所述加权平均值除以所述理想下载速率得到用户体验值。
16.一种存储节点,其特征在于,包括:
接收单元,用于接收客户端发送的文件的用户体验值;
计算单元,用于根据接收的用户体验值,按管理域计算所述文件的整体用户体验值;
处理单元,用于根据所述整体用户体验值调整对应管理域中所述文件的副本数量。
17.根据权利要求16所述的存储节点,其特征在于,所述所述文件的整体用户体验值为所述管理域中所有客户端发送的所述文件的用户体验值的平均值。
18.根据权利要求16所述的存储节点,其特征在于,所述处理单元包括:
第一选择模块,用于从所有管理域中选出最大的整体用户体验值;第一判断模块,用于判断所选最大的整体用户体验值是否大于预设的用户体验最大值;收缩模块,用于在所选最大的整体用户体验值大于预设的用户体验最大值时,在对应的管理域中收缩所述文件的副本;和/或
第二选择模块,用于从所有管理域中选出最小的整体用户体验值;第二判断模块,用于判断所选最小的整体用户体验值是否小于预设的用户体验最小值;扩散模块,用于在所选最小的整体用户体验值小于预设的用户体验最小值时,在对应的管理域中扩散所述文件的副本。
19.根据权利要求16或18所述的存储节点,其特征在于,所述处理单元进一步包括:
第三判断模块,用于判断当前的副本冗余度是否小于副本冗余度的下限;
所述扩散模块还用于在当前的副本冗余度小于副本冗余度的下限时,在最小的整体用户体验值对应的管理域中进行副本扩散;
第四判断模块,用于判断当前的副本冗余度是否大于副本冗余度的上限;
所述收缩模块还用于在当前的副本冗余度大于副本冗余度的上限时,在最大的整体用户体验值对应的管理域中进行副本收缩。
20.根据权利要求19所述的存储节点,其特征在于,所述处理单元还包括:
第一获取模块,用于获取所有管理域中整体用户体验值超过预设的用户体验最大值的第一比例;第五判断模块,用于判断所述第一比例是否超过预设的第一目标比例;第一调整模块,在所述第一比例超过预设的第一目标比例时,减小所述文件的副本冗余度的上限;和/或
第二获取模块,用于获取所有管理域中整体用户体验值小于预设的用户体验最小值的第二比例;第六判断模块,用于判断所述第二比例是否超过预设的第二目标比例;第二调整模块,用于在所述第二比例超过预设的第二目标比例时,增大所述文件的副本冗余度的上限。
21.一种分布式存储***,其特征在于,包括至少一个存储节点,其中一个存储节点为文件的存储根节点,所述存储根节点用于接收客户端发送的文件的用户体验值;根据接收的用户体验值按管理域计算所述文件所有客户端的整体用户体验值;并根据所述整体用户体验值调整对应管理域中所述文件的副本数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101725116A CN101729582B (zh) | 2008-10-27 | 2008-10-27 | 分布式存储的管理方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101725116A CN101729582B (zh) | 2008-10-27 | 2008-10-27 | 分布式存储的管理方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101729582A true CN101729582A (zh) | 2010-06-09 |
CN101729582B CN101729582B (zh) | 2012-08-08 |
Family
ID=42449777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101725116A Expired - Fee Related CN101729582B (zh) | 2008-10-27 | 2008-10-27 | 分布式存储的管理方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101729582B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877725A (zh) * | 2010-06-25 | 2010-11-03 | 中兴通讯股份有限公司 | 分布式存储***中的副本管理方法及装置 |
CN102164309A (zh) * | 2011-03-21 | 2011-08-24 | 华为技术有限公司 | 节目的处理方法和***以及装置 |
CN102891895A (zh) * | 2012-10-18 | 2013-01-23 | 中山大学 | 一种虚拟镜像服务器的带宽优化方法 |
CN103618769A (zh) * | 2013-11-15 | 2014-03-05 | 华为技术有限公司 | 一种冗余配置的方法、***以及相关设备 |
CN109684294A (zh) * | 2018-12-24 | 2019-04-26 | 海能达通信股份有限公司 | 小文件处理方法及分布式*** |
CN110489279A (zh) * | 2019-08-27 | 2019-11-22 | 深圳市网心科技有限公司 | 一种文件副本维护方法及相关装置 |
CN115865905A (zh) * | 2023-02-21 | 2023-03-28 | 深圳依时货拉拉科技有限公司 | 压缩包下载的方法、装置、计算机设备及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100518132C (zh) * | 2007-03-15 | 2009-07-22 | 上海交通大学 | 分布式交通信息存储文件*** |
CN101187931A (zh) * | 2007-12-12 | 2008-05-28 | 浙江大学 | 分布式文件***多文件副本的管理方法 |
-
2008
- 2008-10-27 CN CN2008101725116A patent/CN101729582B/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877725A (zh) * | 2010-06-25 | 2010-11-03 | 中兴通讯股份有限公司 | 分布式存储***中的副本管理方法及装置 |
CN101877725B (zh) * | 2010-06-25 | 2014-06-11 | 中兴通讯股份有限公司 | 分布式存储***中的副本管理方法及装置 |
CN102164309A (zh) * | 2011-03-21 | 2011-08-24 | 华为技术有限公司 | 节目的处理方法和***以及装置 |
CN102164309B (zh) * | 2011-03-21 | 2014-09-03 | 华为技术有限公司 | 节目的处理方法和***以及装置 |
CN102891895A (zh) * | 2012-10-18 | 2013-01-23 | 中山大学 | 一种虚拟镜像服务器的带宽优化方法 |
CN102891895B (zh) * | 2012-10-18 | 2016-04-20 | 中山大学 | 一种虚拟镜像服务器的带宽优化方法 |
CN103618769A (zh) * | 2013-11-15 | 2014-03-05 | 华为技术有限公司 | 一种冗余配置的方法、***以及相关设备 |
CN109684294A (zh) * | 2018-12-24 | 2019-04-26 | 海能达通信股份有限公司 | 小文件处理方法及分布式*** |
CN110489279A (zh) * | 2019-08-27 | 2019-11-22 | 深圳市网心科技有限公司 | 一种文件副本维护方法及相关装置 |
CN115865905A (zh) * | 2023-02-21 | 2023-03-28 | 深圳依时货拉拉科技有限公司 | 压缩包下载的方法、装置、计算机设备及计算机可读存储介质 |
CN115865905B (zh) * | 2023-02-21 | 2023-06-13 | 深圳依时货拉拉科技有限公司 | 压缩包下载的方法、装置、计算机设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101729582B (zh) | 2012-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10904597B2 (en) | Dynamic binding for use in content distribution | |
CN101729582B (zh) | 分布式存储的管理方法、装置及*** | |
CN109308221B (zh) | 一种基于WebSocket长连接的Nginx动态负载均衡方法 | |
US8103767B2 (en) | Method and apparatus for distributing requests among a plurality of resources | |
EP2399207B1 (en) | Topology aware cache cooperation | |
CN110401657B (zh) | 一种访问日志的处理方法及装置 | |
US20200050479A1 (en) | Blockchain network and task scheduling method therefor | |
US8301736B2 (en) | Method for selecting and configuring network supernodes | |
CN102055650A (zh) | 负载均衡方法及***和管理服务器 | |
US9729603B2 (en) | Content stream delivery using variable cache replacement granularity | |
CN101751309A (zh) | 数据网格中一种优化的副本分布方法 | |
CN103226520B (zh) | 集群内存自适应管理方法、服务器集群*** | |
CN101741884A (zh) | 一种分布式存储方法和装置 | |
US6973536B1 (en) | Self-adaptive hybrid cache | |
CN101800768A (zh) | 一种基于存储联盟子集划分的网格数据副本生成方法 | |
US8583819B2 (en) | System and method for controlling server usage in peer-to-peer (P2P) based streaming service | |
CN112751926A (zh) | 一种集群中工作节点的管理方法、***及相关装置 | |
CN110083313A (zh) | 一种数据缓存方法及装置 | |
Mortazavi et al. | Model and simulation study of a peer-to-peer game with a reputation-based incentive mechanism | |
CN110968419A (zh) | 数据接收方法及装置 | |
CN114285753B (zh) | 一种cdn调度方法和*** | |
CN114615277B (zh) | 一种基于emq x的多集群动态扩展方法及*** | |
CN114816257B (zh) | 一种应用于移动分布式存储的数据布局方法 | |
CN116166451B (zh) | 一种主题数量的动态调节方法、***、装置及存储介质 | |
Rufino et al. | A cluster oriented model for dynamically balanced DHTs |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120808 Termination date: 20191027 |
|
CF01 | Termination of patent right due to non-payment of annual fee |