亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

對塊數(shù)據(jù)進行輸入輸出操作的方法和裝置制造方法

文檔序號:6635421閱讀:195來源:國知局
對塊數(shù)據(jù)進行輸入輸出操作的方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種處理輸入輸出沖突的方法和裝置,包括接收IO請求,IO請求中包括數(shù)據(jù)塊的塊號,將所述數(shù)據(jù)塊的塊號作為IO請求的標(biāo)記;如果存在和IO請求的標(biāo)記對應(yīng)的等待隊列,根據(jù)預(yù)先設(shè)置的排列策略將IO請求添加到對應(yīng)的等待隊列中;按照排列順序釋放等待隊列中的IO請求,并對釋放的IO請求的數(shù)據(jù)塊進行IO請求操作。本發(fā)明通過對IO請求進行標(biāo)記,并將該IO請求添加到和該IO請求的標(biāo)記對應(yīng)的等待隊列中,從等待隊列中按照排列順序獲取IO請求進行IO請求操作,解決了對同一塊數(shù)據(jù)進行IO請求操作產(chǎn)生沖突的問題,從而保證了塊數(shù)據(jù)的完整性。
【專利說明】對塊數(shù)據(jù)進行輸入輸出操作的方法和裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及一種對數(shù)據(jù)塊進行輸入輸出(10,InputOutput)操作的方法和裝置。

【背景技術(shù)】
[0002]對于塊數(shù)據(jù)的1操作分為讀和寫兩類,但由于磁盤1處理能力遠(yuǎn)低于CPU處理能力,所以在多個功能模塊同時對某塊數(shù)據(jù)進行讀/寫操作時就會產(chǎn)生沖突,例如在克隆、快照等不同功能模塊同時進行工作時,有可能在同一時間對同一塊數(shù)據(jù)進行讀寫操作,t匕如,在克隆功能進行讀取操作時,可能鏡像功能正在進行寫操作,這種情況下,會導(dǎo)致克隆功能讀取的數(shù)據(jù)可能是不完整甚至是錯誤的。


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

[0003]為了解決上述技術(shù)問題,本發(fā)明提供了一種對數(shù)據(jù)塊進行輸入輸出操作的方法和裝置,能夠避免同時對同一塊數(shù)據(jù)進行1請求操作產(chǎn)生的沖突,從而保證塊數(shù)據(jù)的完整性。
[0004]為了達到本發(fā)明目的,本發(fā)明提供了一種對數(shù)據(jù)塊進行輸入輸出操作的方法,包括:接收1請求,所述1請求中包括數(shù)據(jù)塊的塊號;將所述數(shù)據(jù)塊的塊號作為1請求的標(biāo)記;如果存在和所述1請求的標(biāo)記對應(yīng)的等待隊列,根據(jù)預(yù)先設(shè)置的排列策略將所述1請求添加到對應(yīng)的等待隊列中;按照排列順序釋放所述等待隊列中的1請求,并對釋放的1請求的數(shù)據(jù)塊進行1請求操作。
[0005]進一步地,所述將所述數(shù)據(jù)塊的塊號作為1請求的標(biāo)記之后還包括:判斷是否存在和所述1請求的標(biāo)記對應(yīng)的等待隊列;如果不存在和所述1請求的標(biāo)記對應(yīng)的等待隊列,建立和所述1請求的標(biāo)記對應(yīng)的等待隊列,并根據(jù)預(yù)先設(shè)置的排列策略將所述1請求添加到對應(yīng)的等待隊列中。
[0006]進一步地,所述排列策略包括:按照進入等待隊列的時間順序排列,或者,按照1請求的數(shù)據(jù)塊的優(yōu)先等級排列。
[0007]進一步地,所述對釋放的1請求的數(shù)據(jù)塊進行1請求操作之后還包括:判斷所述1請求操作發(fā)生錯誤是否發(fā)生錯誤;如果所述1請求操作發(fā)生錯誤,將所述等待隊列中的所有1請求置成錯誤并結(jié)束本流程。
[0008]進一步地,所述對釋放的1請求的數(shù)據(jù)塊進行1請求操作之后還包括:在所述1請求操作完成后,如果所述等待隊列不為空,觸發(fā)所述等待隊列按照排列順序釋放1請求,如果所述等待隊列為空,結(jié)束本流程。
[0009]一種對數(shù)據(jù)塊進行輸入輸出操作的裝置,包括:接收模塊,用于接收1請求,所述1請求中包括數(shù)據(jù)塊的塊號;標(biāo)記模塊,用于將所述數(shù)據(jù)塊的塊號作為1請求的標(biāo)記;第一處理模塊,用于如果存在和所述1請求的標(biāo)記對應(yīng)的等待隊列,根據(jù)預(yù)先設(shè)置的排列策略將所述1請求添加到對應(yīng)的等待隊列中;第二處理模塊,用于按照排列順序釋放所述等待隊列中的1請求;第三處理模塊,用于對釋放的1請求的數(shù)據(jù)塊進行1請求操作。
[0010]進一步地,所述裝置還包括:第一判斷模塊,用于判斷是否存在和所述1請求的標(biāo)記對應(yīng)的等待隊列;所述第一處理模塊,還用于在所述第一判斷模塊判斷出不存在時,建立和所述1請求的標(biāo)記對應(yīng)的等待隊列,并根據(jù)預(yù)先設(shè)置的排列策略將所述1請求添加到對應(yīng)的等待隊列中。
[0011]進一步地,所述裝置還包括:第二判斷模塊,用于判斷所述等待隊列中是否存在其它1請求;所述第二處理模塊,還用于在所述第二判斷模塊判斷出不存在時,釋放所述1請求。
[0012]進一步地,所述裝置還包括:第三判斷模塊,用于判斷對釋放的1請求的數(shù)據(jù)塊進行的1請求操作是否發(fā)生錯誤;所述第三處理模塊,還用于在所述第三判斷模塊判斷出發(fā)生錯誤時,將所述等待隊列中的所有1請求置成錯誤并結(jié)束處理。
[0013]進一步地,所述裝置還包括:第四判斷模塊,用于在所述第三處理模塊對釋放的1請求操作完成后,判斷所述等待隊列是否為空;第四處理模塊,用于在所述第四判斷模塊判斷出不為空時,觸發(fā)所述第二處理模塊按照排列順序釋放等待隊列中的1請求;在所述第四判斷模塊判斷出為空時,結(jié)束處理。
[0014]與現(xiàn)有技術(shù)相比,本發(fā)明包括:接收1請求,所述1請求中包括數(shù)據(jù)塊的塊號;將所述數(shù)據(jù)塊的塊號作為1請求的標(biāo)記;如果存在和所述1請求的標(biāo)記對應(yīng)的等待隊列,根據(jù)預(yù)先設(shè)置的排列策略將所述1請求添加到對應(yīng)的等待隊列中;按照排列順序釋放所述等待隊列中的1請求,并對釋放的1請求的數(shù)據(jù)塊進行1請求操作。本發(fā)明通過將對同一數(shù)據(jù)塊的1請求添加到和該1請求的標(biāo)記對應(yīng)的等待隊列中,從等待隊列中順序獲取1請求進行1請求操作,解決了對同一塊數(shù)據(jù)進行1請求操作產(chǎn)生沖突的問題,從而保證了塊數(shù)據(jù)的完整性。

【專利附圖】

【附圖說明】
[0015]圖1是本發(fā)明對數(shù)據(jù)塊進行輸入輸出操作的方法的流程示意圖。
[0016]圖2是本發(fā)明對數(shù)據(jù)塊進行輸入輸出操作的裝置的結(jié)構(gòu)示意圖。

【具體實施方式】
[0017]下面結(jié)合附圖對本發(fā)明進行進一步的詳細(xì)說明。通過足夠詳細(xì)的描述這些實施示例,使得本領(lǐng)域技術(shù)人員能夠?qū)嵺`本發(fā)明。在不脫離本發(fā)明的主旨和范圍的情況下,可以對實施做出邏輯的、實現(xiàn)的和其他的改變。
[0018]圖1是本發(fā)明對數(shù)據(jù)塊進行輸入輸出操作的方法的流程示意圖,如圖1所示,包括:
[0019]步驟11,接收1請求,該1請求中包括數(shù)據(jù)塊的塊號。
[0020]在本步驟中,接收來自功能模塊的1請求,因為每個數(shù)據(jù)塊都具有塊號,該塊號以邏輯單元號(LUN, Logical Unit Number)為單位,所以1請求中包括所請求進行1操作的數(shù)據(jù)塊的塊號。
[0021]步驟12,將該1請求中數(shù)據(jù)塊的塊號作為該1請求的標(biāo)記。
[0022]步驟13,判斷是否存在和該1請求的標(biāo)記對應(yīng)的等待隊列,如果不存在,進入步驟14 ;如果存在,進入步驟15。
[0023]步驟14,建立和該1請求的數(shù)據(jù)塊的標(biāo)記對應(yīng)的等待隊列。
[0024]步驟15,根據(jù)預(yù)先設(shè)置的排列策略將該1請求添加到對應(yīng)的等待隊列中。
[0025]在本步驟中,等待隊列中的1請求可以根據(jù)進入時間順序排列,當(dāng)然也可以有其它的排列方式,例如1請求的數(shù)據(jù)塊的優(yōu)先等級等,在此不限制。
[0026]步驟16,判斷等待隊列中是否存在其它1請求,如果是,進入步驟17 ;如果否,進入步驟18。
[0027]步驟17,按照排列順序釋放等待隊列中的1請求,進入步驟19。
[0028]步驟18,釋放該1請求;
[0029]步驟19,對釋放的1請求的數(shù)據(jù)塊進行1請求操作。
[0030]步驟20,判斷該1請求操作是否發(fā)生錯誤,如果是,進入步驟21 ;如果否,進入步驟22。
[0031]步驟21,將該等待隊列中的所有1請求置成錯誤,并結(jié)束本流程。
[0032]在本步驟中,如果在進行1請求操作時發(fā)生錯誤,例如無法進行讀操作或者寫操作,需要釋放等待隊列中的1請求,但因為已經(jīng)發(fā)生錯誤,則將等待隊列中的所有1請求都置成錯誤,以防止發(fā)生數(shù)據(jù)不一致的問題。
[0033]步驟22,該1請求操作完成后,判斷等待隊列是否為空,如果是,結(jié)束本流程;如果否,返回步驟17。
[0034]本發(fā)明通過對1請求進行塊號標(biāo)記,并將該1請求添加到和該1請求的塊號標(biāo)記對應(yīng)的等待隊列中,從等待隊列中順序獲取1請求進行1請求操作,解決了對同一塊數(shù)據(jù)進行1請求操作產(chǎn)生沖突的問題,保證了塊數(shù)據(jù)的完整性。
[0035]圖2是本發(fā)明對數(shù)據(jù)塊進行輸入輸出操作的裝置的結(jié)構(gòu)示意圖,如圖2所示,包括:
[0036]接收模塊,用于接收1請求,該1請求中包括數(shù)據(jù)塊的塊號。
[0037]標(biāo)記模塊,用于根據(jù)該數(shù)據(jù)塊的塊號,對該1請求進行標(biāo)記,具體地,將該1請求中數(shù)據(jù)塊的塊號作為該1請求的標(biāo)記。
[0038]第一判斷模塊,用于判斷是否存在和該1請求的標(biāo)記對應(yīng)的等待隊列。
[0039]第一處理模塊,用于在第一判斷模塊判斷出存在時,根據(jù)預(yù)先設(shè)置的排列策略將該1請求添加到對應(yīng)的等待隊列中;在第一判斷模塊判斷出不存在時,建立和該1請求的數(shù)據(jù)塊的標(biāo)記對應(yīng)的等待隊列,并根據(jù)預(yù)先設(shè)置的排列策略將該1請求添加到對應(yīng)的等待隊列中。
[0040]第二判斷模塊,用于判斷等待隊列中是否存在其它1請求。
[0041]第二處理模塊,用于在第二判斷模塊判斷出不存在時,釋放該1請求;在第二判斷模塊判斷出存在時,按照排列順序釋放所述等待隊列中的1請求。
[0042]第三判斷模塊,用于判斷對釋放的1請求的數(shù)據(jù)塊進行的1請求操作是否發(fā)生錯誤。
[0043]第三處理模塊,用于對釋放的1請求的數(shù)據(jù)塊進行1請求操作,如果第三判斷模塊判斷出發(fā)生錯誤,將該等待隊列中的所有1請求置成錯誤,并結(jié)束處理。
[0044]第四判斷模塊,用于在對釋放的1請求操作完成后,判斷等待隊列是否為空。
[0045]第四處理模塊,用于在第四判斷模塊判斷出不為空時,觸發(fā)第二處理模塊按照排列順序釋放等待隊列中的1請求;在第四判斷模塊判斷出為空時,結(jié)束處理。
[0046]本發(fā)明的對數(shù)據(jù)塊進行輸入輸出操作的裝置是和對數(shù)據(jù)塊進行輸入輸出操作的方法對應(yīng)的,因此,對數(shù)據(jù)塊進行輸入輸出操作的裝置具體的實現(xiàn)細(xì)節(jié)可參看對數(shù)據(jù)塊進行輸入輸出操作的方法,在此不贅述。
[0047]本發(fā)明通過對1請求進行塊號標(biāo)記,并將該1請求添加到和該1請求的塊號標(biāo)記對應(yīng)的等待隊列中,從等待隊列中順序獲取1請求進行1請求操作,解決了對同一塊數(shù)據(jù)進行1請求操作產(chǎn)生沖突的問題,保證了塊數(shù)據(jù)的完整性。
[0048]應(yīng)當(dāng)理解,雖然本說明書根據(jù)實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個整體,各實施方式中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實施方式。上文所列出的一系列的詳細(xì)說明僅僅是針對本發(fā)明的可行性實施方式的具體說明,它們并非用于限制本發(fā)明的保護范圍,凡未脫離本發(fā)明技藝精神所作的等效實施方式或變更均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種對數(shù)據(jù)塊進行輸入輸出操作的方法,其特征在于,包括: 接收1請求,所述1請求中包括數(shù)據(jù)塊的塊號; 將所述數(shù)據(jù)塊的塊號作為1請求的標(biāo)記; 如果存在和所述1請求的標(biāo)記對應(yīng)的等待隊列,根據(jù)預(yù)先設(shè)置的排列策略將所述1請求添加到對應(yīng)的等待隊列中; 按照排列順序釋放所述等待隊列中的1請求,并對釋放的1請求的數(shù)據(jù)塊進行1請求操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述數(shù)據(jù)塊的塊號作為1請求的標(biāo)記之后還包括:判斷是否存在和所述1請求的標(biāo)記對應(yīng)的等待隊列; 如果不存在和所述1請求的標(biāo)記對應(yīng)的等待隊列,建立和所述1請求的標(biāo)記對應(yīng)的等待隊列,并根據(jù)預(yù)先設(shè)置的排列策略將所述1請求添加到對應(yīng)的等待隊列中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述排列策略包括:按照進入等待隊列的時間順序排列,或者,按照1請求的數(shù)據(jù)塊的優(yōu)先等級排列。
4.根據(jù)權(quán)利要求1?3中任一項所述的方法,其特征在于,所述對釋放的1請求的數(shù)據(jù)塊進行1請求操作之后還包括:判斷所述1請求操作發(fā)生錯誤是否發(fā)生錯誤; 如果所述1請求操作發(fā)生錯誤,將所述等待隊列中的所有1請求置成錯誤并結(jié)束本流程。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述對釋放的1請求的數(shù)據(jù)塊進行1請求操作之后還包括: 在所述1請求操作完成后,如果所述等待隊列不為空,觸發(fā)所述等待隊列按照排列順序釋放1請求,如果所述等待隊列為空,結(jié)束本流程。
6.一種對數(shù)據(jù)塊進行輸入輸出操作的裝置,其特征在于,包括: 接收模塊,用于接收1請求,所述1請求中包括數(shù)據(jù)塊的塊號; 標(biāo)記模塊,用于將所述數(shù)據(jù)塊的塊號作為1請求的標(biāo)記; 第一處理模塊,用于如果存在和所述1請求的標(biāo)記對應(yīng)的等待隊列,根據(jù)預(yù)先設(shè)置的排列策略將所述1請求添加到對應(yīng)的等待隊列中; 第二處理模塊,用于按照排列順序釋放所述等待隊列中的1請求; 第三處理模塊,用于對釋放的1請求的數(shù)據(jù)塊進行1請求操作。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括:第一判斷模塊,用于判斷是否存在和所述1請求的標(biāo)記對應(yīng)的等待隊列; 所述第一處理模塊,還用于在所述第一判斷模塊判斷出不存在時,建立和所述1請求的標(biāo)記對應(yīng)的等待隊列,并根據(jù)預(yù)先設(shè)置的排列策略將所述1請求添加到對應(yīng)的等待隊列中。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括:第二判斷模塊,用于判斷所述等待隊列中是否存在其它1請求; 所述第二處理模塊,還用于在所述第二判斷模塊判斷出不存在時,釋放所述1請求。
9.根據(jù)權(quán)利要求6?8中任一項所述的裝置,其特征在于,所述裝置還包括:第三判斷模塊,用于判斷對釋放的1請求的數(shù)據(jù)塊進行的1請求操作是否發(fā)生錯誤; 所述第三處理模塊,還用于在所述第三判斷模塊判斷出發(fā)生錯誤時,將所述等待隊列中的所有1請求置成錯誤并結(jié)束處理。
10.根據(jù)權(quán)利要求9中所述的裝置,其特征在于,所述裝置還包括:第四判斷模塊,用于在所述第三處理模塊對釋放的1請求操作完成后,判斷所述等待隊列是否為空; 第四處理模塊,用于在所述第四判斷模塊判斷出不為空時,觸發(fā)所述第二處理模塊按照排列順序釋放等待隊列中的1請求;在所述第四判斷模塊判斷出為空時,結(jié)束處理。
【文檔編號】G06F13/26GK104360966SQ201410677526
【公開日】2015年2月18日 申請日期:2014年11月21日 優(yōu)先權(quán)日:2014年11月21日
【發(fā)明者】穆裕, 張道偉 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1