国产精品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>

      用于處理輸入輸出操作請求的方法和裝置的制造方法_2

      文檔序號:9750733閱讀:來源:國知局
      發(fā)明的若干實施方式。在附圖中相 同或相近的附圖標(biāo)記指示相同或相近的單元或元素,其中:
      [0020] 圖1示出了現(xiàn)有技術(shù)中所使用的條帶鎖的概念圖;
      [0021] 圖2示出了在現(xiàn)有技術(shù)中的雙SP存儲設(shè)備中所使用的條帶鎖鏈表示意圖;
      [0022] 圖3示出了在現(xiàn)有技術(shù)中的雙SP存儲設(shè)備中所使用的條帶鎖緩存表的示意圖;
      [0023] 圖4示出了在現(xiàn)有技術(shù)的雙SP存儲設(shè)備中對于10操作請求的完整處理過程;
      [0024] 圖5示出了用以說明根據(jù)本發(fā)明的一些實施例的用于動態(tài)生成分級條帶鎖緩存 表的方法的示例框圖;
      [0025] 圖6示出了根據(jù)本發(fā)明的一些實施例的針對子緩存表中所記錄的狀態(tài)彼此不同 的情況收回子緩存表的方法的一個示例;
      [0026] 圖7示出了根據(jù)本發(fā)明的實施例的一種用于在存儲設(shè)備中處理輸入輸出操作請 求的方法700的流程圖;以及
      [0027] 圖8示出了根據(jù)本發(fā)明的實施例的一種用于在存儲設(shè)備中處理輸入輸出操作請 求的裝置800的結(jié)構(gòu)圖。
      【具體實施方式】
      [0028] 以下將參考附圖詳細描述本發(fā)明的各個示例性實施例。
      [0029] 應(yīng)當(dāng)理解,給出這些示例性實施例僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解 并進而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。
      [0030] 在本文中,對"一個實施例"、"另一實施例"或"一個優(yōu)選實施例"等的引用指示所 描述的實施例可以包括特定特征、結(jié)構(gòu)或特性,但每個實施例不一定必須包括該特定特征、 結(jié)構(gòu)或特性。而且,這些術(shù)語并不一定指相同的實施例。
      [0031] 還應(yīng)理解,在此處使用的各種術(shù)語僅用于描述特定實施例的目的,而不旨在于限 制本發(fā)明。如這里使用的單數(shù)形式"一"和"該"可以包括復(fù)數(shù)形式,除非上下文中有明確 的相反指示。還應(yīng)理解,此處使用的術(shù)語"包括"、"具有"和"包含"指示所述特征、單元和/ 或組件等的存在,但不排除一個或多個其他特征、單元、組件和/或其組合的存在。如這里 使用的術(shù)語"多個"表示"兩個或更多"。如這里使用的術(shù)語"和/或"可以包括關(guān)聯(lián)列出的 各項中的一項或多項的任何和所有組合。其他術(shù)語的定義將在下文描述中具體給出。
      [0032] 為了更清楚地闡述本發(fā)明的各實施例,首先對現(xiàn)有的條帶鎖鏈表和條帶鎖緩存表 的結(jié)構(gòu)和操作進行介紹。
      [0033] 圖2圖了在現(xiàn)有技術(shù)中的雙SP存儲設(shè)備中所使用的條帶鎖鏈表意圖。如圖所 示,該存儲設(shè)備包括兩個SP,即SPA和SPB。每一個SP針對每一個存儲陣列組(例如RAID 組)存儲了一個條帶鎖鏈表,分別如圖2(a)和圖2(b)所示SPA條帶鎖鏈表(其也被稱為 SPA的本地條帶鎖鏈表)和SPB條帶鎖鏈表(其也被稱為SPB的本地條帶鎖鏈表)。每個 條帶鎖鏈表都至少包括一個"允許鏈",如圖2所示的縱向鏈,該允許鏈表示當(dāng)前本地SP已 經(jīng)允許的、對存儲陣列組的特定存儲地址范圍(例如LBA范圍)的10操作請求的信息。每 個縱向鏈包括多個記錄,其在圖2中由方框表示。每個記錄可以例如包含三個字段{存儲 地址范圍、操作、請求側(cè)}。圖2中以"LBA范圍"表示存儲地址范圍。該LBA范圍字段記錄 了已被本地SP允許的10操作請求所針對的LBA的范圍;操作字段記錄了已被本地SP允許 的10操作請求的類型,即寫操作(W)或者讀操作(R);并且請求側(cè)字段記錄了該允許的10 操作請求是來自本地SP還是對端SP。例如,如圖2 (a)中的縱向鏈中的第一個方框所示,其 中的三個字段是"LBA/R/P",這就意味著本地SP、g卩SPA已經(jīng)允許了來自對端SP的對LBA 所表示的LBA范圍的讀操作請求。
      [0034] 每個條帶鎖鏈表還可以附加地包含一個或多個等待鏈,該一個或多個等待鏈在圖 2中被表示為一條或多條橫向鏈。等待鏈中的每個記錄表示還未被本地SP允許的10操作 請求,并且同樣包含三個字段{LBA范圍、操作、請求側(cè)},每個字段的含義如上所述,在此不 再贅述。如圖2(a)中的橫向鏈中的方框所示,其中的三個字段為"LBA/W/L",其表明了本地 SP、即SPA尚未允許來自SPA的對LBA所表示的LBA范圍的寫操作請求。
      [0035] 當(dāng)SP接收到針對存儲陣列組的某個存儲地址范圍的一個新的10操作請求(該SP 在下文中被簡稱為本地SP)時,本地SP首先要查詢針對該存儲陣列組所存儲的條帶鎖鏈 表,如果該新的10操作請求與已經(jīng)被允許的10操作請求不沖突,那么本地SP便可以允許 該新的10操作請求并將記錄該10操作請求的信息的一個新的記錄添加到該條帶鎖鏈表中 的允許鏈的頂端;否則,本地SP不允許該新的10操作請求并將相應(yīng)的記錄添加到與該10 操作請求所針對的存儲地址范圍對應(yīng)的等待鏈中。例如如圖2 (a)所示,當(dāng)新的10操作請求 是由對端SP請求的針對框201中的LBA所表示的LBA范圍的一部分或全部的寫操作,那么 通過查詢SPA條帶鎖鏈表可以發(fā)現(xiàn)目前已經(jīng)允許了來自對端的針對該地址范圍的讀操作, 因此該新的寫操作請求將不能夠被允許。作為結(jié)果,SPA將一個新的記錄添加到與該存儲 地址范圍對應(yīng)的等待鏈中,如圖2(a)所示,將一個新的方框202添加到方框201的右側(cè)。
      [0036] 對于已經(jīng)被本地SP允許的10操作請求,在該請求的10操作被執(zhí)行之前,本地SP 還需要進一步查詢所存儲的條帶鎖緩存表,如圖3所示。
      [0037] 圖3圖了在現(xiàn)有技術(shù)中的雙SP存儲設(shè)備中所使用的條帶鎖緩存表的意圖。延 續(xù)參照圖2所述的內(nèi)容,該存儲設(shè)備包括兩個SP,即SPA和SPB。每個SP針對每個存儲陣 列組存儲了一個條帶鎖緩存表,即SPA條帶鎖緩存表(其也被稱為SPA的本地條帶鎖緩存 表)和SPB條帶鎖緩存表(其也被稱為SPB的本地條帶鎖緩存表)。每個條帶鎖緩存表包 括多個緩存格。每個緩存格對應(yīng)于存儲陣列組的特定存儲地址范圍,例如如果一個RAID組 的容量大小為4T,那么每個緩存格對應(yīng)4T/512 = 8G的范圍。
      [0038] 每一個緩存格中記錄了對端SP對于該緩存格所對應(yīng)的存儲地址范圍的當(dāng)前允許 狀態(tài)。該允許狀態(tài)包括二種類型:獨占、空閑和共孚。
      [0039] "獨占"狀態(tài)表示對端SP總是允許本地SP對該緩存格所對應(yīng)的存儲地址范圍的 讀和寫操作。也就是說當(dāng)本地SP接收到一個新的10操作請求時,在查詢了條帶鎖緩存表 之后發(fā)現(xiàn)與該新的10請求所針對的存儲地址范圍對應(yīng)的緩存格所指示的允許狀態(tài)是"獨 占",那么該SP將不必再請求對端SP對該10操作的許可。
      [0040] "空閑"狀態(tài)表示對與該緩存格所對應(yīng)的存儲地址范圍的任何10操作都必須獲得 對端SP的許可。
      [0041] "共享"狀態(tài)表示對與該緩存格所對應(yīng)的存儲地址范圍的讀操作請求只要得到本 地SP的許可便可執(zhí)行,而無需獲得對端SP的許可;但是對與該緩存格所對應(yīng)的存儲地址范 圍的寫操作請求必須獲得本地SP和對端SP二者的許可方可執(zhí)行。
      [0042] 此外,對于同一存儲地址范圍,如果一個SP對其所持的允許狀態(tài)是"獨占",那么 另一個SP對其所持的允許狀態(tài)必須是"空閑";并且如果一個SP對其所持的允許狀態(tài)是"共 享",那么另一個SP對其所持的允許狀態(tài)也是"共享"。
      [0043] 圖4圖示了在現(xiàn)有技術(shù)的雙SP存儲設(shè)備中對于10操作請求的完整處理過程,其 中以SPA和SPB表示存儲設(shè)備所包括的兩個SP。圖中圓圈中的數(shù)字表示處理步驟的順序。 該處理過程開始于SPA接收到一個10操作請求。
      [0044] 接收到該請求后,SPA首先在步驟①查詢存儲的SPA條帶鎖鏈表,如果在步驟①的 查詢結(jié)果指示該10操作請求與已經(jīng)被允許的10操作沖突,則將與該新的10操作請求對應(yīng) 的記錄添加到該條帶鎖鏈表的等待鏈中,如圖所示的橫向鏈中,然后該處理過程結(jié)束。
      [0045] 如果在步驟①的查詢結(jié)果指示該新的10操作請求與已經(jīng)被允許的10操作都不沖 突,則將與該新的10操作請求對應(yīng)的記錄添加到SPA條帶鎖鏈表的允許鏈(如圖所示的縱 向鏈)的頂端,然后繼續(xù)在步驟②中對SPA條帶鎖緩存表進行查詢。
      [0046] 如果在步驟②的查詢結(jié)果指示對端SPB對該新的10操作請求所針對的存儲地址 范圍的允許狀態(tài)是"獨占",則意味著對端SPB總是允許SPA對該存儲地址范圍的任何10操 作,那么該新的10操作請求可以被允許執(zhí)行。
      [0047] 如果在步驟②的查詢結(jié)果指示對端SPB對該新的10操作請求所針對的存儲地址 范圍的允許狀態(tài)是"空閑",則意味著本地SPA對該存儲地址范圍的任何10操作請求都需要 獲得對端SPB的許可,因此處理過程進入步驟③。類似地,如果該新的10操作請求是寫操 作請求并且在步驟②的查詢結(jié)果指示對端SPB對該新的10操作請求所針對的存儲地址范 圍的允許狀態(tài)是"共享",那么也要進入步驟③。
      [0048] 在步驟③中,SPA向SPB發(fā)送CMI消息以請求SPB對該新的10操作請求的許可。
      [0049] SPB在接收到該CMI消息后,在步驟④中對SPB條帶鎖鏈表進行查詢,如果在步驟 ④中的查詢結(jié)果指示該新的10操作請求與SPB已經(jīng)許可的10操作沖突,則將與該新的10 操作請求對應(yīng)的記錄添加到SPB條帶鎖鏈表的等待鏈中,即如圖所示的橫向鏈中,然后該 處理過程結(jié)束。
      [0050] 如果在步驟④中的查詢結(jié)果指示該新的10操作請求與所有已經(jīng)被SPB允許的10 操作都不沖突,則將與該新的10
      當(dāng)前第2頁1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1