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

      基于互聯網協(xié)議ip盤的數據處理方法和裝置制造方法

      文檔序號:7804403閱讀:180來源:國知局
      基于互聯網協(xié)議ip盤的數據處理方法和裝置制造方法
      【專利摘要】本發(fā)明提供一種基于互聯網協(xié)議IP盤的數據處理方法和裝置。該方法包括:接收第一數據寫請求,所述第一數據寫請求攜帶第一值和第一鍵值;將所述第一鍵值存儲在i個索引區(qū)域的根節(jié)點中,根據所述第一鍵值中攜帶的存儲地址存儲所述第一值;對所述第一鍵值進行哈希運算獲得第一哈希值;在索引表中記錄所述第一哈希值,并且在所述索引表中記錄所述第一哈希值的位置記錄所述i個索引區(qū)域的根節(jié)點的地址;其中,i為整數,并且i不小于2。本發(fā)明實施例在多個索引區(qū)域存儲鍵值,當某一個索引區(qū)域出現故障時,可以通過索引區(qū)域讀取鍵值,從而讀取該鍵值對應的數據,有效地提升了數據存儲的可靠性。
      【專利說明】基于互聯網協(xié)議IP盤的數據處理方法和裝置
      【技術領域】
      [0001]本發(fā)明實施例涉及通信技術,尤其涉及一種基于互聯網協(xié)議IP盤的數據處理方法和裝置。
      【背景技術】
      [0002]隨著信息時代的發(fā)展,對數據存儲設備的性能要求越來越高。現有互聯網協(xié)議(Internet Protocol,簡稱IP)硬盤使用鍵-值(Key-Value)分布式存儲接口進行數據訪問,數據在IP硬盤中也以Key-Value的結構進行存儲,其中,Key是主鍵,通常是一個字符串,Value中包含要存儲的數據。
      [0003]目前,在IP硬盤中,Key-Value結構的數據存儲常用的一種方式是以哈希數據庫(Hash database)的方式存儲Key-Value結構的數據。其主要方法是:將Key通過Hash算法計算獲取一個哈希值(hash code),以將該哈希值作為Key的索引值。由于不同的Key值通過hash算法后可能得到相同的哈希值,因此可將哈希值相同的多個Key存儲在同一個存儲區(qū),通過存儲在索引表中哈希值來查找Key。具體的,圖1為現有技術中查找Key以獲取對應的Value中的數據的原理示意圖,如圖1所示,索引表101中包括多個索引區(qū)102,每個索引區(qū)102中存儲一個哈希值和物理地址,其中,每個索引區(qū)102中存儲的哈希值各不相同,且可以通過物理地址獲取索引區(qū)102對應的存儲區(qū)103,該存儲區(qū)103中存儲了相同哈希值下的對應的不同的Key,其可以用節(jié)點(Node)表示。在存儲區(qū)103中,節(jié)點I為節(jié)點2和節(jié)點5的父節(jié)點,節(jié)點2為節(jié)點I的左側葉子節(jié)點,節(jié)點5為節(jié)點I的右側葉子節(jié)點,同樣,節(jié)點2為節(jié)點3和節(jié)點4的父節(jié)點,節(jié)點3和節(jié)點4分別為節(jié)點2的左側葉子節(jié)點和右側葉子節(jié)點。
      [0004]當接收到攜帶有Key的get請求消息時,先計算得到該Key的哈希值,在索引表101中找到該哈希值對應的索引區(qū)102,在該索引區(qū)102中,獲取對應的存儲區(qū)103的物理地址,從該物理地址對應的存儲區(qū)103的節(jié)點I開始比較,比較get請求消息中的Key和節(jié)點I中的Key,若get請求消息中的Key和節(jié)點I中的Key相等,貝U獲取節(jié)點I中該Key對應的Value的物理位置(Value’ Offset),以根據該物理位置讀取Value中的數據。若get請求消息中的Key大于節(jié)點I中的Key,則和節(jié)點I的左側葉子節(jié)點節(jié)點2中的Key進行比較,其比較方式與上述相類似。若get請求消息中的Key小于節(jié)點I中的Key,則和節(jié)點I的右側葉子節(jié)點節(jié)點5中的Key進行比較,其比較方式與上述相類似。以此類推,直至找到節(jié)點中的Key和get請求消息中的Key相等為止。
      [0005]但是,現有技術中,若某個Key對應的節(jié)點位置所在的硬盤出現故障,則該節(jié)點以及其子樹節(jié)點都無法讀取。

      【發(fā)明內容】

      [0006]本發(fā)明實施例提供一種基于互聯網協(xié)議IP盤的數據處理方法和裝置,以克服現有技術中某個關鍵值對應的節(jié)點位置所在的硬盤出現故障,則該節(jié)點以及其子樹節(jié)點都無法讀取的技術問題。
      [0007]本發(fā)明實施例第一方面提供一種基于互聯網協(xié)議IP盤的數據處理方法,包括:
      [0008]接收第一數據寫請求,所述第一數據寫請求攜帶第一值和第一鍵值;其中,所述第一值中包含待寫入數據,所述第一鍵值攜帶所述第一值的存儲地址;
      [0009]將所述第一鍵值存儲在i個索引區(qū)域的根節(jié)點中,根據所述第一鍵值中攜帶的存儲地址存儲所述第一值;
      [0010]對所述第一鍵值進行哈希運算獲得第一哈希值;
      [0011]在索引表中記錄所述第一哈希值,并且在所述索引表中記錄所述第一哈希值的位置記錄所述i個索引區(qū)域的根節(jié)點的地址;其中,i為整數,并且i不小于2。
      [0012]在第一方面的第一種可能實現方式中,所述方法還包括,接收第二數據寫請求,所述第二數據寫請求攜帶第二值和第二鍵值;其中,所述第二值中包含待寫入數據,所述第二鍵值攜帶所述第二值的存儲地址,并且所述第二鍵值與所述第一鍵值不同;
      [0013]根據所述第二鍵值中的存儲地址存儲所述第二值;
      [0014]計算所述第二鍵值的哈希值得到所述第一哈希值;
      [0015]將所述第二鍵值存儲在所述第一哈希值對應的所述i個索引區(qū)域的每一個根節(jié)點的葉子節(jié)點中。
      [0016]結合第一方面的第一種可能實現方式,在第一方面的第二種可能實現方式中,還包括:
      [0017]接收第一數據讀請求,所述第一數據讀請求攜帶所述第一鍵值;
      [0018]計算所述第一鍵值獲得所述第一哈希值,根據所述第一哈希值在所述索引表中查找所述根節(jié)點的地址;
      [0019]根據所述根節(jié)點的地址訪問所述第一鍵值,獲得所述第一鍵值中攜帶的所述第一值的存儲地址;
      [0020]根據所述第一值的存儲地址讀取所述第一值。
      [0021]結合第一方面的第二種可能實現方式,在第一方面的第三種可能實現方式中,所述根據所述根節(jié)點的地址訪問所述第一鍵值,獲得所述第一鍵值中攜帶的所述第一值的存儲地址,具體包括:
      [0022]根據第一索引區(qū)域中的根節(jié)點的地址訪問所述第一鍵值,當根據所述第一索引區(qū)域中的根節(jié)點的地址訪問所述第一鍵值失敗時,則從(1-Ι)個索引區(qū)域中的根節(jié)點地址中選擇下一個地址訪問所述第一鍵值,直到根據所述(1-Ι)個索引區(qū)域中的根節(jié)點地址中一個訪問所述第一鍵值成功時,獲得所述第一鍵值中攜帶的所述第一值的存儲地址;其中,所述第一索引區(qū)域中的根節(jié)點為所述i個索引區(qū)域的根節(jié)點中的任意一個。
      [0023]結合第一方面的第一種可能實現方式,在第一方面的第四種可能實現方式中,所述方法還包括:接收第三數據讀請求,所述第三數據讀請求攜帶第三鍵值,所述第三鍵值為所述第一鍵值或所述第二鍵值;
      [0024]計算所述第三鍵值獲得所述第一哈希值;
      [0025]根據所述第一哈希值查詢所述索引表,以獲得所述第三鍵值在所述i個索引區(qū)域中所述根節(jié)點的地址以訪問所述i個索引區(qū)域中所述第三鍵值所對應的節(jié)點;
      [0026]當第m個索引區(qū)域中的所述第三鍵值對應的節(jié)點訪問失敗,訪問從第η個索引區(qū)域中的所述第三鍵值對應的節(jié)點,獲得所述第三鍵值中存儲的第三值的存儲地址,根據所述第三值的存儲地址讀取所述第三值;
      [0027]復制所述第η個索引區(qū)域中的所述第三鍵值對應的節(jié)點及其葉子節(jié)點至所述第m個索引區(qū)域中以作為所述第m個索引區(qū)域中所述第三鍵值對應的節(jié)點及其葉子節(jié)點。
      [0028]本發(fā)明實施例第二方面提供一種基于互聯網協(xié)議IP盤的數據處理裝置,包括:
      [0029]接收模塊,用于接收第一數據寫請求,所述第一數據寫請求攜帶第一值和第一鍵值;其中,所述第一值中包含待寫入數據,所述第一鍵值攜帶所述第一值的存儲地址;
      [0030]存儲模塊,用于將所述第一鍵值存儲在i個索引區(qū)域的根節(jié)點中,根據所述第一鍵值中攜帶的存儲地址存儲所述第一值;
      [0031]運算模塊,用于對所述第一鍵值進行哈希運算獲得第一哈希值;
      [0032]記錄模塊,用于在索引表中記錄所述第一哈希值,并且在所述索引表中記錄所述第一哈希值的位置記錄所述i個索引區(qū)域的根節(jié)點的地址;其中,i為整數,并且i不小于2。
      [0033]在第二方面的第一種可能實現方式中,所述接收模塊,還用于接收第二數據寫請求,所述第二數據寫請求攜帶第二值和第二鍵值;其中,所述第二值中包含待寫入數據,所述第二鍵值攜帶所述第二值的存儲地址,并且所述第二鍵值與所述第一鍵值不同;
      [0034]所述存儲模塊,還用于根據所述第二鍵值中的存儲地址存儲所述第二值;
      [0035]所述運算模塊,還用于計算所述第二鍵值的哈希值得到所述第一哈希值;
      [0036]所述存儲模塊,還用于將所述第二鍵值存儲在所述第一哈希值對應的所述i個索引區(qū)域的每一個根節(jié)點的葉子節(jié)點中。
      [0037]結合第二方面的第一種可能實現方式,在第二方面的第二種可能實現方式中,所述接收模塊,還用于接收第一數據讀請求,所述第一數據讀請求攜帶所述第一鍵值;
      [0038]所述裝置還包括:
      [0039]查詢模塊,用于計算所述第一鍵值獲得所述第一哈希值,根據所述第一哈希值在所述索引表中查找所述根節(jié)點的地址;
      [0040]訪問模塊,用于根據所述根節(jié)點的地址訪問所述第一鍵值,獲得所述第一鍵值中攜帶的所述第一值的存儲地址;
      [0041]讀取模塊,用于根據所述第一值的存儲地址讀取所述第一值。
      [0042]結合第二方面的第二種可能實現方式,在第二方面的第三種可能實現方式中,所述訪問模塊具體用于:
      [0043]根據第一索引區(qū)域中的根節(jié)點的地址訪問所述第一鍵值,當根據所述第一索引區(qū)域中的根節(jié)點的地址訪問所述第一鍵值失敗時,則從(1-Ι)個索引區(qū)域中的根節(jié)點地址中選擇下一個地址訪問所述第一鍵值,直到根據所述(1-Ι)個索引區(qū)域中的根節(jié)點地址中一個訪問所述第一鍵值成功時,獲得所述第一鍵值中攜帶的所述第一值的存儲地址;其中,所述第一索引區(qū)域中的根節(jié)點為所述i個索引區(qū)域的根節(jié)點中的任意一個。
      [0044]結合第二方面的第一種可能實現方式,在第二方面的第四種可能實現方式中,所述接收模塊,還用于接收第三數據讀請求,所述第三數據讀請求攜帶第三鍵值,所述第三鍵值為所述第一鍵值或所述第二鍵值;
      [0045]所述運算模塊,還用于計算所述第三鍵值獲得所述第一哈希值;[0046]所述查詢模塊,還用于根據所述第一哈希值查詢所述索引表,以獲得所述第三鍵值在所述i個索引區(qū)域中所述根節(jié)點的地址以訪問所述i個索引區(qū)域中所述第三鍵值所對應的節(jié)點;
      [0047]所述訪問模塊,還用于當第m個索引區(qū)域中的所述第三鍵值對應的節(jié)點訪問失敗,訪問從第η個索引區(qū)域中的所述第三鍵值對應的節(jié)點,獲得所述第三鍵值中存儲的第三值的存儲地址;
      [0048]所述讀取模塊,還用于根據所述第三值的存儲地址讀取所述第三值;
      [0049]所述裝置還包括:
      [0050]復制模塊,用于復制所述第η個索引區(qū)域中的所述第三鍵值對應的節(jié)點及其葉子節(jié)點至所述第m個索引區(qū)域中以作為所述第m個索引區(qū)域中所述第三鍵值對應的節(jié)點及其葉子節(jié)點。
      [0051]本實施例提供的基于互聯網協(xié)議IP盤的數據處理方法,通過接收攜帶第一值和第一鍵值的第一數據寫請求,將第一鍵值存儲在i個索引區(qū)域的根節(jié)點中,并根據第一鍵值中攜帶的存儲地址將第一值存儲在IP硬盤對應的位置,對第一鍵值進行哈希運算獲得第一哈希值,在索引表中記錄第一哈希值,并且在索引表中記錄該第一哈希值的位置記錄i個索引區(qū)域的根節(jié)點的地址。由于在多個索引區(qū)域存儲鍵值,當某一個索引區(qū)域出現故障時,可以通過索引區(qū)域讀取鍵值,從而讀取該鍵值對應的數據,因此有效地提升了數據存儲的可靠性。
      【專利附圖】

      【附圖說明】
      [0052]為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
      [0053]圖1為現有技術中查找Key以獲取對應的Value中的數據的原理示意圖;
      [0054]圖2為本發(fā)明一實施例提供的基于互聯網協(xié)議IP盤的數據處理方法流程圖;
      [0055]圖3為本發(fā)明實施例中節(jié)點的結構示意圖;
      [0056]圖4為本發(fā)明另一實施例提供的基于互聯網協(xié)議IP盤的數據處理方法流程圖;
      [0057]圖5為本發(fā)明實施例中將Key存儲在i個索引區(qū)域中的原理示意圖;
      [0058]圖6為本發(fā)明又一實施例提供的基于互聯網協(xié)議IP盤的數據處理方法流程圖;
      [0059]圖7為本發(fā)明再一實施例提供的基于互聯網協(xié)議IP盤的數據處理方法流程圖;
      [0060]圖8為本發(fā)明一實施例提供的基于互聯網協(xié)議IP盤的數據處理裝置結構示意圖;
      [0061]圖9為本發(fā)明另一實施例提供的基于互聯網協(xié)議IP盤的數據處理裝置結構示意圖;
      [0062]圖10為本發(fā)明又一實施例提供的基于互聯網協(xié)議IP盤的數據處理裝置結構示意圖。
      【具體實施方式】[0063]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
      [0064]圖2為本發(fā)明一實施例提供的基于互聯網協(xié)議IP盤的數據處理方法流程圖。如圖2所示,本實施例的數據處理的方法包括如下步驟。
      [0065]步驟101、接收第一數據寫請求,該第一數據寫請求攜帶第一值(Value)和第一鍵值(Key);其中,第一值中包含待寫入數據,第一鍵值攜帶第一值的存儲地址。
      [0066]在本實施例中,當其它設備(PC、處理器、存儲器等)需要對IP硬盤進行寫數據操作時,通過IP協(xié)議向IP硬盤發(fā)送第一數據寫請求,該第一數據寫請求中包括第一值和第一鍵值。第一值中包含待寫入IP硬盤中的數據,第一鍵值攜帶第一值的存儲地址。
      [0067]步驟102、將第一鍵值存儲在i個索引區(qū)域的根節(jié)點中,根據第一鍵值中攜帶的存儲地址存儲第一值。
      [0068]在本實施例中,將第一鍵值中存儲在i個索引區(qū)域對應的根節(jié)點中,其中,i為整數,并且i不小于2,即將第一鍵值備份存儲在多個索引區(qū)域對應的根節(jié)點中。根據第一鍵值中攜帶的存儲地址,將第一值存儲在IP硬盤中該存儲地址對應的位置。
      [0069]本實施例中需要說明的是,每個索引區(qū)域中不僅只有一個根節(jié)點,還包括根節(jié)點的葉子節(jié)點。圖3為本發(fā)明實施例中節(jié)點的結構示意圖。如圖3所示,每個節(jié)點包括:鍵值(Key)、第一值的存儲地址(Value’ Offset)、該節(jié)點的左側葉子節(jié)點的偏移位置(Left’ Offset)和該節(jié)點的右側葉子節(jié)點的偏移位置(Rigth’ Offset)。本實施例中將第一鍵值存儲在多個索引區(qū)域中。
      [0070]步驟103、對第一鍵值進行哈希運算獲得第一哈希值。
      [0071]在本實施例中,對該第一鍵值進行哈希運算獲得的第一哈希值在索引表中不存在哈希沖突,即在索引表中沒有該第一哈希值。
      [0072]步驟104、在索引表中記錄第一哈希值,并且在索引表中記錄該第一哈希值的位置記錄i個索引區(qū)域的根節(jié)點的地址。
      [0073]本實施例中,將第一哈希值存儲在索引表中,并獲取i個索引區(qū)域中的每個根節(jié)點地址,將根節(jié)點的地址對應存儲在在索引表中存儲第一哈希值的位置,即第一哈希值對應i個索引區(qū)域的根節(jié)點的地址。
      [0074]本實施例提供的基于互聯網協(xié)議IP盤的數據處理方法,通過接收攜帶第一值和第一鍵值的第一數據寫請求,將第一鍵值存儲在i個索引區(qū)域的根節(jié)點中,并根據第一鍵值中攜帶的存儲地址將第一值存儲在IP硬盤對應的位置,對第一鍵值進行哈希運算獲得第一哈希值,在索引表中記錄第一哈希值,并且在索引表中記錄該第一哈希值的位置記錄i個索引區(qū)域的根節(jié)點的地址。相較于現有技術,由于在多個索引區(qū)域的根節(jié)點中存儲第一鍵值,防止單個第一鍵值所在索引區(qū)域故障導致無法讀取數據的問題,有效地提升了數據存儲的可靠性,而且,僅將占用空間小的第一鍵值存儲在多個存儲區(qū)中,相對于第一鍵值對應的第一值,占用空間少。
      [0075]基于上述實施例,圖4為本發(fā)明另一實施例提供的基于互聯網協(xié)議IP盤的數據處理方法流程圖。在上述實施例的基礎上,如圖4所示,本實施例的數據處理的方法還包括如下步驟。
      [0076]步驟105、接收第二數據寫請求,該第二數據寫請求攜帶第二值和第二鍵值;其中,第二值中包含待寫入數據,第二鍵值攜帶第二值的存儲地址,并且第二鍵值與第一鍵值不同。
      [0077]在本實施例中,通過IP協(xié)議向IP硬盤發(fā)送一個第二數據寫請求,該第二數據寫請求中包括第二值和第二鍵值。第二值中包含了待寫入IP硬盤中的數據,第二鍵值攜帶第二值的存儲地址,并且第二鍵值與第一鍵值不同。
      [0078]步驟106、根據第二鍵值中的存儲地址存儲第二值。
      [0079]在本實施例中,當IP硬盤接收到第二數據寫請求后,根據第二鍵值中攜帶的存儲地址將第二值存儲到IP硬盤對應的位置。
      [0080]步驟107、計算第二鍵值的哈希值得到第一哈希值。
      [0081]在本實施例中,通過哈希算法計算第二鍵值的哈希值,該哈希值在索引表中存在哈希沖突,即該第二鍵值的哈希值和第一鍵值的哈希值相同,都為第一哈希值。
      [0082]步驟108、將第二鍵值存儲在第一哈希值對應的i個索引區(qū)域的每一個根節(jié)點的葉子節(jié)點中。
      [0083]在本實施例中,以i = 2為例具體說明該技術方案:圖5為本發(fā)明實施例中將Key存儲在i個索引區(qū)域中的原理示意圖,如圖5所示,在第一索引區(qū)域中,節(jié)點I為根節(jié)點,Keyl存儲在節(jié)點I中。第二鍵值中包含Key2和第二值對應的存儲地址,比較Key2和Keyl的大小,如果Key2大于Keyl,則將第二鍵值存儲到節(jié)點I的左側葉子節(jié)點2中,并將節(jié)點2的偏移位置存儲到節(jié)點I中;如果Key2小于Keyl,則將第二鍵值存儲在節(jié)點I的右側葉子節(jié)點5中,并將節(jié)點5的偏移位置存儲到節(jié)點I中。類似的,按照上述方法將第二鍵值存儲到第二索引區(qū)域中。在后續(xù)接收到第二數據寫請求之后,按照上述方法將第二鍵值存儲到這兩個索引區(qū)域中對應的葉子節(jié)點中。
      [0084]本實施例提供的基于互聯網協(xié)議IP盤的數據處理方法,通過接收包含第二值和第二鍵值的第二數據寫請求,根據第二鍵值中的存儲地址將第二值存儲在IP硬盤中對應的位置,計算第二鍵值的哈希值得到第一哈希值,將第二鍵值存儲在第一哈希值對應的i個索引區(qū)域的每一個根節(jié)點的葉子節(jié)點中。在多個索引區(qū)域的根節(jié)點中的葉子節(jié)點中存儲第二鍵值,對第二鍵值進行備份存儲,有效地提升了數據存儲的可靠性,將第二鍵值存儲在多個索引區(qū)域中,相對于第二鍵值對應的第二值,占用空間少。
      [0085]基于上述實施例,圖6為本發(fā)明又一實施例提供的基于互聯網協(xié)議IP盤的數據處理方法流程圖。如圖6所示,本實施例的數據處理的方法包括如下步驟。
      [0086]步驟201、接收第一數據讀請求,該第一數據讀請求攜帶第一鍵值。
      [0087]在本實施例中,通過IP協(xié)議向IP硬盤發(fā)送一個第一數據讀請求,該第一數據讀請求中攜帶第一鍵值(Key)。
      [0088]步驟202、計算第一鍵值獲得第一哈希值,根據第一哈希值在索引表中查找根節(jié)點的地址。
      [0089]在本實施例中,通過哈希算法計算第一鍵值的哈希值,即第一哈希值,在索引表中查找該第一哈希值,并在存儲第一哈希值的位置獲取多個索引區(qū)域中的任意一個索引區(qū)域對應的根節(jié)點的地址。[0090]步驟203、根據根節(jié)點的地址訪問第一鍵值,獲得第一鍵值中攜帶的第一值的存儲地址。
      [0091 ] 在本實施例中,獲取到任意一個索引區(qū)域的根節(jié)點的地址后,訪問該根節(jié)點,獲取根節(jié)點中第一鍵值所攜帶的待讀取的數據的存儲地址,即第一值的存儲地址。
      [0092]步驟204、根據第一值的存儲地址讀取第一值。
      [0093]本實施例中,在根節(jié)點中獲取到第一值的存儲地址后,根據該存儲地址讀取第一值。
      [0094]優(yōu)選地,本實施例中步驟203的具體包括如下方式:根據第一索引區(qū)域中的根節(jié)點的地址訪問第一鍵值,當根據第一索引區(qū)域中的根節(jié)點的地址訪問第一鍵值失敗時,則從(1-Ι)個索引區(qū)域中的根節(jié)點地址中選擇下一個地址訪問第一鍵值,直到根據(1-Ι)個索引區(qū)域中的根節(jié)點地址中一個訪問第一鍵值成功時,獲得第一鍵值中存儲的第一值的存儲地址。其中,第一索引區(qū)域中的根節(jié)點為i個索引區(qū)域的根節(jié)點中的任意一個,即獲取索引區(qū)域的根節(jié)點時不受索引區(qū)域序號的限制,可隨機獲取i個索引區(qū)域中的任意一個索引區(qū)域的根節(jié)點。
      [0095]具體的,以i = 6為例詳細說明該技術方案,隨機獲取任意一個索引區(qū)域的根節(jié)點的地址,如獲取到的是第3索引區(qū)域的根節(jié)點的地址,訪問第3索引區(qū)域根節(jié)點中的第一鍵值時,發(fā)現無法查找到該根節(jié)點或者無法獲取該根節(jié)點的第一鍵值,則訪問失敗,返回到索引表中,在索引表中存儲第一哈希值的位置獲取除了第3索引區(qū)域以外的其它5個索引區(qū)域中的任意一個索引區(qū)域的根節(jié)點的地址,如第2索引區(qū)的根節(jié)點,再訪問該根節(jié)點的第一鍵值,依照此方法,直至在某一個索引區(qū)域中的根節(jié)點中成功訪問第一鍵值,獲取第一鍵值中攜帶的第一值的存儲地址為止。
      [0096]可選地,本實施例的步驟201?步驟204為上述圖2所述實施例中步驟104或上述圖4所述實施例中步驟108之后執(zhí)行。
      [0097]本實施例提供的基于互聯網協(xié)議IP盤的數據處理方法,接收第一數據讀請求,該第一數據讀請求攜帶第一鍵值,計算第一鍵值獲得第一哈希值,根據第一哈希值在索引表中查找根節(jié)點的地址,根據根節(jié)點的地址訪問第一鍵值,獲得第一鍵值中攜帶的第一值的存儲地址,根據第一值的存儲地址讀取第一值,若在其中某一索引區(qū)域的根節(jié)點中訪問第一鍵值失敗,則獲取其它索引區(qū)域的根節(jié)點的地址訪問第一鍵值。由于在多個索引區(qū)域的根節(jié)點中存儲第一鍵值,可以從多個索引區(qū)域中訪問第一鍵值,并通過第一鍵值攜帶的存儲地址讀取第一值,當某一索引區(qū)域的根節(jié)點出現故障時,可從其他索引區(qū)域的根節(jié)點中訪問第一鍵值,從而有效地提升了數據存儲和讀取的可靠性。
      [0098]圖7為本發(fā)明再一實施例提供的基于互聯網協(xié)議IP盤的數據處理方法流程圖。如圖7所示,本實施例的數據處理的方法包括如下步驟。
      [0099]步驟301、接收第一數據寫請求,該第一數據寫請求攜帶第一值和第一鍵值;其中,第一值中包含待寫入數據,第一鍵值攜帶第一值的存儲地址。
      [0100]步驟302、將第一鍵值存儲在i個索引區(qū)域的根節(jié)點中,根據第一鍵值中攜帶的存儲地址存儲第一值。
      [0101]步驟303、對第一鍵值進行哈希運算獲得第一哈希值。
      [0102]步驟304、在索引表中記錄第一哈希值,并且在索引表中記錄該第一哈希值的位置記錄i個索引區(qū)域的根節(jié)點的地址。
      [0103]步驟305、接收第二數據寫請求,該第二數據寫請求攜帶第二值和第二鍵值;其中,第二值中包含待寫入數據,第二鍵值攜帶第二值的存儲地址,并且第二鍵值與第一鍵值不同。
      [0104]步驟306、根據第二鍵值中的存儲地址存儲第二值。
      [0105]步驟307、計算第二鍵值的哈希值得到第一哈希值。
      [0106]步驟308、將第二鍵值存儲在第一哈希值對應的i個索引區(qū)域的每一個根節(jié)點的葉子節(jié)點中。
      [0107]本實施例中,步驟301?步驟308和圖1、圖2所述實施例中的步驟101?步驟108相同,此處不再贅述。
      [0108]步驟309、接收第三數據讀請求,該第三數據讀請求攜帶第三鍵值,第三鍵值為第一鍵值或第二鍵值。
      [0109]本實施例中,第三數據讀請求攜帶第三鍵值,第三鍵值包括第一鍵值或者第二鍵值。
      [0110]步驟310、計算第三鍵值獲得第一哈希值。
      [0111]本實施例中,計算第三鍵值中第一鍵值對應的哈希值,或者,計算第三鍵值中第二鍵值對應的哈希值,第一鍵值的哈希值和第二鍵值的哈希值均為第一哈希值。
      [0112]步驟311、根據第一哈希值查詢索引表,以獲得第三鍵值在i個索引區(qū)域中根節(jié)點的地址以訪問i個索引區(qū)域中第三鍵值所對應的節(jié)點。
      [0113]本實施例中,當第三鍵值為第一鍵值時,則獲取任意一個索引區(qū)域的根節(jié)點的地址,訪問該根節(jié)點中的第一鍵值。
      [0114]當所述第三鍵值為第二鍵值時,則獲取任意一個索引區(qū)域的根節(jié)點的地址,從該根節(jié)點開始訪問,具體訪問過程如下:如圖5所示,以第二索引區(qū)域為例,從其中的根節(jié)點即節(jié)點I開始,即先讀取節(jié)點I中的Key,然后判斷節(jié)點I中的Key是否與第二鍵值中的Key相等,若節(jié)點I中的Key與第二鍵值中的Key相等,則該節(jié)點即為第三鍵值對應的節(jié)點;若第二鍵值中的Key大于節(jié)點I中的Key,則獲取節(jié)點I的Left’ Offset,找到節(jié)點I的左側葉子節(jié)點即節(jié)點2,和節(jié)點2中的Key比較,其比較方法和上述方法相同;若第二鍵值中的Key小于節(jié)點I中的Key,則獲取節(jié)點I中的Right’Offset,找到節(jié)點I的右側葉子節(jié)點即節(jié)點5,和節(jié)點5中的Key進行比較,比較方法和上述方法相同。以此類推,直到在第二索引區(qū)域中找到與第二鍵值中的Key相等的節(jié)點為止。
      [0115]步驟312、當第m個索引區(qū)域中的第三鍵值對應的節(jié)點訪問失敗,訪問從第η個索引區(qū)域中的第三鍵值對應的節(jié)點,獲得第三鍵值中存儲的第三值的地址,根據第三值的地
      址讀取第二值。
      [0116]本實施例中,以m = 2, η = 5為例說明該技術方案,當在第二個索引區(qū)中訪問第三鍵值對應的節(jié)點時,發(fā)現該節(jié)點無法獲取或者無法獲取該節(jié)點中的存儲的Key,則訪問失敗,返回到索引表中,查找到該第三鍵值對應的第一哈希值的存儲位置,隨機獲取除第二個索引區(qū)域以外的任意一個索引區(qū)域,如第五個索引區(qū)域,則在第五索引區(qū)域中從根節(jié)點開始,訪問第三鍵值對應的節(jié)點,找到該節(jié)點后,獲取存儲在該節(jié)點中的第三值的地址,根據第三值的地址讀取第三值。[0117]其中,訪問第三鍵值對應的節(jié)點的方法與步驟311相同,此處不再贅述。
      [0118]步驟313、復制第η個索引區(qū)域中的第三鍵值對應的節(jié)點及其葉子節(jié)點至第m個索引區(qū)域中以作為第m個索引區(qū)域中第三鍵值對應的節(jié)點及其葉子節(jié)點。
      [0119]本實施例中,和步驟312相對應,以m = 2,η = 5為例說明該技術方案,復制第五個索引區(qū)域中第三鍵值對應的節(jié)點中的Key和Value’ Offset構成一個新的節(jié)點,同樣將該節(jié)點的子樹的各節(jié)點(或稱葉子節(jié)點)的Key和Value’ Offset復制構成該新節(jié)點的子樹的各個節(jié)點,然后將新的節(jié)點和其子樹的各個節(jié)點構成一個新的二叉樹,并為該新的二叉樹中的每個節(jié)點分配一個新的偏移位置,在相應的父節(jié)點中更新Left’ Offset和Rigth’ Offset,再用該新的二叉樹替換第二索引區(qū)域中的第三鍵值對應的節(jié)點和其子樹節(jié)點所構建的二叉樹。
      [0120]本實施例提供的基于互聯網協(xié)議IP盤的數據處理方法,通過接收到的第一數據寫請求和第二數據寫請求,將第一鍵值存儲在i個索引區(qū)域的根節(jié)點中,第二鍵值存儲在i個索引區(qū)域的根節(jié)點的葉子節(jié)點中,當接收攜帶第三鍵值的第三數據讀請求時,計算第三鍵值獲得第一哈希值,根據第一哈希值查詢索引表,獲取第三鍵值在i個索引區(qū)域中根節(jié)點的地址,訪問第三鍵值對應的根節(jié)點,當第m個索引區(qū)域中的第三鍵值對應的節(jié)點訪問失敗,訪問從第η個索引區(qū)域中的第三鍵值對應的節(jié)點,獲得第三鍵值中存儲的第三值的地址,根據第三值的地址讀取第三值,并且,復制第η個索引區(qū)域中的第三鍵值對應的節(jié)點及其葉子節(jié)點至第m個索引區(qū)域中以作為第m個索引區(qū)域中第三鍵值對應的節(jié)點及其葉子節(jié)點。由于在多個索引區(qū)域存儲第一鍵值和第二鍵值,當某一個索引區(qū)域的節(jié)點出現故障時,可以通過其他索引區(qū)域獲取與第一鍵值或者第二鍵值,從而根據鍵值獲取待讀取的數據,因此有效地提升了數據存儲的可靠性。并且,第一鍵值和第二鍵值存儲在多個存儲區(qū)中,相對于鍵值對應的值,占用空間少。
      [0121]圖8為本發(fā)明一實施例提供的基于互聯網協(xié)議IP盤的數據處理裝置結構示意圖。如圖8所示,該裝置包括接收模塊11、存儲模塊12、運算模塊13和記錄模塊14。接收模塊11用于接收第一數據寫請求,第一數據寫請求攜帶第一值和第一鍵值;其中,第一值中包含待寫入數據,第一鍵值攜帶第一值的存儲地址。存儲模塊12用于將第一鍵值存儲在i個索引區(qū)域的根節(jié)點中,根據第一鍵值中攜帶的存儲地址存儲第一值。運算模塊13用于對第一鍵值進行哈希運算獲得第一哈希值。記錄模塊14用于在索引表中記錄第一哈希值,并且在索引表中記錄第一哈希值的位置記錄i個索引區(qū)域的根節(jié)點的地址;其中,i為整數,并且i不小于2。
      [0122]本實施例中的數據的處理裝置可以執(zhí)行圖2所示方法實施例的技術方案,其實現原理和有益效果均相同,此處不再贅述。
      [0123]進一步的,在本發(fā)明的另一個實施例中,在上述圖8所實施例的基礎上,本實施例接收模塊11還用于接收第二數據寫請求,第二數據寫請求攜帶第二值和第二鍵值;其中,第二值中包含待寫入數據,第二鍵值攜帶第二值的存儲地址,并且第二鍵值與第一鍵值不同。存儲模塊12還用于根據第二鍵值中的存儲地址存儲第二值。運算模塊13還用于計算第二鍵值的哈希值得到第一哈希值。存儲模塊14還用于將第二鍵值存儲在第一哈希值對應的i個索引區(qū)域的每一個根節(jié)點的葉子節(jié)點中。
      [0124]本實施例中的裝置可以執(zhí)行圖4所示方法實施例的技術方案,其實現原理和有益效果均相同,此處不再贅述。
      [0125]圖9為本發(fā)明另一實施例提供的基于互聯網協(xié)議IP盤的數據處理裝置結構示意圖。在上述圖8所實施例的基礎上,如圖9所示,該裝置還包括查詢模塊21、訪問模塊22和讀取模塊23。其中,接收模塊11還用于接收第一數據讀請求,第一數據讀請求攜帶第一鍵值。查詢模塊21用于計算第一鍵值獲得第一哈希值,根據第一哈希值在索引表中查找根節(jié)點的地址。訪問模塊22用于根據根節(jié)點的地址訪問第一鍵值,獲得第一鍵值中攜帶的第一值的存儲地址。讀取模塊23用于根據第一值的存儲地址讀取第一值。
      [0126]優(yōu)選地,在上述圖9所述實施例的基礎上,訪問模塊22具體用于:根據第一索引區(qū)域中的根節(jié)點的地址訪問第一鍵值,當根據第一索引區(qū)域中的根節(jié)點的地址訪問第一鍵值失敗時,則從(1-Ι)個索引區(qū)域中的根節(jié)點地址中選擇下一個地址訪問第一鍵值,直到根據(1-1)個索引區(qū)域中的根節(jié)點地址中一個訪問第一鍵值成功時,獲得第一鍵值中攜帶的第一值的存儲地址;其中,第一索引區(qū)域中的根節(jié)點為i個索引區(qū)域的根節(jié)點中的任意一個。
      [0127]本實施例提供的基于互聯網協(xié)議IP盤的數據處理裝置,通過接收模塊11接收攜帶第一鍵值的第一數據讀請求,查詢模塊21計算第一鍵值獲得第一哈希值,根據第一哈希值在索引表中查找根節(jié)點的地址,訪問模塊22對第一鍵值進行訪問,獲得第一值得存儲地址,通過讀取模塊23根據第一值的存儲地址讀取第一值,其中,當根據第一索引區(qū)域中的根節(jié)點的地址訪問第一鍵值失敗時,則從(1-Ι)個索引區(qū)域中的根節(jié)點地址中選擇下一個地址訪問第一鍵值,直到根據(1-1)個索引區(qū)域中的根節(jié)點地址中一個訪問第一鍵值成功時,獲得第一鍵值中攜帶的第一值的存儲地址。相較于現有技術,由于在IP硬盤內部多個索引區(qū)域的根節(jié)點中存儲第一鍵值,可以從多個索引區(qū)域中訪問第一鍵值,并通過第一鍵值攜帶的存儲地址讀取第一值,當某一索引區(qū)域的根節(jié)點出現故障時,可從其他索引區(qū)域的根節(jié)點中訪問第一鍵值,從而有效地提升了數據存儲和讀取的可靠性。
      [0128]圖10為本發(fā)明又一實施例提供的基于互聯網協(xié)議IP盤的數據處理裝置結構示意圖。在圖9所述實施例的基礎上,如圖10所示,該裝置還包括復制模塊24。
      [0129]本實施例中,接收模塊11還用于接收第三數據讀請求,第三數據讀請求攜帶第三鍵值,第三鍵值為第一鍵值或第二鍵值。運算模塊13還用于計算第三鍵值獲得第一哈希值。查詢模塊21還用于根據第一哈希值查詢索引表,以獲得第三鍵值在i個索引區(qū)域中根節(jié)點的地址以訪問i個索引區(qū)域中第三鍵值所對應的節(jié)點。訪問模塊22還用于當第m個索引區(qū)域中的第三鍵值對應的節(jié)點訪問失敗,訪問從第η個索引區(qū)域中的第三鍵值對應的節(jié)點,獲得第三鍵值中存儲的第三值的存儲地址。讀取模塊23還用于根據第三值的存儲地址讀取第三值。復制模塊24用于復制第η個索引區(qū)域中的第三鍵值對應的節(jié)點及其葉子節(jié)點至第m個索引區(qū)域中以作為第m個索引區(qū)域中第三鍵值對應的節(jié)點及其葉子節(jié)點。
      [0130]本實施例中的數據的處理裝置可以執(zhí)行圖7所示方法實施例的技術方案,其實現原理和有益效果均相同,此處不再贅述。
      [0131]本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。[0132]最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的范圍。
      【權利要求】
      1.一種基于互聯網協(xié)議IP盤的數據處理方法,其特征在于,所述方法包括: 接收第一數據寫請求,所述第一數據寫請求攜帶第一值和第一鍵值;其中,所述第一值中包含待寫入數據,所述第一鍵值攜帶所述第一值的存儲地址; 將所述第一鍵值存儲在i個索引區(qū)域的根節(jié)點中,根據所述第一鍵值中攜帶的存儲地址存儲所述第一值; 對所述第一鍵值進行哈希運算獲得第一哈希值; 在索引表中記錄所述第一哈希值,并且在所述索引表中記錄所述第一哈希值的位置記錄所述i個索引區(qū)域的根節(jié)點的地址;其中,I為整數,并且i不小于2。
      2.根據權利要求1所述的方法,其特征在于,還包括,接收第二數據寫請求,所述第二數據寫請求攜帶第二值和第二鍵值;其中,所述第二值中包含待寫入數據,所述第二鍵值攜帶所述第二值的存儲地址,并且所述第二鍵值與所述第一鍵值不同; 根據所述第二鍵值中的存儲地址存儲所述第二值; 計算所述第二鍵值的哈希值得到所述第一哈希值; 將所述第二鍵值存儲在所述第一哈希值對應的所述i個索引區(qū)域的每一個根節(jié)點的葉子節(jié)點中。
      3.根據權利要求1或2所述的方法,其特征在于,還包括: 接收第一數據讀請求,所述第一數據讀請求攜帶所述第一鍵值; 計算所述第一鍵值獲得所述第一哈希值,根據所述第一哈希值在所述索引表中查找所述根節(jié)點的地址; 根據所述根節(jié)點的地址訪問所述第一鍵值,獲得所述第一鍵值中攜帶的所述第一值的存儲地址; 根據所述第一值的存儲地址讀取所述第一值。
      4.根據權利要求3所述的方法,其特征在于,所述根據所述根節(jié)點的地址訪問所述第一鍵值,獲得所述第一鍵值中攜帶的所述第一值的存儲地址,具體包括: 根據第一索引區(qū)域中的根節(jié)點的地址訪問所述第一鍵值,當根據所述第一索引區(qū)域中的根節(jié)點的地址訪問所述第一鍵值失敗時,則從(1-Ι)個索引區(qū)域中的根節(jié)點地址中選擇下一個地址訪問所述第一鍵值,直到根據所述(1-Ι)個索引區(qū)域中的根節(jié)點地址中一個訪問所述第一鍵值成功時,獲得所述第一鍵值中攜帶的所述第一值的存儲地址;其中,所述第一索引區(qū)域中的根節(jié)點為所述i個索引區(qū)域的根節(jié)點中的任意一個。
      5.根據權利要求2所述的方法,其特征在于,所述方法還包括:接收第三數據讀請求,所述第三數據讀請求攜帶第三鍵值,所述第三鍵值為所述第一鍵值或所述第二鍵值; 計算所述第三鍵值獲得所述第一哈希值; 根據所述第一哈希值查詢所述索引表,以獲得所述第三鍵值在所述i個索引區(qū)域中所述根節(jié)點的地址以訪問所述i個索引區(qū)域中所述第三鍵值所對應的節(jié)點; 當第m個索引區(qū)域中的所述第三鍵值對應的節(jié)點訪問失敗,訪問從第η個索引區(qū)域中的所述第三鍵值對應的節(jié)點,獲得所述第三鍵值中存儲的第三值的存儲地址,根據所述第三值的存儲地址讀取所述第三值; 復制所述第η個索引區(qū)域中的所述第三鍵值對應的節(jié)點及其葉子節(jié)點至所述第m個索引區(qū)域中以作為所述第m個索引區(qū)域中所述第三鍵值對應的節(jié)點及其葉子節(jié)點。
      6.一種基于互聯網協(xié)議IP盤的數據處理裝置,其特征在于,包括: 接收模塊,用于接收第一數據寫請求,所述第一數據寫請求攜帶第一值和第一鍵值;其中,所述第一值中包含待寫入數據,所述第一鍵值攜帶所述第一值的存儲地址; 存儲模塊,用于將所述第一鍵值存儲在i個索引區(qū)域的根節(jié)點中,根據所述第一鍵值中攜帶的存儲地址存儲所述第一值; 運算模塊,用于對所述第一鍵值進行哈希運算獲得第一哈希值; 記錄模塊,用于在索引表中記錄所述第一哈希值,并且在所述索引表中記錄所述第一哈希值的位置記錄所述i個索引區(qū)域的根節(jié)點的地址;其中,i為整數,并且i不小于2。
      7.根據權利要求6所述的裝置,其特征在于, 所述接收模塊,還用于接收第二數據寫請求,所述第二數據寫請求攜帶第二值和第二鍵值;其中,所述第二值中包含待寫入數據,所述第二鍵值攜帶所述第二值的存儲地址,并且所述第二鍵值與所述第一鍵值不同; 所述存儲模塊,還用于根據所述第二鍵值中的存儲地址存儲所述第二值; 所述運算模塊,還用于計算所述第二鍵值的哈希值得到所述第一哈希值; 所述存儲模塊,還用于將所述第二鍵值存儲在所述第一哈希值對應的所述i個索引區(qū)域的每一個根節(jié)點的葉子節(jié)點中。
      8.根據權利要求6或7所述的裝置,其特征在于, 所述接收模塊,還用于接收第一數據讀請求,所述第一數據讀請求攜帶所述第一鍵值; 所述裝置還包括: 查詢模塊,用于計算所述第一鍵值獲得所述第一哈希值,根據所述第一哈希值在所述索引表中查找所述根節(jié)點的地址; 訪問模塊,用于根據所述根節(jié)點的地址訪問所述第一鍵值,獲得所述第一鍵值中攜帶的所述第一值的存儲地址; 讀取模塊,用于根據所述第一值的存儲地址讀取所述第一值。
      9.根據權利要求8所述的裝置,其特征在于,所述訪問模塊具體用于: 根據第一索引區(qū)域中的根節(jié)點的地址訪問所述第一鍵值,當根據所述第一索引區(qū)域中的根節(jié)點的地址訪問所述第一鍵值失敗時,則從(1-Ι)個索引區(qū)域中的根節(jié)點地址中選擇下一個地址訪問所述第一鍵值,直到根據所述(1-Ι)個索引區(qū)域中的根節(jié)點地址中一個訪問所述第一鍵值成功時,獲得所述第一鍵值中攜帶的所述第一值的存儲地址;其中,所述第一索引區(qū)域中的根節(jié)點為所述i個索引區(qū)域的根節(jié)點中的任意一個。
      10.根據權利要求7所述的裝置,其特征在于, 所述接收模塊,還用于接收第三數據讀請求,所述第三數據讀請求攜帶第三鍵值,所述第三鍵值為所述第一鍵值或所述第二鍵值; 所述運算模塊,還用于計算所述第三鍵值獲得所述第一哈希值; 所述查詢模塊,還用于根據所述第一哈希值查詢所述索引表,以獲得所述第三鍵值在所述i個索引區(qū)域中所述根節(jié)點的地址以訪問所述i個索引區(qū)域中所述第三鍵值所對應的節(jié)點; 所述訪問模塊,還用于當第m個索引區(qū)域中的所述第三鍵值對應的節(jié)點訪問失敗,訪問從第η個索引區(qū)域中的所述第三鍵值對應的節(jié)點,獲得所述第三鍵值中存儲的第三值的存儲地址; 所述讀取模塊,還用于根據所述第三值的存儲地址讀取所述第三值; 所述裝置還包括: 復制模塊,用于復制所述第η個索引區(qū)域中的所述第三鍵值對應的節(jié)點及其葉子節(jié)點至所述第m個索引區(qū) 域中以作為所述第m個索引區(qū)域中所述第三鍵值對應的節(jié)點及其葉子節(jié)點。
      【文檔編號】H04L29/08GK103973810SQ201410219411
      【公開日】2014年8月6日 申請日期:2014年5月22日 優(yōu)先權日:2014年5月22日
      【發(fā)明者】姜波 申請人:華為技術有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1