一种处理分布式系统中重叠节点事件的方法与装置制造方法及图纸

技术编号:14786437 阅读:105 留言:0更新日期:2017-03-11 01:28
本发明专利技术提供了一种处理重叠节点事件的方法,所述方法应用在分布式系统中,所述方法包括:目标节点接收第一节点事件,生成第一节点事件任务;确定所述第一节点事件任务与所述目标节点的分布式锁管理DLM中的运行队列中的节点事件任务不冲突,并且所述第一节点事件任务与所述分布式锁管理DLM中的冲突队列中的节点事件任务也不冲突,将所述第一节点事件任务放入到所述运行队列中,其中,所述运行队列用于存放正在执行的一个或多个节点事件任务,所述冲突队列用于存放等待执行的节点事件任务;执行所述运行队列中的所述第一节点事件任务。

【技术实现步骤摘要】

本专利技术涉及电子
,尤其涉及一种处理分布式系统中重叠节点事件的方法与装置
技术介绍
分布式锁(DistributedLock)是控制分布式系统之间同步访问共享资源的一种方式;分布式锁管理(DistributedLockManager,简称DLM)运行在分布式系统中各个节点上,控制各资源在节点上的分布,提供资源访问权限(即锁权限)的授予策略以及管理共享资源的访问权限。因为分布式系统中有多个节点,因此可能会发生多个节点事件,并且节点事件相互重叠,现有处理重叠节点事件的方案为,分布式锁管理(DistributedLockManager,简称DLM)采用先进先出队列(FIFO)接收节点事件,然后根据节点事件发生的时间先后顺序从FIFO取出节点事件,逐一串行处理。例如,T1时刻,节点2故障,FIFO接收节点2故障事件,当前没有节点事件处理,于是启动事件处理线程,处理节点2故障事件;T2时刻,节点6上线,FIFO接收节点6上线事件,此时,还正在处理节点2故障事件,节点6上线事件处于排队状态;当节点2故障事件处理完毕后,发现FIFO非空,从FIFO中取出节点6上线事件进行处理。现有技术的方案虽然保证了重叠节点事件的有序处理,当分布式节点系统发生较多的重叠节点事件时,串行处理所有的节点事件需要耗费较长的时间,导致DLM恢复正常工作的时间也较长,显著影响分布式系统的运行效率。
技术实现思路
本专利技术实施例提供了一种处理分布式系统中重叠节点事件的方法与装置,当分布式系统中发生的重叠节点事件时,能够同时处理多个节点事件,从而节省了处理重叠节点事件的时间,使DLM能较快地恢复正常工作,减少了对分布式系统运行效率的影响。重叠节点事件之间的关系有两种情况,一种情况是一个节点事件不影响另一个节点事件的处理,即不存在冲突;另一种情况是一个节点事件影响另一个节点事件的处理,即存在冲突。现有技术中处理重叠节点事件的方案不对上述情况进行区分,只是简单地将所有的节点事件串行处理,从而导致重叠节点事件的处理时间较长,影响分布式系统运行的效率。而本专利技术实施例提供的处理重叠节点事件的方法对重叠的节点事件分情况处理,不冲突的节点事件任务同时处理,冲突的节点事件才串行处理,从而节省了重叠节点事件的处理时间,减少了分布式系统运行效率的影响。第一方法,提供了一种处理重叠节点事件的方法,该方法应用在分布式系统中,该方法包括:首先目标节点接收第一节点事件,生成第一节点事件任务;其次确定第一节点事件任务与该目标节点的分布式锁管理DLM中的运行队列中的节点事件任务不冲突,并且第一节点事件任务与该分布式锁管理DLM中的冲突队列中的节点事件任务也不冲突,再将第一节点事件任务放入到运行队列中,其中,上述运行队列用于存放正在执行的一个或多个节点事件任务,上述冲突队列用于存放等待执行的节点事件任务;然后执行所述运行队列中的所述第一节点事件任务。结合第一方面,在第一方面的第一种可能的实现方式中,运行队列中存放有第二节点事件任务,该方法还包括:确定第一节点事件任务与第二节点事件任务冲突,并且第一节点事件任务阻塞第二节点事件任务执行,则停止执行第二节点事件任务;并将第二节点事件任务放入到冲突队列中。该实现方式实现了DLM停止执行先发生的节点事件任务,从而保证了当后发生的节点事件任务阻塞先发生的节点事件任务执行时,节点事件任务的有序执行。并且该实现方式采用了运行队列管理正在执行的节点事件任务,当需要改变某个正在执行的节点事件任务状态时,DLM可快速找到该节点事件任务,并对其进行相应处理,从而提高了DLM处理节点事件的效率。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,上述方法还包括:当第一节点事件任务执行完毕时,将所述第二节点事件任务放入到运行队列;执行第二节点事件任务。该实现方式实现了当阻塞先发生的节点事件任务执行的后发生节点事件任务执行完毕时,DLM执行被阻塞的节点事件任务,从而使得先发生的节点事件得到快速处理。结合第一方面,在第一方面的第三种可能的实现方式中,上述方法还包括:当第一节点事件任务执行完毕时,确定冲突队列中是否存在与第一事件任务冲突的第三节点事件任务;如果存在所述第三节点事件任务,则确定运行队列和冲突队列中是否存在与所述第三节点事件任务冲突的第四节点事件任务;如果不存在所述第四节点事件任务,将所述第三节点事件任务放入到运行队列;执行所述第三节点事件任务。该实现方式实现了DLM有序处理冲突的重叠节点事件任务。结合第一方面,在第一方面的第四种可能的实现方式中,上述确定第一节点事件任务与该目标节点的分布式锁管理DLM中的运行队列中的节点事件任务不冲突,并且第一节点事件任务与该分布式锁管理DLM中的冲突队列中的节点事件任务也不冲突包括:判断所述第一节点事件任务与所述运行队列中的节点事件任务不存在执行顺序,并且所述第一节点事件任务与所述冲突队列中的节点事件任务也不存在执行顺序。在该实现方法中,重叠节点事件任务间不存在冲突,包括重叠节点事件任务之间不存在执行顺序,从而使得不存在执行顺序的重叠节点事件任务能够同时执行,节省了DLM处理重叠节点事件的所耗事件,提高了分布式系统的运行效率。第二方面,提供了一种处理重叠节点事件的装置,该装置包括:接收单元,用于目标节点接收第一事件和生成第一事件任务;放入单元,确定第一节点事件任务与该目标节点的分布式锁管理DLM中的运行队列中的节点事件任务不冲突,并且第一节点事件任务与分布式锁管理DLM中的冲突队列中的节点事件任务也不冲突,该放入单元用于将第一节点事件任务放入到上述运行队列中,其中,上述运行队列用于存放正在执行的一个或多个节点事件任务,上述冲突队列用于存放等待执行的节点事件任务;执行单元,用于执行上述运行队列中的第一事件任务。结合第二方面,在第二方面的第一种可能的实现方式中,运行队列中存放有第二节点事件任务,上述装置还包括:停止单元,确定第一节点事件任务与第二节点事件任务冲突,并且第一节点事件任务阻塞第二节点事件任务执行,该停止单元用于停止执行所述第二节点事件。该实现方式实现了DLM停止执行先发生的节点事件任务,从而保证了当后发生的节点事件任务阻塞先发生的节点事件任务执行时,节点事件任务的有序执行。并且该实现方式采用了运行队列管理正在执行的节点事件任务,当需要改变某个正在执行的节点事件任务状态时,DLM可快速找到该节点事件任务,并对其进行相应处理,从而提高了DLM处理节点事件的效率。结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述装置还包括:判断单元,用于判断第一节点事件任务与运行队列中的节点事件任务不存在执行顺序,并且第一节点事件任务与冲突队列中的节点事件任务也不存在执行顺序。在该实现方法中,判断单元能够判断重叠节点事件任务是否存在执行顺序,当重叠节点事件任务间不存在执行顺序时,则重叠节点事件间不存在冲突,从而保证了使得不存在执行顺序的重叠节点事件任务能够同时执行,节省了DLM处理重叠节点事件的所耗时间,提高了分布式系统的运行效率。实施例提供的处理重叠节点事件的方法和装置采用运行队列和冲突队列两个队列来管理节点事件任务,不冲突的节点事件任务放入运行队列中执行,而无须本文档来自技高网...
一种处理分布式系统中重叠节点事件的方法与装置

【技术保护点】
一种处理重叠节点事件的方法,所述方法应用在分布式系统中,其特征在于,所述方法包括:目标节点接收第一节点事件,生成第一节点事件任务;确定所述第一节点事件任务与所述目标节点的分布式锁管理DLM中的运行队列中的节点事件任务不冲突,并且所述第一节点事件任务与所述分布式锁管理DLM中的冲突队列中的节点事件任务也不冲突,将所述第一节点事件任务放入到所述运行队列中,其中,所述运行队列用于存放正在执行的一个或多个节点事件任务,所述冲突队列用于存放等待执行的节点事件任务;执行所述运行队列中的所述第一节点事件任务。

【技术特征摘要】
1.一种处理重叠节点事件的方法,所述方法应用在分布式系统中,其特征在于,所述方法包括:目标节点接收第一节点事件,生成第一节点事件任务;确定所述第一节点事件任务与所述目标节点的分布式锁管理DLM中的运行队列中的节点事件任务不冲突,并且所述第一节点事件任务与所述分布式锁管理DLM中的冲突队列中的节点事件任务也不冲突,将所述第一节点事件任务放入到所述运行队列中,其中,所述运行队列用于存放正在执行的一个或多个节点事件任务,所述冲突队列用于存放等待执行的节点事件任务;执行所述运行队列中的所述第一节点事件任务。2.根据权利要求1所述的方法,其特征在于,所述运行队列中存放有第二节点事件任务,所述方法还包括:确定所述第一节点事件任务与所述第二节点事件任务冲突,并且所述第一节点事件任务阻塞所述第二节点事件任务执行,停止执行所述第二节点事件任务;将所述第二节点事件任务放入到所述冲突队列中。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:当所述第一节点事件任务执行完毕时,将所述第二节点事件任务放入到所述运行队列;执行所述第二节点事件任务。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述第一节点事件任务执行完毕时,确定所述冲突队列中是否存在与所述第一事件任务冲突的第三节点事件任务;如果存在所述第三节点事件任务,则确定所述运行队列和所述冲突队列中是否存在与所述第三节点事件任务冲突的第四节点事件任务;如果不存在所述第四节点事件任务,将所述第三节点事件任务放入到所述运行队列;执行所述第三节点事件任务。5.根据权利要求1所...

【专利技术属性】
技术研发人员:郑阳平
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1