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

      一種面向海量數(shù)據(jù)檢索的多級桶哈希索引方法

      文檔序號:6586276閱讀:378來源:國知局
      專利名稱:一種面向海量數(shù)據(jù)檢索的多級桶哈希索引方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種面向海量數(shù)據(jù)檢索的多級桶哈希索引方法,屬于數(shù)據(jù)存儲、檢索
      技術(shù)領(lǐng)域。
      背景技術(shù)
      檢索效率是海量數(shù)據(jù)存儲、服務(wù)應(yīng)用系統(tǒng)的一個重要指標(biāo),索引技術(shù)在數(shù)據(jù)空間 組織和檢索中具有重要的作用,目前大型數(shù)據(jù)庫和數(shù)據(jù)存儲應(yīng)用系統(tǒng)都支持哈希表索引技 術(shù),數(shù)據(jù)來源迅速增長,如何快捷準(zhǔn)確地獲取感興趣的信息,成為人們關(guān)注的主要問題,因 此對海量等特性對檢索技術(shù)提出了更高的要求,各種信息檢索、過濾、提取技術(shù)逐漸成為研 究的重點。哈希索引的一個非常重要的優(yōu)點是檢索效率不隨數(shù)據(jù)量的增長而增加,影響哈 希性能的主要因素是磁盤讀寫次數(shù)和哈希沖突問題。目前哈希索引主要有兩種方式,靜態(tài) 哈希索引和動態(tài)哈希索引。

      發(fā)明內(nèi)容
      針對現(xiàn)有技術(shù)的不足,本發(fā)明提供一種面向海量數(shù)據(jù)檢索的多級桶哈希索引方 法。 —種面向海量數(shù)據(jù)檢索的多級桶哈希索引方法,包括哈希索引的創(chuàng)建方法和檢索
      方法,哈希索引的創(chuàng)建方法如下 1)對創(chuàng)建索引的信息確定一個關(guān)鍵字; 2)在計算機內(nèi)存中建立索引桶的映射表,即關(guān)鍵字的哈希值h和索引桶在磁盤上 的存儲位置C ; 3)判斷索引桶是否在磁盤上,即判斷存儲位置的值是否等于8個字節(jié)的最大值; 如果等于8個字節(jié)的最大值,說明磁盤上沒有已存儲的索引桶,繼續(xù)步驟4);如果不等于8
      個字節(jié)的最大值,說明磁盤上已有已存儲的索引桶,轉(zhuǎn)步驟(7); 4)磁盤上沒有已存儲的索引桶時,在磁盤上創(chuàng)建一個新的磁盤塊d并存儲信息, 建立一個新的索引桶,確定新的索引桶在磁盤塊d內(nèi)的序號;
      5)更新映射表,使c = d;
      6)更新磁盤,反復(fù)存儲; 7)磁盤上已有已存儲的索引桶時,確定該索引桶在磁盤塊內(nèi)的序號; 8)判斷該索引桶是否有足夠的空間存儲新的關(guān)鍵字,如果有足夠的空間,轉(zhuǎn)步驟
      (6);如果沒有足夠的空間,關(guān)鍵字在該索引桶溢出,存儲到磁盤塊內(nèi)溢出桶;如果磁盤塊
      內(nèi)溢出桶也沒有足夠的空間,關(guān)鍵字在磁盤塊內(nèi)溢出桶溢出,存儲到全局溢出桶。 哈希索引的檢索方法如下 1)對待檢索索引的信息確定一個關(guān)鍵字; 2)讀映射表; 3)判斷待檢索索引桶是否在磁盤上,即判斷存儲位置的值是否等于8個字節(jié)的最
      3大值;如果等于8個字節(jié)的最大值,說明磁盤上沒有已存儲的待檢索索引桶,檢索結(jié)束;如 果不等于8個字節(jié)的最大值,說明磁盤上已有已存儲的待檢索索引桶,轉(zhuǎn)步驟(4);
      4)如果不等于8個字節(jié)的最大值,從映射表內(nèi)獲取待檢索索引桶號和該索引桶所 在磁盤塊的磁盤塊號; 5)桶內(nèi)檢索,如果檢索到,則檢索結(jié)束;如果檢索不到,在磁盤塊內(nèi)溢出桶檢索;
      6)在磁盤塊內(nèi)溢出桶檢索到,檢索結(jié)束;如果在磁盤塊內(nèi)溢出桶檢索不到,則在 全局溢出桶檢索,檢索結(jié)束。
      當(dāng)存儲和檢索海量數(shù)據(jù)時,索引文件本身較大,哈希索引占用空間較大,為了盡量
      減小哈希索引文件,提高磁盤利用效率和文件讀性能,本發(fā)明提供了桶映射表,避免了哈希
      索引文件中的空桶;數(shù)據(jù)檢索時,為了減少磁盤讀次數(shù),本發(fā)明提供了緩存管理,提高了內(nèi)
      存的利用率,當(dāng)桶的數(shù)據(jù)在內(nèi)存中時,直接從內(nèi)存取數(shù)據(jù),避免了磁盤的讀操作;為了減少
      哈希沖突引起的性能下降,本發(fā)明提供了基于磁盤塊結(jié)構(gòu)的塊內(nèi)溢出桶和全局溢出桶,減
      少了沖突引起的磁盤讀寫操作,提高了效率,實驗證明本發(fā)明具有很高的實用價值。 本發(fā)明能充分利用磁盤和內(nèi)存,并減少磁盤讀寫次數(shù),提高海量數(shù)據(jù)存儲、檢索效率。


      圖l為索引創(chuàng)建流程圖。
      圖2為索引檢索流程圖。
      具體實施例方式
      實施例 —種面向海量數(shù)據(jù)檢索的多級桶哈希索引方法,包括哈希索引的創(chuàng)建方法和檢索
      方法,哈希索引的創(chuàng)建方法如下 1)對創(chuàng)建索引的信息確定一個關(guān)鍵字; 2)在計算機內(nèi)存中建立索引桶的映射表,即關(guān)鍵字的哈希值h和索引桶在磁盤上 的存儲位置c ; 3)判斷索引桶是否在磁盤上,即判斷存儲位置的值是否等于8個字節(jié)的最大值; 如果等于8個字節(jié)的最大值,說明磁盤上沒有已存儲的索引桶,繼續(xù)步驟4);如果不等于8 個字節(jié)的最大值,說明磁盤上已有已存儲的索引桶,轉(zhuǎn)步驟(7); 4)磁盤上沒有已存儲的索引桶時,在磁盤上創(chuàng)建一個新的磁盤塊d并存儲信息, 建立一個新的索引桶,確定新的索引桶在磁盤塊d內(nèi)的序號;
      5)更新映射表,使c = d;
      6)更新磁盤,反復(fù)存儲; 7)磁盤上已有已存儲的索引桶時,確定該索引桶在磁盤塊內(nèi)的序號; 8)判斷該索引桶是否有足夠的空間存儲新的關(guān)鍵字,如果有足夠的空間,轉(zhuǎn)步驟
      (6);如果沒有足夠的空間,關(guān)鍵字在該索引桶溢出,存儲到磁盤塊內(nèi)溢出桶;如果磁盤塊
      內(nèi)溢出桶也沒有足夠的空間,關(guān)鍵字在磁盤塊內(nèi)溢出桶溢出,存儲到全局溢出桶。 哈希索引的檢索方法如下
      1)對待檢索索引的信息確定一個關(guān)鍵字;
      2)讀映射表; 3)判斷待檢索索引桶是否在磁盤上,即判斷存儲位置的值是否等于8個字節(jié)的最 大值;如果等于8個字節(jié)的最大值,說明磁盤上沒有已存儲的待檢索索引桶,檢索結(jié)束;如 果不等于8個字節(jié)的最大值,說明磁盤上已有已存儲的待檢索索引桶,轉(zhuǎn)步驟(4);
      4)如果不等于8個字節(jié)的最大值,從映射表內(nèi)獲取待檢索索引桶號和該索引桶所 在磁盤塊的磁盤塊號; 5)桶內(nèi)檢索,如果檢索到,則檢索結(jié)束;如果檢索不到,在磁盤塊內(nèi)溢出桶檢索;
      6)在磁盤塊內(nèi)溢出桶檢索到,檢索結(jié)束;如果在磁盤塊內(nèi)溢出桶檢索不到,則在 全局溢出桶檢索,檢索結(jié)束。
      權(quán)利要求
      一種面向海量數(shù)據(jù)檢索的多級桶哈希索引方法,其特征在于,方法包括哈希索引的創(chuàng)建方法和檢索方法,哈希索引的創(chuàng)建方法如下1)對創(chuàng)建索引的信息確定一個關(guān)鍵字;2)在計算機內(nèi)存中建立索引桶的映射表,即關(guān)鍵字的哈希值h和索引桶在磁盤上的存儲位置c;3)判斷索引桶是否在磁盤上,即判斷存儲位置的值是否等于8個字節(jié)的最大值;如果等于8個字節(jié)的最大值,說明磁盤上沒有已存儲的索引桶,繼續(xù)步驟4);如果不等于8個字節(jié)的最大值,說明磁盤上已有已存儲的索引桶,轉(zhuǎn)步驟(7);4)磁盤上沒有已存儲的索引桶時,在磁盤上創(chuàng)建一個新的磁盤塊d并存儲信息,建立一個新的索引桶,確定新的索引桶在磁盤塊d內(nèi)的序號;5)更新映射表,使c=d;6)更新磁盤,反復(fù)存儲;7)磁盤上已有已存儲的索引桶時,確定該索引桶在磁盤塊內(nèi)的序號;8)判斷該索引桶是否有足夠的空間存儲新的關(guān)鍵字,如果有足夠的空間,轉(zhuǎn)步驟(6);如果沒有足夠的空間,關(guān)鍵字在該索引桶溢出,存儲到磁盤塊內(nèi)溢出桶;如果磁盤塊內(nèi)溢出桶也沒有足夠的空間,關(guān)鍵字在磁盤塊內(nèi)溢出桶溢出,存儲到全局溢出桶。哈希索引的檢索方法如下1)對待檢索索引的信息確定一個關(guān)鍵字;2)讀映射表;3)判斷待檢索索引桶是否在磁盤上,即判斷存儲位置的值是否等于8個字節(jié)的最大值;如果等于8個字節(jié)的最大值,說明磁盤上沒有已存儲的待檢索索引桶,檢索結(jié)束;如果不等于8個字節(jié)的最大值,說明磁盤上已有已存儲的待檢索索引桶,轉(zhuǎn)步驟(4);4)如果不等于8個字節(jié)的最大值,從映射表內(nèi)獲取待檢索索引桶號和該索引桶所在磁盤塊的磁盤塊號;5)桶內(nèi)檢索,如果檢索到,則檢索結(jié)束;如果檢索不到,在磁盤塊內(nèi)溢出桶檢索;6)在磁盤塊內(nèi)溢出桶檢索到,檢索結(jié)束;如果在磁盤塊內(nèi)溢出桶檢索不到,則在全局溢出桶檢索,檢索結(jié)束。
      全文摘要
      一種面向海量數(shù)據(jù)檢索的多級桶哈希索引方法,涉及海量數(shù)據(jù)存儲領(lǐng)域。其特征在于(1)提供桶映射表,用于減小哈希索引文件在磁盤上的占用空間(2)哈希索引采用了多級桶,磁盤塊的大小是扇區(qū)大小的整數(shù)倍,每個磁盤塊有一個或多個基本桶,可以有塊內(nèi)溢出桶,具有全局溢出桶(3)提供索引文件的數(shù)據(jù)緩存結(jié)構(gòu),提供了數(shù)據(jù)緩存映射表,數(shù)據(jù)緩存的管理使用緩存映射表上的雙向鏈表實現(xiàn)。本區(qū) 明通過映射表減小索引文件在磁盤上的占用空間,磁盤塊是磁盤扇區(qū)大小的整數(shù)倍,并通過數(shù)據(jù)緩存結(jié)構(gòu)減少了磁盤讀寫次數(shù),提高了內(nèi)存利用效率和數(shù)據(jù)的檢索效率。
      文檔編號G06F17/30GK101782922SQ20091025610
      公開日2010年7月21日 申請日期2009年12月29日 優(yōu)先權(quán)日2009年12月29日
      發(fā)明者劉江, 王希常, 馬磊 申請人:山東山大鷗瑪軟件有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1