【技术实现步骤摘要】
一种事件通知方法、监听器的处理方法及装置
本申请涉及计算机
,尤其涉及一种事件通知方法、监听器的处理方法及装置。
技术介绍
通知(Notify)是一种文件系统的变化通知机制。通过该机制,如文件增加、删除等事件可以立刻让用户态得知。服务器信息块协议版本2(英文:ServerMessageBlockProtocolVersion2,简称:SMB2.0)中定义了客户端(英文:ClientAgent,简称:CA)和文件服务器之间监听请求和响应消息。CA发送监听消息去修改目录/文件的监听类型,同时可以设置多个监听掩码。当文件服务器中被监控的目录/文件有修改操作的时候,并且和监听掩码匹配,服务器会把操作事件通过监听响应消息发送给CA。现有技术提供的创建监听器的流程请参考图1a所示。该创建流程包括:用户通过协议发送增加监听器(watch)的消息给CA,该消息中携带监听的目录/文件。CA获取监听的目录/文件的标识(id)。CA向元数据服务器(英文:MetadataService,简称:MDS)发送增加监听器的消息,该消息中除了携带监听的目录/文件的标识之外,还携带CA的标识以及监听掩码(mask)。其中,监听掩码表示监听的事件类型,例如删除事件、创建事件的。MDS在该监听的目录/文件的节点(Inode)信息中创建监听器。然后MDS向CA返回创建成功的消息。CA再回调协议接口向用户返回创建成功的消息。其中,在图1a中,CA(1,2,3)表示多个CA的处理流程相同。接下来请参考图1b所示,为现有技术中监听事件通知的流程示意图。具体来说,当采用如图1a所示的方法在MDS注 ...
【技术保护点】
一种事件通知方法,其特征在于,包括:当客户端CA进行使得目录/文件发生变化的操作时,确定所述目录/文件的全路径上的各级目录的节点信息vnode是有效的;所述CA完成所述操作后,确定所述各级目录的vnode中监听器计数不为零的vnode所对应的第一目录;所述CA根据所述第一目录的标识在多个通知服务器NS中确定出所述第一目录的监听器所注册的NS;其中,所述多个NS的数量与所有CA的数量相同;所述所注册的NS上保存有所述第一目录的监听器的属性信息,所述属性信息包括所述第一目录的标识、监听掩码与注册所述监听器的CA的标识;所述监听掩码用于表示监听的事件类型;所述CA向所述所注册的NS发送事件通知,所述事件通知包括所述第一目录的标识、监听掩码以及与所述操作对应的事件内容;以使所述所注册的NS能够在所述事件通知中的监听掩码和所述属性信息中的监听掩码匹配时,向所述注册所述监听器的CA发送事件通知。
【技术特征摘要】
1.一种事件通知方法,其特征在于,包括:当客户端CA进行使得目录/文件发生变化的操作时,确定所述目录/文件的全路径上的各级目录的节点信息vnode是有效的;所述CA完成所述操作后,确定所述各级目录的vnode中监听器计数不为零的vnode所对应的第一目录,其中,目录的vnode中监听器计数不为零表示存在CA注册所述目录的监听器;所述CA根据所述第一目录的标识在多个通知服务器NS中确定出所述第一目录的监听器所注册的NS;其中,所述多个NS的数量与所有CA的数量相同;所述所注册的NS上保存有所述第一目录的监听器的属性信息,所述属性信息包括所述第一目录的标识、监听掩码与注册所述监听器的CA的标识;所述监听掩码用于表示监听的事件类型;所述CA向所述所注册的NS发送事件通知,所述事件通知包括所述第一目录的标识、监听掩码以及与所述操作对应的事件内容;以使所述所注册的NS能够在所述事件通知中的监听掩码和所述属性信息中的监听掩码匹配时,向所述注册所述监听器的CA发送事件通知。2.如权利要求1所述的方法,其特征在于,确定所述目录/文件的全路径上的各级目录的节点信息vnode是有效的,包括:当所述各级目录中的目录存在vnode时,查看所述vnode的标记信息;当所述标记信息表示所述vnode有效时,确定所述vnode是有效的;当所述标记信息表示所述vnode无效时,所述CA向元数据服务器MDS获取所述无效的vnode所对应的目录的监听器信息,并根据所述监听器信息更新所述无效的vnode信息为有效的vnode;当所述各级目录中的目录不存在vnode时,所述CA向元数据服务器MDS获取所述不存在vnode的目录的监听器信息,并根据所述监听器信息创建所述目录的vnode并设置为有效的vnode。3.如权利要求2所述的方法,其特征在于,当所述标记信息表示所述vnode无效时,在查看所述vnode的标记信息之前,所述方法还包括:所述CA接收锁服务器发送的广播消息,所述广播消息用于通知所述CA所述无效的vnode所对应的目录的元数据将要发生变化;所述CA将所述目录的vnode的标记信息设置为表示所述目录的vnode无效的信息。4.一种监听器的处理方法,其特征在于,包括:客户端CA接收用于处理监听器的第一消息,所述第一消息中携带监听的目录/文件以及监听掩码;其中,所述监听掩码用于表示监听的事件类型;所述CA获取所述监听的目录/文件的标识;所述CA根据所述监听的目录/文件的标识在多个通知服务器NS中确定出本次处理的NS;其中,所述多个NS的数量与所述CA的数量相同;所述CA向确定出的所述本次处理的NS发送用于处理监听器的第二消息,所述第二消息中携带所述CA的标识、所述监听的目录/文件的标识以及所述监听掩码;在监听器处理成功之后,所述CA修改所述监听的目录/文件的vnode中的监听器计数,其中,目录的vnode中监听器计数不为零表示存在CA注册所述目录的监听器。5.如权利要求4所述的方法,其特征在于,在所述CA向确定出的所述本次处理的NS发送用于处理监听器的第二消息之后,所述方法还包括:所述CA向锁服务器发送获取所述监听的目录/文件的元数据的锁的请求;以使所述锁服务器根据所述请求通知其它CA所述元数据将要发生变化,所述其它CA中所述监听的目录/文件的节点信息vnode无效;所述CA接收所述锁服务器返回的拿锁成功的消息。6.如权利要求4或5所述的方法,其特征在于,所述方法还包括:所述CA向元数据服务器MDS发送所述监听的目录/文件的标识和所述监听掩码。7....
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。