CN104049916A - 一种基于节点角色切换机制的自组织分布式存储系统及其方法 - Google Patents

一种基于节点角色切换机制的自组织分布式存储系统及其方法 Download PDF

Info

Publication number
CN104049916A
CN104049916A CN201410288643.0A CN201410288643A CN104049916A CN 104049916 A CN104049916 A CN 104049916A CN 201410288643 A CN201410288643 A CN 201410288643A CN 104049916 A CN104049916 A CN 104049916A
Authority
CN
China
Prior art keywords
node
memory node
request
degree
memory
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
Application number
CN201410288643.0A
Other languages
English (en)
Other versions
CN104049916B (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.)
Southeast University
Original Assignee
Southeast University
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 Southeast University filed Critical Southeast University
Priority to CN201410288643.0A priority Critical patent/CN104049916B/zh
Publication of CN104049916A publication Critical patent/CN104049916A/zh
Application granted granted Critical
Publication of CN104049916B publication Critical patent/CN104049916B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于节点角色切换机制的自组织分布式存储系统及其方法,本系统中每一个节点可以扮演两种角色:存储节点和控制节点。存储节点负责处理用户请求兼顾调整连接,控制节点负责帮助存储节点调整连接以分担存储节点的调整连接的负担。角色切换的依据是一个节点计算扮演当前角色的工作效率,如果工作效率低于所有扮演此角色的节点的平均工作效率,则切换为另一个角色。本发明能够节省系统的通信耗费,更快地返回用户查询结果,给予用户更好的服务体验。同时即使系统中的某个节点暂时性出错或者遭受攻击导致无法访问,也不会导致系统瘫痪,其余的节点会迅速调整自己的连接和切换角色,确保系统稳定运行,而且具有较高的容错性。

Description

一种基于节点角色切换机制的自组织分布式存储系统及其方法
技术领域
本发明涉及一种分布式存储环境下的基于节点角色切换机制的自组织系统的构建,具体来说,该系统是节点可以根据工作效率自由选择扮演存储节点或者控制节点,存储节点基于用户访问数据资源历史记录计算出急需的资源列表,将资源列表请求提交给控制节点,控制节点帮助存储节点进行连接调整的自组织分布式存储系统。
背景技术
在目前的信息时代,传统的、个人的小型数据库已经很难满足日益增长的数据存储需求,越来越大的数据量需求导致分布式数据库的产生,数据被保存在不同的服务器(存储节点)上,而这些存储节点在物理连接上或者逻辑上互相连接。
存储于存储节点的数据出于数据的冗余性和安全性考虑,必须进行数据划分和副本保存,因此不同的存储节点中可能拥有不同的数据资源碎片。如果一个用户需要访问一个文件数据,他得到的返回结果可能来自不同的存储节点。为了尽快给用户返回查询结果,如果被访问的存储节点尽可能在逻辑关系上靠近,用户得到查询返回结果的时间也就越短。如示例图1,其中每一个圆形节点代表一个存储节点,花括号中数字代表该存储节点拥有的数据资源,假设用户需要{d1,d2,d7}的数据资源,存储节点1自己可以返回d1和d2的数据资源,但是数据资源d7必须向存储节点7请求才能得到,一段时间后,存储节点1发现经常有用户请求d7,那么如果能直接与存储节点7建立起关系,就不用每次都通过其他节点才能与存储节点7通信,所以存储节点1与存储节点7建立直接联系可以减短通信时间,对系统来说是有利的调整。反过来,如果存储节点1感觉与存储节点4不经常进行交流,由于维护连接需要代价,断开存储节点1和存储节点4之间的连接也有益双方节省处理空间。可见,网络拓扑结构对于请求响应时间有着极其重要的影响,而能够这样自治地进行关系调整,不需要外界干预的系统就是自组织系统。
一般来说,存储节点上一层有一个统一存储设备管理系统,可以实现存储节点的逻辑虚拟连接化管理、多链路冗余管理,以及对硬件设备的状态进行监控和故障维护。但是,如果这个统一的存储设备管理系统发生故障或者受到攻击,与基层的存储节点断开联系,整个系统性能将会受到致命的打击,这也是中心式的管理系统所存在的一个极大的弱点。因此,我们希望系统能具有良好的容错性,存储节点能够分布式地管理自己的连接和状况维护,如此一来,即使一个存储节点受到攻击或者出现故障失灵,其余的存储节点也可以维持系统继续正确稳定地为用户提供服务。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种提出一个基于节点角色切换机制的自组织分布式存储系统,该系统中存在两种角色,存储节点和控制节点,系统中的每一个节点根据当前扮演角色的工作效率,可以自主进行角色切换从而扮演不同的角色,履行不同的职责。该系统是一个分布式的自组织存储系统,避免了以往中心式控制带来的容错性能低下问题。
为实现上述目的,本发明采用的技术方案为:一种基于节点角色切换机制的自组织分布式存储系统,包括一个以上的节点,每一个节点根据其扮演角色的工作效率自主切换扮演存储节点和控制节点这两种角色。
优选的:所述存储节点根据用户发出请求的历史记录计算数据资源的需求度,以此为依据来调整自己的连接情况或者请求控制节点帮忙介绍合适存储节点来改变拓扑结构,同时计算自身作为存储节点的工作效率,如果自身工作效率低于当前所有存储节点的平均工作效率,且此时所述存储节点的任务队列为空并且控制节点数低于预先设置好的控制节点数目,所述存储节点切换成控制节点的角色;所述控制节点负责接收存储节点的请求来调整存储节点之间的拓扑结构,同时也计算作为自身控制节点的工作效率,如果自身工作效率低于当前所有控制节点的平均工作效率,控制节点切换成存储节点的角色。
所述存储节点、控制节点的任务队列中的请求按照先进先出顺序排列,如果存储节点拥有当前最优先的请求的子请求所需要的数据资源且Loadnow<LOAD就自己处理,否则将该子请求交给能处理的物理连接存储节点,每一个存储节点i记录自身的忙碌度busy_degreei=not_empty_clocki/worktimei,其中,LOAD代表存储节点的处理空间大小,Loadnow存储节节点当前负载,not_empty_clocki代表存储节点i的任务列表不为空的时长,worktimei代表存储节点i在当前角色上存在的时长,传递子请求时挑选拥有子请求所需求的资源的忙碌度最低的物理连接存储节点;
所述任务队列为空的存储节点随机选择一个物理连接存储节点,并将该物理连接存储节点的物理连接存储节点编号和虚拟连接存储节点编号加入自己的虚拟连接关系列表。
优选的:所述子请求的先后关系用树结构表示,如果存储节点i与存储节点l之间的相互需求程度达不到它们两个圈子的平均值,取消他们之间的连接。
一种基于节点角色切换机制的自组织分布式存储方法,存储节点在收到某个用户请求后,首先查看自己拥有的数据资源表,并完成目前自己可以处理的子请求;查看该子请求下一步所需求的数据资源,将相应的子请求交给有相应数据资源的邻接存储节点,并且记录存储节点i对某一种数据资源j的需求度一旦对某种数据资源j的需求度超过了某个阈值Tj,该存储节点如果与控制节点没有连接,会自己在虚拟连接存储节点中寻找拥有这种数据资源的存储节点并与其建立连接;如果该存储节点与控制节点有连接,则将该资源请求递交给控制节点,让控制节点帮忙介绍合适的存储节点建立连接;同时所述存储节点还必须考察自己现有的邻接存储节点,如果某一对存储节点发现它们彼此对对方的需求度之和低于彼此所处圈子的平均需求度之和,那么这条连接被取消;所述控制节点负责接收存储节点的请求来调整存储节点之间的拓扑结构,同时也计算自身作为控制节点的工作效率,如果自身工作效率低于当前所有控制节点的平均工作效率,控制节点切换成存储节点的角色。
优选的:所述存储节点记录自己对每一种数据资源的需求度,所述存储节点i在时刻t对数据资源j的需求度 res need i → j ( t ) = ω * res need i → j ( t - 1 ) + Σ k = 0 m 1 / ne k , 其中ω是一个衰减因子,且ω<1;代表的是在这个时间点有m个需要数据资源j的子请求还未完成处理,nek代表分配这个子请求时拥有这个数据资源的物理连接存储节点数,同时存储节点统计系统中每一个时刻所有存储节点对数据资源j的需求度的平均值Tj,如果说明存储节点i急需数据资源j。
优选的:所述存储节点的工作效率的计算公式为:
Work _ effOfSN i = busy _ degree i * N | EAC set i | + | EW set i |
其中:Work_effofSNi计算的是作为存储节点的工作效率,N代表节点总数,存储节点由一个四元组表示:{ai|Dset,LOAD,EWset,FACset},其中Dset代表存储节点ai所具有的的数据资源集合,LOAD代表存储节点ai存储空间大小,EWset代表与存储节点ai直接相连的物理连接存储节点集合,FACset代表与存储节点ai并非直接相连的虚拟连接存储节点集合;而每一个用户请求用一个二元组表示:{Reqp|{dj,pp},Hw},其中{dj,pp}代表一个子请求,该子请求需要数据资源dj以及处理空间pp,Hw代表该请求中子请求的先后关系。
优选的:所述控制节点的工作效率的计算公式为:
Work _ effOfCN i = NumOfReq i clock i * | EAC set i | N
其中:NumOfReqi代表的是请求总数,clocki代表控制节点i的存在时间。
优选的:所述控制节点根据存储节点的请求来调整存储节点之间的拓扑结构方法为:控制节点根据存储节点的请求为依据给自己掌控的存储节点打分,根据得分高低推荐合适的存储节点给提出请求的存储节点进行连接;所述储节点i与虚拟连接储节点q建立连接关系的方法为:存储节点i的虚拟连接存储节点q在被考察时刻t的得分为:
若得分最大,则建立储节点i与储节点q的连接关系。
优选的:所述储节点i与物理连接存储节点l取消连接关系的方法为:首先计算存储节点i的物理连接存储节点l在被考察时刻t的得分为:
score _ phy i → l ( t ) = Σ k ∈ D set l res need i → k ( t ) ;
然后将上述代入存储节点i与物理连接存储节点l在时刻t取消连接的条件公式:
busy _ degree i busy _ degree i + busy _ degree l * score _ phy i &RightArrow; l ( t ) + busy _ degree l busy _ degree i + busy _ degree l * score _ phy l &RightArrow; i ( t ) < busy _ degree i busy _ degree i + busy _ degree l * avg _ score i &RightArrow; ne ( t ) + busy _ degree l busy _ degree i + busy _ degree l * avg _ score l &RightArrow; ne ( t )
其中 avg _ score i &RightArrow; ne ( t ) = &Sigma; d &Element; EW set i score _ phy i &RightArrow; d ( t ) | EW set i | , busy _ degree i busy _ degree i + busy _ degree l 代表i在与l交流中的重要程度,score_phyi→l(t)代表在时刻t存储节点i给存储节点l的评分,avg_scorei→ne(t)代表时刻t存储节点i的物理连接存储节点们评分的平均值。
本发明提供的一种基于节点角色切换机制的自组织分布式存储系统及其方法,相比现有技术,具有以下有益效果:
由于每一个节点自主切换扮演存储节点和控制节点这两种角色;所述存储节点根据用户发出请求的历史记录计算数据资源的需求度,以此为依据来调整自己的连接情况或者请求控制节点帮忙介绍合适存储节点来改变拓扑结构,同时计算自身作为存储节点的工作效率,如果自身工作效率低于当前所有存储节点的平均工作效率,且此时所述存储节点的任务队列为空并且控制节点数低于预先设置好的控制节点数目,所述存储节点切换成控制节点的角色;所述控制节点负责接收存储节点的请求来调整存储节点之间的拓扑结构,同时也计算作为自身控制节点的工作效率,如果自身工作效率低于当前所有控制节点的平均工作效率,控制节点切换成存储节点的角色,因此本发明具有以下有益效果:
(1)减少通信耗费  这种自组织的调整连接方式,可以根据用户的需求分布进行整个系统的结构重组,可以使原先要经过复数跳才能到达的两个存储节点直接进行交流,减少了通信耗费。
(2)更快响应用户请求  由于一直在动态调整系统结构,整个系统根据用户请求调整成更合理的结构,可以在更短的时间内返回请求结果,给用户带来更好的使用体验。
(3)适应动态性和容错性  在基于角色切换机制的自组织分布式存储系统中,与中心式的存储系统不同,控制节点是由存储节点通过角色切换机制演化而来,即使控制节点遭受攻击导致无法工作,剩余的存储节点可以立刻选拔出合适的节点成为控制节点,这保证了系统良好的容错性。
附图说明
图1是存储节点动态调整连接关系的示意图。
图2是本发明的系统角色切换机制工作的示意图。
图3是一个用户请求的示意图。
图4是本发明方法的主要原理图。
其中:在图1、图2中的圆形节点都相同,均表示系统中的节点,其中圆圈中的标记数字1,2,3,…,9表示节点的序号。图3中的方形节点都相同,表示用户请求中的子请求,其方形中标记数字1,2,3,4,5表示子请求序号。
具体实施方式
下面结合附图对本发明作更进一步的说明。
一种基于节点角色切换机制的自组织分布式存储系统,如图2-4所示,包括一个以上的节点,每一个节点自主切换扮演存储节点和控制节点这两种角色;所述存储节点根据用户发出请求的历史记录计算数据资源的需求度,以此为依据来调整自己的连接情况或者请求控制节点帮忙介绍合适存储节点来改变拓扑结构,同时计算自身作为存储节点的工作效率,如果自身工作效率低于当前所有存储节点的平均工作效率,且此时所述存储节点的任务队列为空并且控制节点数低于预先设置好的控制节点数目,所述存储节点切换成控制节点的角色;所述控制节点负责接收存储节点的请求来调整存储节点之间的拓扑结构,同时也计算作为自身控制节点的工作效率,如果自身工作效率低于当前所有控制节点的平均工作效率,控制节点切换成存储节点的角色。
所述存储节点、控制节点的任务队列中的请求按照先进先出顺序排列,如果存储节点拥有当前最优先的请求的子请求所需要的数据资源且Loadnow<LOAD就自己处理,否则将该子请求交给能处理的物理连接存储节点,每一个存储节点i记录自身的忙碌度busy_degreei=not_empty_clocki/worktimei,其中,LOAD代表存储节点的处理空间大小,Loadnow存储节节点当前负载,not_emptyclocki代表存储节点i的任务列表不为空的时长,worktimei代表存储节点i在当前角色上存在的时长,传递子请求时挑选拥有子请求所需求的资源的忙碌度最低的物理连接存储节点;
所述任务队列为空的存储节点随机选择一个物理连接存储节点,并将该物理连接存储节点的物理连接存储节点编号和虚拟连接存储节点编号加入自己的虚拟连接关系列表。
所述子请求的先后关系用树结构表示,如果存储节点i与存储节点l之间的相互需求程度达不到它们两个圈子的平均值,取消他们之间的连接。
一种基于节点角色切换机制的自组织分布式存储方法,存储节点在收到某个用户请求后,首先查看自己拥有的数据资源表,并完成目前自己可以处理的子请求;查看该子请求下一步所需求的数据资源,将相应的子请求交给有相应数据资源的邻接存储节点,并且记录存储节点i对某一种数据资源j的需求度一旦对某种数据资源j的需求度超过了某个阈值Tj,该存储节点如果与控制节点没有连接,会自己在虚拟连接存储节点中寻找拥有这种数据资源的存储节点并与其建立连接;如果该存储节点与控制节点有连接,则将该资源请求递交给控制节点,让控制节点帮忙介绍合适的存储节点建立连接;同时所述存储节点还必须考察自己现有的邻接存储节点,如果某一对存储节点发现它们彼此对对方的需求度之和低于彼此所处圈子的平均需求度之和,那么这条连接被取消;所述控制节点负责接收存储节点的请求来调整存储节点之间的拓扑结构,即存储节点的请求中包含了对某些数据需求,控制节点以此为依据给自己掌控的存储节点打分,根据得分高低推荐合适的存储节点给提出请求的存储节点进行连接,同时也计算自身作为控制节点的工作效率,如果自身工作效率低于当前所有控制节点的平均工作效率,控制节点切换成存储节点的角色。
所述存储节点记录自己对每一种数据资源的需求度,所述存储节点i在时刻t对数据资源j的需求度 res need i &RightArrow; j ( t ) = &omega; * res need i &RightArrow; j ( t - 1 ) + &Sigma; k = 0 m 1 / ne k , 其中ω是一个衰减因子,且ω<1;代表的是在这个时间点有m个需要数据资源j的子请求还未完成处理,nek代表分配这个子请求时拥有这个数据资源的物理连接存储节点数,同时存储节点统计系统中每一个时刻所有存储节点对数据资源j的需求度的平均值Tj,如果说明存储节点i急需数据资源j。
所述存储节点的工作效率的计算公式为:
Work _ effOfSN i = busy _ degree i * N | EAC set i | + | EW set i |
其中:Work_effofSNi代计算的是作为存储节点的工作效率,N代表节点总数,存储节点由一个四元组表示:{ai|Dset,LOAD,EWset,FACset},其中Dset代表存储节点ai所具有的的数据资源集合,LOAD代表存储节点ai存储空间大小,EWset代表与存储节点ai直接相连的物理连接存储节点集合,FACset代表与存储节点ai并非直接相连的虚拟连接存储节点集合;而每一个用户请求用一个二元组表示:{Reqp|{dj,pp},Hw},其中{dj,pp}代表一个子请求,该子请求需要数据资源dj以及处理空间pp,Hw代表该请求中子请求的先后关系。
所述控制节点的工作效率的计算公式为:
Work _ effOfCN i = NumOfReq i clock i * | EAC set i | N
其中:NumOfReqi代表的是请求总数,clocki代表控制节点i的存在时间。
所述储节点i与虚拟连接储节点q建立连接关系的方法为:存储节点i的虚拟连接存储节点q在被考察时刻t的得分为:
若得分最大,则建立储节点i与储节点q的连接关系。
所述储节点i与物理连接存储节点l取消连接关系的方法为:首先计算存储节点i的物理连接存储节点l在被考察时刻t的得分为:
score _ phy i &RightArrow; l ( t ) = &Sigma; k &Element; D set l res need i &RightArrow; k ( t ) ;
然后将上述代入存储节点i与物理连接存储节点l在时刻t取消连接的条件公式:
busy _ degree i busy _ degree i + busy _ degree l * score _ phy i &RightArrow; l ( t ) + busy _ degree l busy _ degree i + busy _ degree l * score _ phy l &RightArrow; i ( t ) < busy _ degree i busy _ degree i + busy _ degree l * avg _ score i &RightArrow; ne ( t ) + busy _ degree l busy _ degree i + busy _ degree l * avg _ score l &RightArrow; ne ( t )
其中 avg _ score i &RightArrow; ne ( t ) = &Sigma; d &Element; EW set i score _ phy i &RightArrow; d ( t ) | EW set i | , busy _ degree i busy _ degree i + busy _ degree l 代表i在与l交流中的重要程度,score_phyi→l(t)代表在时刻t存储节点i给存储节点l的评分,avg_scorei→ne(t)代表时刻t存储节点i的物理连接存储节点们评分的平均值。
为了更好的理解本发明,现对本发明的原理进行说明一下。
本发明系统中每一个存储节点可以由一个四元组表示:{ai|Dset,LOAD,EWset,EACset},其中Dset代表存储节点ai所具有的数据资源集合,LOAD代表存储节点ai的处理空间大小,存储节点在某个时间点所耗费的所有负载不能超过LOAD,EWset代表与存储节点ai直接相连的物理连接存储节点集合,FACset代表与存储节点ai并非直接相连的虚拟连接存储节点集合。而每一个用户请求p可以表示成一个二元组:{Reqp|{dj,pp},Hw},其中{dp,pp}代表一个子请求,该子请求需要数据资源dj以及处理空间pp,Hw代表该请求中子请求的先后关系,具体可以用树结构表示,在请求树中,只有父节点(请求)完成后才能继续完成子节点(请求)。示例图3是一个用户请求示意图,其中子请求1{d1,5}必须最先得到满足,处理该子请求时需要5个单位的处理空间,在子请求1处理完毕后,才能继续处理子请求2和3,如示例图3所示,其中的箭头代表了子请求的先后关系。
在系统中,存在两种关系,一种是物理连接关系,另一种是虚拟连接关系。物理连接关系的存储节点之间存在确实的连接,相互可以传递用户请求,是存储节点的邻接存储节点;而虚拟连接关系之间不存在实际连接,但是一个存储节点知道如何联系虚拟连接关系的存储节点。因为虚拟连接之间不存在实际连接,当一个存储节点考虑下一个子请求应该分配给哪一个邻接存储节点时,只能考虑与他是物理连接关系的存储节点。维持虚拟连接关系是为了将来做连接调整,虚拟连接列表中的虚拟连接都是连接调整的候选人。
如图4所示:用户发起请求,请求随机分配到一个存储节点;对于所有存储节点,如果当前任务列表不为空并且负载空闲足够组处理任务列表中的任务;如果当前任务列表为空则进行社交过程;对于所有存储节点,每个存储节点更新自己的资源需求表,如果有资源超过系统对某个数据资源的需求度,则说明需要调边:此时如果该存储节点认识控制节点,则把这个请求发给控制节点,请求中包含该存储节点所需要的数据资源,如果该存储节点不认识控制节点,则必须要自己进行连接调整。另一方面,每一个存储节点对于自己已有的物理连接进行考察决定是否需要继续保持连接。控制节点的任务就是帮忙调整连接,在收到请求后,根据请求内容给自己认识的存储节点进行评分,并推荐得分最高的存储节点给发出请求的存储节点进行连接。在一个时间点,存储节点和控制节点分别计算自己的工作效率,如果低于扮演当前角色的所有节点的工作效率的平均值,则在下一个时间步切换成另一个角色。
具体的,在系统初始时刻,所有存储节点只知道自己的邻接存储节点所拥有的数据资源和状态。当系统开始运行后,任一存储节点可能在任意时刻接收到用户请求,此时,任务列表中有请求的存储节点开始处理用户请求。用户请求按照先入先出顺序存储在存储节点的任务列表中,存储节点查看自己任务列表中第一个请求,确认该请求中目前顺序最优先的未完成的子请求自己是否能完成,如果当前子请求所需要的数据资源自己能处理并且当前的负载Loadnow<LOAD,LOAD代表存储节点ai的处理空间大小,Loadnow存储节节点当前负载,就加入处理队列立刻处理,否则等到下一时刻处理;当处理完当前的子请求,还需要负责该请求后续子请求的分配,以示例图3为例,假设当前子请求1被完成,子请求2和3被加入分配队列。以子请求2为例,如果当前存储节点拥有数据资源d3,那仍然由自己来处理;否则需要物理连接存储节点的帮助。每一个存储节点i记录自身的忙碌度busy_degreei=not_empty_clocki/worktirrei,其中not_empty_clocki代表存储节点i的任务列表不为空的时长,worktimei代表存储节点i在当前角色上存在的时长。如果有物理连接存储节点正好拥有数据资源d3就把子请求分配给它,如果有多个物理连接存储节点可以提供数据资源d3,选择一个忙碌度最低的物理连接存储节点;如果当前存储节点的物理连接存储节点没有可以提供数据资源d3的,当前存储节点随机选择一个物理连接存储节点将子请求2交付给它,希望这个存储节点可以找到合适人选处理子请求2。
同时,当前时刻任务队列为空的存储节点可以进行社交过程。这些存储节点随机选择一个物理连接存储节点或者虚拟连接存储节点,将该节点的物理连接存储节点和虚拟连接存储节点加入自己的虚拟连接关系列表。社交过程是为了选拔控制节点和控制节点进行连接调整做准备。
每一个存储节点在响应用户请求的同时,还要进行连接的调整和管理,这部分的工作也同样需要占据负载空间。如果某些存储节点上的响应请求过多,任务队列过长,存储节点没办法做到两边兼顾。优先调整连接会导致响应请求时间变长,用户体验变差;如果优先响应用户请求,忽视了自身连接的调整,可能反而会加长响应时间,仍然不能给用户一个满意的答复。如果将调整连接的工作交给那些负担不重的存储节点,让它们成为控制节点,引导两个合适的存储节点建立连接,就可以有效减轻忙碌的存储节点的工作负荷。
因此,这个分布式存储系统中存在两种角色:存储节点和控制节点。控制节点主要负责
响应用户请求,控制节点负责调整连接。初始阶段所有节点都是存储节点,在经过一段预设时间Tpre后,此时每个存储节点都有了一定的历史记录,按照如下公式计算作为当前角色(存储节点)的工作效率:
Work _ effOfSN i = busy _ degree i * N | EAC set i | + | EW set i |
Work_effofSNi代表作为存储节点的工作效率,N代表节点总数。从这个式子可以看出,一个存储节点处理请求响应的次数越少,认识的虚拟连接存储节点越多,作为存储节点的工作效率越小,当这个值低于所有存储节点的平均工作效率,说明当前的角色不适合存储节点i。如果此时存储节点的任务队列为空并且控制节点数低于预先设置好的控制节点数目(防止系统中的控制节点过多),那么存储节点在下一个时间点成为控制节点。
控制节点的主要任务是接受它的虚拟连接控制节点的帮调整连接请求,并利用自己丰富的人际关系帮发出请求的存储节点找到符合要求的存储节点,调整方式和存储节点调整连接的方式相同,只是控制节点是帮助存储节点分担调整连接的工作。当一个控制节点i工作一段时间Tpre后,控制节点也要计算自己作为控制节点的工作效率:
Work _ effOfCN i = NumOfReq i clock i * | EAC set i | N
与存储节点工作效率相似,但是NumOfReqi代表的是请求总数,clocki代表控制节点i的存在时间。当控制节点的工作效率低于所有控制节点工作效率的平均值时,控制节点切换回存储节点角色,以便存储节点中有更适合做控制节点的节点可以切换为控制节点。
每一个存储节点在处理用户请求的同时,拥有一张数据资源需求表,该表的条目数和该系统的数据资源总数目相同,并且时刻t存储节点i对数据资源j的需求度 res need i &RightArrow; j ( t ) = &omega; * res need i &RightArrow; j ( t - 1 ) + &Sigma; k = 0 m 1 / ne k , 其中ω是衰减因子(ω<1),代表的含义是随着时间流逝,以往的记录的重要程度越来越低,与现在时间越接近的记录的重要程度更高;代表的是在这个时间点有m个需要数据资源j的子请求还未完成处理,nek代表分配这个子请求时拥有这个数据资源的物理连接存储节点数,如此一来,如果存储节点i收到需要数据资源j的子请求次数越多(m越大),能处理需要数据资源i的物理连接存储节点越少,的值也越大,说明存储节点i对数据资源j的需求度越高。每一个时刻,统计系统中所有存储节点对数据资源j的需求度的平均值Tj,代表这个系统对数据资源j的需求度,如果说明存储节点i急需数据资源j。每一个时刻,每一个存储节点在自己的需求列表中记录下自己超出系统需求度的资源,作为调整连接关系时的依据。
记录完毕当前时刻急需的资源后,存储节点如果认识控制节点,则把该需求列表发给控制节点让控制节点处理。如果存储节点目前不认识控制节点,存储节点依靠自己的虚拟连接存储节点关系自主进行关系调整。
存储节点或者控制节点调整连接的机制都是相同的,但是控制节点认识的虚拟连接存储节点更多,能介绍更合适的人选。一个节点i的虚拟连接存储节点q在被考察时刻t的得分为:
这个公式表示,一个虚拟连接存储节点q拥有越多被需求的资源,被需求的资源的需求度越大,这个虚拟连接存储节点越空闲,q能帮上存储节点i的忙的概率也就越大,因此存储节点i应该与q建立连接关系。如果一次连接后存储节点的需求还没有全部被满足,则循环这个过程,直到所有需求被满足或者因为没有合适的虚拟连接存储节点可以连接为止。另一方面,对于存储节点来说,目前已经存在连接的物理连接存储节点,也必须给予适当的考察,因为随着用户请求的变化,有些物理连接存储节点已经没有必要再和它们保持直接连接。一个存储节点i的物理连接存储节点l在被考察时刻t的得分为:
score _ phy i &RightArrow; l ( t ) = &Sigma; k &Element; D set l res need i &RightArrow; k ( t )
由于一条连接是双向的,在考虑是否要取消连接的时候也要由双方决定。存储节点i与物理连接存储节点l在时刻t取消连接的条件为:
busy _ degree i busy _ degree i + busy _ degree l * score _ phy i &RightArrow; l ( t ) + busy _ degree l busy _ degree i + busy _ degree l * score _ phy l &RightArrow; i ( t ) < busy _ degree i busy _ degree i + busy _ degree l * avg _ score i &RightArrow; ne ( t ) + busy _ degree l busy _ degree i + busy _ degree l * avg _ score l &RightArrow; ne ( t )
其中 avg _ score i &RightArrow; ne ( t ) = &Sigma; d &Element; EW set i score _ phy i &RightArrow; d ( t ) | EW set i |
代表i在与l交流中的重要程度,score_phyi→l(t)代表在时刻t存储节点i给存储节点l的评分,avg-scorei→ne(t)代表时刻t存储节点i的物理连接存储节点们评分的平均值,这个式子的意义就是如果存储节点i与存储节点l之间的相互需求程度达不到它们两个圈子的平均值,可以取消连接。取消连接对双方来说,可以减少维持连接的负担,并且使存储节点有新的空间去容纳新的连接。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于节点角色切换机制的自组织分布式存储系统,包括一个以上的节点,其特征在于:每一个节点根据其扮演角色的工作效率自主切换扮演存储节点和控制节点这两种角色。
2.根据权利要求1所述的基于节点角色切换机制的自组织分布式存储系统,其特征在于:所述存储节点根据用户发出请求的历史记录计算数据资源的需求度,以此为依据来调整自己的连接情况或者请求控制节点帮忙介绍合适存储节点来改变拓扑结构,同时计算自身作为存储节点的工作效率,如果自身工作效率低于当前所有存储节点的平均工作效率,且此时所述存储节点的任务队列为空并且控制节点数低于预先设置好的控制节点数目,所述存储节点切换成控制节点的角色;所述控制节点负责接收存储节点的请求来调整存储节点之间的拓扑结构,同时也计算作为自身控制节点的工作效率,如果自身工作效率低于当前所有控制节点的平均工作效率,控制节点切换成存储节点的角色。
3.根据权利要求2所述的基于节点角色切换机制的自组织分布式存储系统,其特征在于:所述存储节点、控制节点的任务队列中的请求按照先进先出顺序排列,如果存储节点拥有当前最优先的请求的子请求所需要的数据资源且Loadnow<LOAD就自己处理,否则将该子请求交给能处理的物理连接存储节点,每一个存储节点i记录自身的忙碌度busy_degreei=not_empty_clocki/worktimei,其中,LOAD代表存储节点的处理空间大小,Loadnow存储节节点当前负载,not_empty_clocki代表存储节点i的任务列表不为空的时长,worktimei代表存储节点i在当前角色上存在的时长,传递子请求时挑选拥有子请求所需求的资源的忙碌度最低的物理连接存储节点;
所述任务队列为空的存储节点随机选择一个物理连接存储节点,并将该物理连接存储节点的物理连接存储节点编号和虚拟连接存储节点编号加入自己的虚拟连接关系列表。
4.根据权利要求3所述的基于节点角色切换机制的自组织分布式存储系统,其特征在于:所述子请求的先后关系用树结构表示,如果存储节点i与存储节点l之间的相互需求程度达不到它们两个圈子的平均值,取消他们之间的连接。
5.根据权利要求1所述的一种基于节点角色切换机制的自组织分布式存储方法,其特征在于:存储节点在收到某个用户请求后,首先查看自己拥有的数据资源表,并完成目前自己可以处理的子请求;查看该子请求下一步所需求的数据资源,将相应的子请求交给有相应数据资源的邻接存储节点,并且记录存储节点i对某一种数据资源j的需求度,一旦对某种数据资源j的需求度超过了某个阈值Tj,该存储节点如果与控制节点没有连接,会自己在虚拟连接存储节点中寻找拥有这种数据资源的存储节点并与其建立连接;如果该存储节点与控制节点有连接,则将该资源请求递交给控制节点,让控制节点帮忙介绍合适的存储节点建立连接;同时所述存储节点还必须考察自己现有的邻接存储节点,如果某一对存储节点发现它们彼此对对方的需求度之和低于彼此所处圈子的平均需求度之和,那么这条连接被取消;所述控制节点负责接收存储节点的请求来调整存储节点之间的拓扑结构,同时也计算自身作为控制节点的工作效率,如果自身工作效率低于当前所有控制节点的平均工作效率,控制节点切换成存储节点的角色。
6.根据权利要求5所述的基于节点角色切换机制的自组织分布式存储方法,其特征在于:所述存储节点记录自己对每一种数据资源的需求度,所述存储节点i在时刻t对数据资源j的需求度 res need i &RightArrow; j ( t ) = &omega; * res need i &RightArrow; j ( t - 1 ) + &Sigma; k = 0 m 1 / ne k , 其中ω是一个衰减因子,且ω<1;代表的是在这个时间点有m个需要数据资源j的子请求还未完成处理,nek代表分配这个子请求时拥有这个数据资源的物理连接存储节点数,同时存储节点统计系统中每一个时刻所有存储节点对数据资源j的需求度的平均值Tj,如果说明存储节点i急需数据资源j。
7.根据权利要求6所述的基于节点角色切换机制的自组织分布式存储方法,其特征在于:所述存储节点的工作效率的计算公式为:
Work _ effOfSN i = busy _ degree i * N | EAC set i | + | EW set i |
其中:Work_effofSNi计算的是作为存储节点的工作效率,N代表节点总数,存储节点由一个四元组表示:{ai|Dset,LOAD,EWset,FACset},其中Dset代表存储节点ai所具有的的数据资源集合,LOAD代表存储节点ai存储空间大小,EWset代表与存储节点ai直接相连的物理连接存储节点集合,FACset代表与存储节点ai并非直接相连的虚拟连接存储节点集合;而每一个用户请求用一个二元组表示:{Reqp|{dj,pp},Hw},其中{dj,pp}代表一个子请求,该子请求需要数据资源dj以及处理空间pp,Hw代表该请求中子请求的先后关系。
8.根据权利要求7所述的基于节点角色切换机制的自组织分布式存储方法,其特征在于:所述控制节点的工作效率的计算公式为:
Work _ effOfCN i = NumOfReq i clock i * | EAC set i | N
其中:NumOfReqi代表的是请求总数,clocki代表控制节点i的存在时间。
9.根据权利要求8所述的基于节点角色切换机制的自组织分布式存储方法,其特征在于:所述控制节点根据存储节点的请求来调整存储节点之间的拓扑结构方法为:控制节点根据存储节点的请求为依据给自己掌控的存储节点打分,根据得分高低推荐合适的存储节点给提出请求的存储节点进行连接;所述储节点i与虚拟连接储节点q建立连接关系的方法为:存储节点i的虚拟连接存储节点q在被考察时刻t的得分为:
若得分最大,则建立储节点i与储节点q的连接关系。
10.根据权利要求9所述的基于节点角色切换机制的自组织分布式存储方法,其特征在于:所述储节点i与物理连接存储节点l取消连接关系的方法为:首先计算存储节点i的物理连接存储节点l在被考察时刻t的得分为:
score _ phy i &RightArrow; l ( t ) = &Sigma; k &Element; D set l res need i &RightArrow; k ( t )
然后将上述代入存储节点i与物理连接存储节点l在时刻t取消连接的条件公式:
busy _ degree i busy _ degree i + busy _ degree l * score _ phy i &RightArrow; l ( t ) + busy _ degree l busy _ degree i + busy _ degree l * score _ phy l &RightArrow; i ( t ) < busy _ degree i busy _ degree i + busy _ degree l * avg _ score i &RightArrow; ne ( t ) + busy _ degree l busy _ degree i + busy _ degree l * avg _ score l &RightArrow; ne ( t ) ,其中 avg _ score i &RightArrow; ne ( t ) = &Sigma; d &Element; EW set i score _ phy i &RightArrow; d ( t ) | EW set i | , busy _ degree i busy _ degree i + busy _ degree l 代表i在与l交流中的重要程度,score_phyi→l(t)代表在时刻t存储节点i给存储节点l的评分,avg_scorei→ne(t)代表时刻t存储节点i的物理连接存储节点们评分的平均值。
CN201410288643.0A 2014-06-24 2014-06-24 一种基于节点角色切换机制的自组织分布式存储系统及其方法 Active CN104049916B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410288643.0A CN104049916B (zh) 2014-06-24 2014-06-24 一种基于节点角色切换机制的自组织分布式存储系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410288643.0A CN104049916B (zh) 2014-06-24 2014-06-24 一种基于节点角色切换机制的自组织分布式存储系统及其方法

Publications (2)

Publication Number Publication Date
CN104049916A true CN104049916A (zh) 2014-09-17
CN104049916B CN104049916B (zh) 2017-08-04

Family

ID=51502848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410288643.0A Active CN104049916B (zh) 2014-06-24 2014-06-24 一种基于节点角色切换机制的自组织分布式存储系统及其方法

Country Status (1)

Country Link
CN (1) CN104049916B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104391930A (zh) * 2014-11-21 2015-03-04 用友软件股份有限公司 分布式文件存储装置和方法
CN107491265A (zh) * 2016-06-12 2017-12-19 杭州海康威视数字技术股份有限公司 分配网际协议ip磁盘的方法及装置
CN110162270A (zh) * 2019-04-29 2019-08-23 平安国际智慧城市科技股份有限公司 基于分布式存储系统的数据存储方法、存储节点及介质
CN112055029A (zh) * 2020-09-16 2020-12-08 全球能源互联网研究院有限公司 零信任电力物联网设备和用户实时信任度评估方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117430A (ja) * 1997-06-16 1999-01-12 Hitachi Ltd 並列処理システムバックアップ方式
US20020083195A1 (en) * 2000-12-22 2002-06-27 Beshai Maged E. Multi-channel sharing in a high-capacity network
US20090238182A1 (en) * 2008-03-24 2009-09-24 Brother Kogyo Kabushiki Kaisha Tree-type broadcast system, method of instructing mode switch, broadcast device, and broadcast process program
CN101860574A (zh) * 2010-07-02 2010-10-13 中国人民解放军国防科学技术大学 P2p内存资源共享网络中基于信誉的服务匹配方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117430A (ja) * 1997-06-16 1999-01-12 Hitachi Ltd 並列処理システムバックアップ方式
US20020083195A1 (en) * 2000-12-22 2002-06-27 Beshai Maged E. Multi-channel sharing in a high-capacity network
US20090238182A1 (en) * 2008-03-24 2009-09-24 Brother Kogyo Kabushiki Kaisha Tree-type broadcast system, method of instructing mode switch, broadcast device, and broadcast process program
CN101860574A (zh) * 2010-07-02 2010-10-13 中国人民解放军国防科学技术大学 P2p内存资源共享网络中基于信誉的服务匹配方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104391930A (zh) * 2014-11-21 2015-03-04 用友软件股份有限公司 分布式文件存储装置和方法
CN107491265A (zh) * 2016-06-12 2017-12-19 杭州海康威视数字技术股份有限公司 分配网际协议ip磁盘的方法及装置
CN107491265B (zh) * 2016-06-12 2021-05-25 杭州海康威视数字技术股份有限公司 分配网际协议ip磁盘的方法及装置
CN110162270A (zh) * 2019-04-29 2019-08-23 平安国际智慧城市科技股份有限公司 基于分布式存储系统的数据存储方法、存储节点及介质
CN112055029A (zh) * 2020-09-16 2020-12-08 全球能源互联网研究院有限公司 零信任电力物联网设备和用户实时信任度评估方法

Also Published As

Publication number Publication date
CN104049916B (zh) 2017-08-04

Similar Documents

Publication Publication Date Title
US9031692B2 (en) Cloud robot system and method of integrating the same
JP5320802B2 (ja) 電力系統の制御システムおよび制御方法
CN104049916A (zh) 一种基于节点角色切换机制的自组织分布式存储系统及其方法
CN111600967B (zh) 一种基于访问压力的区块链节点间负载均衡系统
CN102546226B (zh) 一种基于多节点提供网络服务的系统及方法
CN106304230B (zh) 基于即时路由的无线自组网方法及装置
CN109951537A (zh) 一种面向区块链的负载均衡分发方法
CN114330722B (zh) 推理实现方法、网络、电子设备及存储介质
CN108605017A (zh) 查询计划和操作感知通信缓冲区管理
CN104618466A (zh) 基于消息传递的负载均衡和过负荷控制系统及其控制方法
CN104202424A (zh) 一种使用软件架构扩展缓存的方法
CN105162623A (zh) 一种云处理方法及云服务器
CN107105049A (zh) 数据迁移方法和装置
CN105245592A (zh) 基于相近缓存协作的移动网络基站缓存内容放置方法
CN106210123A (zh) 一个多节点的软件定义网络控制器系统
CN109167737A (zh) 融合数据缩减与动态优先权队列的can调度方法
CN104243473B (zh) 一种数据传输的方法以及装置
CN106776014A (zh) 异构计算中的并行加速方法及系统
WO2024066626A1 (zh) 实时音视频网络的路由规划方法及装置
WO2024092993A1 (zh) 服务功能链利润最大化映射方法和系统
CN103647796A (zh) 服务节点注册方法
CN205812076U (zh) 一种计算机信息网络工程系统
US11381642B2 (en) Distributed storage system suitable for sensor data
CN108616569A (zh) 一种面向分布式计算应用的光多播请求调度方法
CN106028415B (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
GR01 Patent grant
GR01 Patent grant