一种云存储系统中的临界资源管理方法和装置的制造方法_2

文档序号:8380789阅读:来源:国知局
是否建立成功,如果是,则执行步骤32,否则,执行步骤36。
[0050]假设默认管理节点是正常的。
[0051]步骤32:管理节点设置内存屏障,并确定是否设置成功,如果是,则执行步骤33,否则,执行步骤36。
[0052]步骤33:管理节点锁定主板总线,并确定是否锁定成功,如果是,则执行步骤34,否则,执行步骤36。
[0053]步骤34:管理节点将临界资源I对应的标志位上的值设置为0,设置成功,通知进程X,之后执行步骤35。
[0054]步骤35:进程X断开所述会话连接,结束处理。
[0055]步骤36:进程X断开所述会话连接,并可再次进行重试。
[0056]所述重试即指重复图3所示流程。
[0057]需要说明的是,在实际应用中,管理节点的个数为M个,M为正整数,即管理节点的个数可以为I个,也可以为多个,视实际需要而定。
[0058]当管理节点的个数为多个时,各管理节点之间可通过paxos算法保持一致性,具体实现为现有技术。对于每个进程来说,其不会关注有多少个管理节点,只会关注发送了请求后,是否处理成功等。
[0059]另外,管理节点可记录下每次针对临界资源的申请及释放等的操作流水号,以便云存储系统打快照,进行系统整体回滚等,并可相应地生成日志,以便进行人工定位等。
[0060]图4为本发明云存储系统中的临界资源管理装置实施例的组成结构示意图。如图4所示,包括:第一处理模块和第二处理模块;
[0061]第一处理模块,用于当接收到任一进程X发送来的占用任一临界资源y的请求时,利用预定值对第二处理模块中保存的、临界资源I对应的标志位上的值进行置换;如果置换出来的值与预定值相同,则确定临界资源y已经被占用,本次申请失败,并通知进程X,否贝U,确定临界资源y未被占用,本次申请成功,并通知进程X。
[0062]其中,第一处理模块可进一步用于,接收进程X发送来的释放临界资源y的请求,将第二处理模块中保存的、临界资源y对应的标志位上的值设置为进行置换之前的值。
[0063]第一处理模块还可进一步用于,在利用预定值对临界资源y对应的标志位上的值进行置换之前,设置内存屏障,设置成功后,锁定主板总线,锁定成功后,利用预定值对临界资源I对应的标志位上的值进行置换;
[0064]第一处理模块还可进一步用于,在将临界资源y对应的标志位上的值设置为进行置换之前的值之前,设置内存屏障,设置成功后,锁定主板总线,锁定成功后,将临界资源y对应的标志位上的值设置为进行置换之前的值。
[0065]较佳地,所述预定值为I,所述置换出来的值为I或O。
[0066]图4所示装置实施例的具体工作流程请参照前述方法实施例以及较佳实施例中的相应说明,此处不再赘述。
[0067]总之,本发明所述方案中提供了一种简单的、无锁的临界资源申请及释放方式,从而降低了方案的实现复杂度,并减少了时间消耗;以临界资源的申请为例,按照现有方式,需要消耗的时间是毫秒级的甚至更长,而采用本发明所述方案后,消耗的时间通常在纳秒级到微秒级。
[0068]另外,本发明所述方案中无需设置等待队列,各进程处于自由竞争状态,从而避免了出现惊群现象,进而提高了系统性能的稳定性。
[0069]另外,在实际应用中,进程之间可能会出现死锁现象,具体来说,如果两个进程同时占有对方需要的临界资源并同时请求对方占用的临界资源,而它们在得到请求的临界资源之前未释放所占有的临界资源,那么就会导致死锁现象的发生;按照现有方式,当进程之间出现死锁现象时,必须由第三方来通知到一个持锁进程(即占有临界资源的进程)进行解锁,而采用本发明所述方案后,当进程之间出现死锁现象时,可利用第三方直接进行解除死锁操作,即第三方可直接对相应的临界资源进行释放,从实现上来说更为简单方便;比如,第三方可直接向管理节点发起释放相应的临界资源的请求,相应地,管理节点可依次进行如下处理:设置内存屏障、锁定主板总线、将相应的临界资源对应的标志位上的值设置为O等,所述第三方可以是指除死锁的两个进程以外的一个进程。
[0070]再有,按照现有方式,可能会出现活锁现象,即等待队列中的某一进程一直未申请到所需的临界资源,从而导致该进程的任务一直被推迟,无法得到处理;而采用本发明所述方案后,由于不存在等待队列,因此避免了活锁现象的出现。
[0071]再有,按照现有方式,一个进程一旦加入到等待队列中后,在申请到所需的临界资源之前,只能一直处于等待状态,而采用本方明所述方案后,每个进程均处于自由竞争状态,一旦申请失败,可根据自身情况灵活选择后续处理方式,即可选择继续进行申请,也可选择先进行其它处理,待其它处理完成后,再进行申请等。
[0072]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种云存储系统中的临界资源管理方法,其特征在于,包括: 当任一进程X需要申请占用任一临界资源I时,与管理节点之间建立会话连接,建立成功后,向所述管理节点发起占用所述临界资源I的请求; 所述管理节点利用预定值对所保存的所述临界资源y对应的标志位上的值进行置换;如果置换出来的值与所述预定值相同,则确定所述临界资源y已经被占用,本次申请失败,并通知所述进程X,否则,确定所述临界资源I未被占用,本次申请成功,并通知所述进程X。
2.根据权利要求1所述的方法,其特征在于, 该方法进一步包括: 如果本次申请成功,则所述进程X断开所述会话连接,并利用申请到的所述临界资源I进行相应处理; 如果本次申请失败,则所述进程X断开所述会话连接,并选择再次进行申请或先进行其它处理。
3.根据权利要求2所述的方法,其特征在于, 该方法进一步包括: 当所述进程X需要释放所述临界资源I时,与所述管理节点之间建立会话连接,建立成功后,向所述管理节点发起释放所述临界资源I的请求; 所述管理节点将所述临界资源y对应的标志位上的值设置为进行置换之前的值。
4.根据权利要求3所述的方法,其特征在于, 所述与所述管理节点之间建立会话连接之前,进一步包括: 所述进程X确定所述管理节点是否正常,如果是,则与所述管理节点之间建立会话连接。
5.根据权利要求3所述的方法,其特征在于, 所述管理节点利用预定值对所保存的所述临界资源y对应的标志位上的值进行置换之前,进一步包括: 所述管理节点设置内存屏障,设置成功后,锁定主板总线,锁定成功后,利用预定值对所保存的所述临界资源y对应的标志位上的值进行置换; 所述管理节点将所述临界资源y对应的标志位上的值设置为进行置换之前的值之前,进一步包括: 所述管理节点设置内存屏障,设置成功后,锁定主板总线,锁定成功后,将所述临界资源y对应的标志位上的值设置为进行置换之前的值。
6.根据权利要求1?5中任一项所述的方法,其特征在于, 所述管理节点的个数为M个,M为正整数; 当所述M的取值大于I时,各管理节点之间通过paxos算法保持一致性。
7.根据权利要求1?5中任一项所述的方法,其特征在于, 该方法进一步包括:当进程之间出现死锁现象时,利用第三方直接进行解除死锁操作。
8.根据权利要求1?5中任一项所述的方法,其特征在于, 所述预定值为1,所述置换出来的值为I或O。
9.一种云存储系统中的临界资源管理装置,其特征在于,包括:第一处理模块和第二处理模块; 所述第一处理模块,用于当接收到任一进程X发送来的占用任一临界资源I的请求时,利用预定值对所述第二处理模块中保存的、所述临界资源y对应的标志位上的值进行置换;如果置换出来的值与所述预定值相同,则确定所述临界资源y已经被占用,本次申请失败,并通知所述进程X,否则,确定所述临界资源I未被占用,本次申请成功,并通知所述进程X。
10.根据权利要求9所述的装置,其特征在于, 所述第一处理模块进一步用于,接收所述进程X发送来的释放所述临界资源y的请求,将所述第二处理模块中保存的、所述临界资源y对应的标志位上的值设置为进行置换之前的值。
11.根据权利要求10所述的装置,其特征在于, 所述第一处理模块进一步用于,在利用预定值对所述临界资源y对应的标志位上的值进行置换之前,设置内存屏障,设置成功后,锁定主板总线,锁定成功后,利用预定值对所述临界资源y对应的标志位上的值进行置换; 所述第一处理模块进一步用于,在将所述临界资源y对应的标志位上的值设置为进行置换之前的值之前,设置内存屏障,设置成功后,锁定主板总线,锁定成功后,将所述临界资源y对应的标志位上的值设置为进行置换之前的值。
12.根据权利要求9?11中任一项所述的装置,其特征在于, 所述预定值为1,所述置换出来的值为I或O。
【专利摘要】本发明公开了一种云存储系统中的临界资源管理方法和装置:当任一进程x需要申请占用任一临界资源y时,与管理节点之间建立会话连接,建立成功后,向管理节点发起占用临界资源y的请求;管理节点利用预定值,对所保存的临界资源y对应的标志位上的值进行置换;如果置换出来的值与预定值相同,则确定临界资源y已经被占用,本次申请失败,并通知进程x,否则,确定临界资源y未被占用,本次申请成功,并通知进程x。应用本发明所述方案,能够降低实现复杂度,并能够提高系统性能的稳定性等。
【IPC分类】H04L29-08, G06F9-46
【公开号】CN104699527
【申请号】CN201310672226
【发明人】陈翟翟, 闫春, 汪渭春
【申请人】杭州海康威视系统技术有限公司
【公开日】2015年6月10日
【申请日】2013年12月10日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1