国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種事件通知方法、監(jiān)聽器的處理方法及裝置的制造方法

      文檔序號:8319249閱讀:226來源:國知局
      一種事件通知方法、監(jiān)聽器的處理方法及裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本申請涉及計算機技術(shù)領(lǐng)域,尤其涉及一種事件通知方法、監(jiān)聽器的處理方法及
      目.0
      【背景技術(shù)】
      [0002]通知(Notify)是一種文件系統(tǒng)的變化通知機制。通過該機制,如文件增加、刪除等事件可以立刻讓用戶態(tài)得知。服務器信息塊協(xié)議版本2 (英文:Server Message BlockProtocol Vers1n 2,簡稱:SMB2.0)中定義了客戶端(英文:Client Agent,簡稱:CA)和文件服務器之間監(jiān)聽請求和響應消息。CA發(fā)送監(jiān)聽消息去修改目錄/文件的監(jiān)聽類型,同時可以設置多個監(jiān)聽掩碼。當文件服務器中被監(jiān)控的目錄/文件有修改操作的時候,并且和監(jiān)聽掩碼匹配,服務器會把操作事件通過監(jiān)聽響應消息發(fā)送給CA。
      [0003]現(xiàn)有技術(shù)提供的創(chuàng)建監(jiān)聽器的流程請參考圖1a所示。該創(chuàng)建流程包括:用戶通過協(xié)議發(fā)送增加監(jiān)聽器(watch)的消息給CA,該消息中攜帶監(jiān)聽的目錄/文件。CA獲取監(jiān)聽的目錄/文件的標識(id)。CA向元數(shù)據(jù)服務器(英文:Metadata Service,簡稱:MDS)發(fā)送增加監(jiān)聽器的消息,該消息中除了攜帶監(jiān)聽的目錄/文件的標識之外,還攜帶CA的標識以及監(jiān)聽掩碼(mask)。其中,監(jiān)聽掩碼表示監(jiān)聽的事件類型,例如刪除事件、創(chuàng)建事件的。MDS在該監(jiān)聽的目錄/文件的節(jié)點(Inode)信息中創(chuàng)建監(jiān)聽器。然后MDS向CA返回創(chuàng)建成功的消息。CA再回調(diào)協(xié)議接口向用戶返回創(chuàng)建成功的消息。其中,在圖1a中,CA(1,2,3)表示多個CA的處理流程相同。
      [0004]接下來請參考圖1b所示,為現(xiàn)有技術(shù)中監(jiān)聽事件通知的流程示意圖。具體來說,當采用如圖1a所示的方法在MDS注冊了監(jiān)聽器之后,MDS對監(jiān)聽的目錄/文件進行監(jiān)聽。當監(jiān)聽的目錄/文件發(fā)生了監(jiān)聽掩碼所代表的事件變化時,MDS就遍歷該目錄/文件的節(jié)點信息中的所有CA的監(jiān)聽器,假設該所有的CA為CA2,那么然后向CA2發(fā)送事件變化通知。CA2回調(diào)協(xié)議接口把事件變化通知發(fā)送給用戶。
      [0005]然而,上述方法在設置有目錄樹的情況下,因為需要監(jiān)控指定目錄下的所有文件和遞歸目錄下的所有文件,所以會存在這樣的問題:當目錄樹中的某個目錄/文件有變化時,就要回溯各級父目錄,經(jīng)多次路由才能回溯到注冊了監(jiān)聽器的父目錄。舉例來說,請參考圖2所示,假設根目錄(Dirl)的節(jié)點(Inodel)信息中,CA注冊了一個監(jiān)聽器。當文件6有操作變化時,就需要通知在文件6的父目錄中注冊了監(jiān)聽器的CA,所以就需要回溯文件6的各級父目錄中看哪級被注冊了監(jiān)聽器。然而,有時候每一級目錄的Inode不在同一個MDS上,所以就要發(fā)送消息給其他MDS進行查詢。由此可見,現(xiàn)有技術(shù)中的方法存在需要多次路由才能回溯到注冊了監(jiān)聽器的父目錄的問題。

      【發(fā)明內(nèi)容】

      [0006]本申請實施例提供一種事件通知方法、監(jiān)聽器的處理方法及裝置,用于解決現(xiàn)有技術(shù)中的在事件通知時需要多次路由才能回溯到注冊了監(jiān)聽器的父目錄的技術(shù)問題。
      [0007]本申請第一方面提供了一種事件通知方法,包括:
      [0008]當客戶端CA進行使得目錄/文件發(fā)生變化的操作時,確定所述目錄/文件的全路徑上的各級目錄的節(jié)點信息vnode是有效的;
      [0009]所述CA完成所述操作后,確定所述各級目錄的vnode中監(jiān)聽器計數(shù)不為零的vnode所對應的第一目錄;
      [0010]所述CA根據(jù)所述第一目錄的標識在多個通知服務器NS中確定出所述第一目錄的監(jiān)聽器所注冊的NS ;其中,所述多個NS的數(shù)量與所有CA的數(shù)量相同;所述所注冊的NS上保存有所述第一目錄的監(jiān)聽器的屬性信息,所述屬性信息包括所述第一目錄的標識、監(jiān)聽掩碼與注冊所述監(jiān)聽器的CA的標識;所述監(jiān)聽掩碼用于表示監(jiān)聽的事件類型;
      [0011]所述CA向所述所注冊的NS發(fā)送事件通知,所述事件通知包括所述第一目錄的標識、監(jiān)聽掩碼以及與所述操作對應的事件內(nèi)容;以使所述所注冊的NS能夠在所述事件通知中的監(jiān)聽掩碼和所述屬性信息中的監(jiān)聽掩碼匹配時,向所述注冊所述監(jiān)聽器的CA發(fā)送事件通知。
      [0012]結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,確定所述目錄/文件的全路徑上的各級目錄的節(jié)點信息vnode是有效的,包括:
      [0013]當所述各級目錄中的目錄存在vnode時,查看所述vnode的標記信息;
      [0014]當所述標記信息表示所述vnode有效時,確定所述vnode是有效的;
      [0015]當所述標記信息表示所述vnode無效時,所述CA向元數(shù)據(jù)服務器MDS獲取所述無效的vnode所對應的目錄的監(jiān)聽器信息,并根據(jù)所述監(jiān)聽器信息更新所述無效的vnode信息為有效的vnode ;
      [0016]當所述各級目錄中的目錄不存在vnode時,所述CA向元數(shù)據(jù)服務器MDS獲取所述不存在vnode的目錄的監(jiān)聽器信息,并根據(jù)所述監(jiān)聽器信息創(chuàng)建所述目錄的vnode并設置為有效的vnode。
      [0017]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,當所述標記信息表示所述vnode無效時,在查看所述vnode的標記信息之前,所述方法還包括:
      [0018]所述CA接收鎖服務器發(fā)送的廣播消息,所述廣播消息用于通知所述CA所述無效的vnode所對應的目錄的元數(shù)據(jù)將要發(fā)生變化;
      [0019]所述CA將所述目錄的vnode的標記信息設置為表示所述目錄的vnode無效的信息。
      [0020]本申請第二方面提供一種事件通知方法,包括:
      [0021]通知服務器NS接收發(fā)送事件變化的CA發(fā)送的第一事件通知;所述第一事件通知包括第一目錄的標識、監(jiān)聽掩碼以及事件內(nèi)容;所述監(jiān)聽掩碼用于表示監(jiān)聽的事件類型;
      [0022]所述NS根據(jù)所述第一目錄的標識獲得注冊的用于監(jiān)聽所述第一目錄的監(jiān)聽器;所述監(jiān)聽器的屬性信息包括所述第一目錄的標識、監(jiān)聽掩碼以及注冊所述監(jiān)聽器的CA的標識;
      [0023]所述NS確定所述第一事件通知中的監(jiān)聽掩碼和所述監(jiān)聽器的屬性信息中的監(jiān)聽掩碼匹配;
      [0024]所述NS向注冊所述監(jiān)聽器的CA發(fā)送第二事件通知;所述第二事件通知包括所述第一目錄的標識、所述監(jiān)聽掩碼以及所述事件內(nèi)容。
      [0025]本申請第三方面提供一種監(jiān)聽器的處理方法,包括:
      [0026]客戶端CA接收用于處理監(jiān)聽器的第一消息,所述第一消息中攜帶監(jiān)聽的目錄/文件以及監(jiān)聽掩碼;其中,所述監(jiān)聽掩碼用于表示監(jiān)聽的事件類型;
      [0027]所述CA獲取所述監(jiān)聽的目錄/文件的標識;
      [0028]所述CA根據(jù)所述監(jiān)聽的目錄/文件的標識在多個通知服務器NS中確定出本次處理的NS ;其中,所述多個NS的數(shù)量與所述CA的數(shù)量相同;
      [0029]所述CA向確定出的所述本次處理的NS發(fā)送用于處理監(jiān)聽器的第二消息,所述第二消息中攜帶所述CA的標識、所述監(jiān)聽的目錄/文件的標識以及所述監(jiān)聽掩碼。
      [0030]結(jié)合第三方面,在第三方面的第一種可能的實現(xiàn)方式中,在所述CA向確定出的所述本次處理的NS發(fā)送用于處理監(jiān)聽器的第二消息之后,所述方法還包括:
      [0031 ] 所述CA向鎖服務器發(fā)送獲取所述監(jiān)聽的目錄/文件的元數(shù)據(jù)的鎖的請求;以使所述鎖服務器根據(jù)所述請求通知其它CA所述元數(shù)據(jù)將要發(fā)生變化,所述其它CA中所述監(jiān)聽的目錄/文件的節(jié)點信息vnode無效;
      [0032]所述CA接收所述鎖服務器返回的拿鎖成功的消息。
      [0033]結(jié)合第三方面或第三方面的第一種可能的實現(xiàn)方式中,在第三方面的第二種可能的實現(xiàn)方式中,所述方法還包括:
      [0034]所述CA向元數(shù)據(jù)服務器MDS發(fā)送所述監(jiān)聽的目錄/文件的標識和所述監(jiān)聽掩碼。
      [0035]本申請第四方面提供一種事件通知裝置,包括:
      [0036]處理單元,用于當客戶端CA進行使得目錄/文件發(fā)生變化的操作時,確定所述目錄/文件的全路徑上的各級目錄的節(jié)點信息vnode是有效的;當所述CA完成所述操作后,確定所述各級目錄的vnode中監(jiān)聽器計數(shù)不為零的vnode所對應的第一目錄;根據(jù)所述第一目錄的標識在多個通知服務器NS中確定出所述第一目錄的監(jiān)聽器所注冊的NS ;其中,所述多個NS的數(shù)量與所有CA的數(shù)量相同;所述所注冊的NS上保存有所述第一目錄的監(jiān)聽器的屬性信息,所述屬性信息包括所述第一目錄的標識、監(jiān)聽掩碼與注冊所述監(jiān)聽器的CA的標識;所述監(jiān)聽掩碼用于表示監(jiān)聽的事件類型;
      [0037]發(fā)送單元,用于向所述所注冊的NS發(fā)送事件通知,所述事件通知包括所述第一目錄的標識、監(jiān)聽掩碼以及與所述操作對應的事件內(nèi)容;以使所述所注冊的NS能夠在所述事件通知中的監(jiān)聽掩碼和所述屬性信息中的監(jiān)聽掩碼匹配時,向所述注冊所述監(jiān)聽器的CA發(fā)送事件通知。
      [0038]結(jié)合第四方面,在第四方面的第一種可能的實現(xiàn)方式中,所述處理單元具體用于:當所述各級目錄中的目錄存在vnode時,查看所述vnode的標記信息;
      [0039]當所述標記信息表示所述vnode有效時,確定所述vnode是有效的;
      [0040]所述發(fā)送單元還用于:當所述標記信息表示所述vnode無效時,向元數(shù)據(jù)服務器MDS獲取所述無效的vnode所對應的目錄的監(jiān)聽器信息,所述處理單元還用于根據(jù)所述監(jiān)聽器信息更新所述無效的vnode信息為有效的vnode ;
      [0041]所述發(fā)送單元還用于當所述各級目錄中的目錄不存在vnode時,向元數(shù)據(jù)服務器MDS獲取所述不存在vnode的目錄的監(jiān)聽器信息,所述處理單元還用于根據(jù)所述監(jiān)聽器信息創(chuàng)建所述目錄的vnode并設置為有效的vnode。
      [0042]結(jié)合第四方面的第一種可能的實現(xiàn)方式中,在第四方面的第二種可能的實現(xiàn)方式中,所述裝置還包括接收單元,用于當所述標記信息表示所述vnode無效時,在所述處理單元查看所述vnode的標記信息之前,接收鎖服務器發(fā)送的廣播消息,所述廣播消息用于通知所述裝置所述無效的vnode所對應的目錄的元數(shù)據(jù)將要發(fā)生變化;
      [0043]所述處理單元還用于:將所述目錄的vnode的標記信息設置為表示所述目錄的vnode無效的信息。
      [0044]本申請第五方面提供一種事件通知裝置,包括:
      [0045]接收單元,用于接收發(fā)送事件變化的CA發(fā)送的第一事件通知;所述第一事件通知包括第一目錄的標識、監(jiān)聽掩碼以及事件內(nèi)容;所述監(jiān)聽掩碼用于表示監(jiān)聽的事件類型;
      [0046]處理單元,用于根據(jù)所述第一目錄的標識獲得注冊的用于監(jiān)聽所述第一目錄的監(jiān)聽器;所述監(jiān)聽器的屬性信息包括所述第一目錄的標識、監(jiān)聽掩碼以及注冊所述監(jiān)聽器的CA的
      當前第1頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1