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

      一種基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)方法及裝置制造方法

      文檔序號(hào):6511162閱讀:262來(lái)源:國(guó)知局
      一種基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)方法及裝置制造方法
      【專利摘要】本發(fā)明涉及一種基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)方法及裝置,包括以下步驟:在共享內(nèi)存中創(chuàng)建內(nèi)存索引單元和內(nèi)存數(shù)據(jù)塊單元,所述內(nèi)存索引單元用于存儲(chǔ)key在內(nèi)存數(shù)據(jù)塊單元中相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量,所述內(nèi)存數(shù)據(jù)塊單元用于存儲(chǔ)value;采用散列算法計(jì)算value的哈希值;將哈希值作為key在內(nèi)存索引單元中的相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量;若偏移量為零,將value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元的起始位置,若偏移量大于零,執(zhí)行步驟5;比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已有的value與待存儲(chǔ)的value的長(zhǎng)度,根據(jù)比較結(jié)果,將待存儲(chǔ)的value存儲(chǔ)在內(nèi)存數(shù)據(jù)塊單元中。本發(fā)明基于共享內(nèi)存實(shí)現(xiàn)鍵值對(duì)的存儲(chǔ),極大程度的提高了共享內(nèi)存數(shù)據(jù)存儲(chǔ)性能。
      【專利說(shuō)明】一種基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)方法及裝置
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及鍵值對(duì)的數(shù)據(jù)存儲(chǔ),特別涉及一種基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)方法及
      >J-U ρ?α裝直。
      【背景技術(shù)】
      [0002]NoSQL存儲(chǔ)指非關(guān)系型數(shù)據(jù)庫(kù),它以鍵值對(duì)存儲(chǔ),結(jié)構(gòu)不固定,每一個(gè)元組可以有不一樣的字段,每個(gè)元組可以根據(jù)需要增加一些自己的鍵值對(duì),不局限于固定的結(jié)構(gòu),可以減少一些時(shí)間和空間的開(kāi)銷。
      [0003]鍵值存儲(chǔ),即Key-Value存儲(chǔ),簡(jiǎn)稱KV存儲(chǔ)。它是NoSQL存儲(chǔ)的一種方式。它的數(shù)據(jù)按照鍵值對(duì)的形式進(jìn)行組織,索引和存儲(chǔ)。KV存儲(chǔ)非常適合不涉及過(guò)多數(shù)據(jù)關(guān)系業(yè)務(wù)關(guān)系的業(yè)務(wù)數(shù)據(jù),同時(shí)能有效減少讀寫(xiě)磁盤(pán)的次數(shù),比SQL數(shù)據(jù)庫(kù)存儲(chǔ)擁有更好的讀寫(xiě)性能。
      [0004]關(guān)系型數(shù)據(jù)庫(kù)中的表都是存儲(chǔ)一些格式化的數(shù)據(jù)結(jié)構(gòu),每個(gè)元組字段的組成都一樣,即使不是每個(gè)元組都需要所有的字段,但數(shù)據(jù)庫(kù)會(huì)為每個(gè)元組分配所有的字段,這樣的結(jié)構(gòu)可以便于表與表之間進(jìn)行連接等操作,但從另一個(gè)角度來(lái)說(shuō)它也是關(guān)系型數(shù)據(jù)庫(kù)性能瓶頸的一個(gè)因素。它不能滿足以下“高”需求:對(duì)數(shù)據(jù)庫(kù)高并發(fā)讀寫(xiě)的需求;對(duì)海量數(shù)據(jù)的高效率存儲(chǔ)和訪問(wèn)的需求;對(duì)數(shù)據(jù)庫(kù)的高可擴(kuò)展性和高可用性的需求。為了解決這類問(wèn)題,以非關(guān)系數(shù)據(jù)庫(kù)應(yīng)運(yùn)而生,而鍵值對(duì)存儲(chǔ)又是非關(guān)系數(shù)據(jù)庫(kù)性能最高的數(shù)據(jù)存儲(chǔ)之一。

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

      [0005]本發(fā)明所要解決的技術(shù) 問(wèn)題是提供一種提高共享內(nèi)存存儲(chǔ)性能的基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)方法及系統(tǒng)。
      [0006]本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:一種基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)方法,包括以下步驟:
      [0007]步驟1:在共享內(nèi)存中創(chuàng)建內(nèi)存索引單元和內(nèi)存數(shù)據(jù)塊單元,所述內(nèi)存索引單元用于存儲(chǔ)key在內(nèi)存數(shù)據(jù)塊單元中相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量,所述內(nèi)存數(shù)據(jù)塊單元用于存儲(chǔ)value ;
      [0008]步驟2:采用散列算法計(jì)算value的哈希值;
      [0009]步驟3:將哈希值作為key在內(nèi)存索引單元中的相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量;
      [0010]步驟4:若偏移量為零,將value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元的起始位置,若偏移量大于零,執(zhí)行步驟5;
      [0011]步驟5:比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已有的value與待存儲(chǔ)的value的長(zhǎng)度,根據(jù)比較結(jié)果,將待存儲(chǔ)的value存儲(chǔ)在內(nèi)存數(shù)據(jù)塊單元中。
      [0012]本發(fā)明的有益效果是:采用散列算法確定數(shù)據(jù)存儲(chǔ)地址,并且數(shù)據(jù)的存儲(chǔ)通過(guò)靜態(tài)共享內(nèi)存實(shí)現(xiàn),無(wú)需動(dòng)態(tài)分配,極大程度的提高了共享內(nèi)存的存儲(chǔ)性能。
      [0013]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。[0014]進(jìn)一步,比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已存儲(chǔ)的value的長(zhǎng)度是否大于待存儲(chǔ)的value,如若已存儲(chǔ)的value的長(zhǎng)度大于或等于待存儲(chǔ)的value,將待存儲(chǔ)的value覆蓋已存儲(chǔ)的value,否則,將待存儲(chǔ)的value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的末尾。
      [0015]進(jìn)一步,所述value在內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置為內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的首地址加上偏移量。
      [0016]進(jìn)一步,一種基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)裝置,包括創(chuàng)建存儲(chǔ)單元模塊,計(jì)算哈希模塊,偏移量模塊,判斷模塊和比較存儲(chǔ)模塊;
      [0017]所述創(chuàng)建存儲(chǔ)單元模塊,用于在共享內(nèi)存中創(chuàng)建內(nèi)存索引單元和內(nèi)存數(shù)據(jù)塊單元,所述內(nèi)存索引單元用于存儲(chǔ)key在內(nèi)存數(shù)據(jù)塊單元中相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量,所述內(nèi)存數(shù)據(jù)塊單元用于存儲(chǔ)value,將內(nèi)存索引單元信息的信息和內(nèi)存數(shù)據(jù)塊單元的信息發(fā)送給比較存儲(chǔ)模塊;
      [0018]所述計(jì)算哈希模塊,用于采用散列算法計(jì)算value的哈希值,將哈希值發(fā)送給偏移量模塊;
      [0019]所述偏移量模塊,用于接收哈希值,將哈希值作為key在內(nèi)存索引單元中的相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量,將偏移量發(fā)送給判斷模塊;
      [0020]所述判斷模塊,用于接收偏移量,若偏移量為零,將value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元的起始位置,若偏移量大于零,執(zhí)行比較存儲(chǔ)模塊;
      [0021]所述比較存儲(chǔ)模塊,用于接收內(nèi)存索引單元信息的信息和內(nèi)存數(shù)據(jù)塊單元的信息,比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已有的value與待存儲(chǔ)的value的長(zhǎng)度,根據(jù)比較結(jié)果,將待存儲(chǔ)的value存儲(chǔ)在內(nèi)存數(shù)據(jù)塊單元中。
      [0022]采用上述進(jìn)一步方案的有益效果是采用散列算法確定數(shù)據(jù)存儲(chǔ)地址,并且數(shù)據(jù)的存儲(chǔ)通過(guò)靜態(tài)共享內(nèi)存實(shí)現(xiàn),無(wú)需動(dòng)態(tài)分配,極大程度的提高了共享內(nèi)存的存儲(chǔ)性能。
      [0023]進(jìn)一步,比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已存儲(chǔ)的value的長(zhǎng)度是否大于待存儲(chǔ)的value,如若已存儲(chǔ)的value的長(zhǎng)度大于或等于待存儲(chǔ)的value,將待存儲(chǔ)的value覆蓋已存儲(chǔ)的value,否則,將待存儲(chǔ)的value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的末尾。
      [0024]進(jìn)一步,所述value在內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置為內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的首地址加上偏移量。
      【專利附圖】

      【附圖說(shuō)明】
      [0025]圖1為本發(fā)明方法步驟流程圖;
      [0026]圖2為本發(fā)明裝置結(jié)構(gòu)圖。
      [0027]附圖中,各標(biāo)號(hào)所代表的部件列表如下:
      [0028]1、創(chuàng)建存儲(chǔ)單元模塊,2、計(jì)算哈希模塊,3、偏移量模塊,4、判斷模塊,5、比較存儲(chǔ)模塊。
      【具體實(shí)施方式】
      [0029]以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
      [0030]如圖1所示,為本發(fā)明方法步驟流程圖;圖2為本發(fā)明裝置結(jié)構(gòu)圖。
      [0031]實(shí)施例1
      [0032]一種基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)方法,包括以下步驟:
      [0033]步驟1:在共享內(nèi)存中創(chuàng)建內(nèi)存索引單元和內(nèi)存數(shù)據(jù)塊單元,所述內(nèi)存索引單元用于存儲(chǔ)key在內(nèi)存數(shù)據(jù)塊單元中相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量,所述內(nèi)存數(shù)據(jù)塊單元用于存儲(chǔ)value ;
      [0034]步驟2:采用散列算法計(jì)算value的哈希值;
      [0035]步驟3:將哈希值作為key在內(nèi)存索引單元中的相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量;
      [0036]步驟4:若偏移量為零,將value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元的起始位置,若偏移量大于零,執(zhí)行步驟5;
      [0037]步驟5:比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已有的value與待存儲(chǔ)的value的長(zhǎng)度,根據(jù)比較結(jié)果,將待存儲(chǔ)的value存儲(chǔ)在內(nèi)存數(shù)據(jù)塊單元中。
      [0038]所述步驟5具體為:比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已存儲(chǔ)的value的長(zhǎng)度是否大于待存儲(chǔ)的value,如若已存儲(chǔ)的value的長(zhǎng)度大于或等于待存儲(chǔ)的value,將待存儲(chǔ)的value覆蓋已存儲(chǔ)的value,否則,將待存儲(chǔ)的value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的末尾。
      [0039]所述value在內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置為內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的首地址加上偏移量。
      [0040]一種基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)裝置,包括創(chuàng)建存儲(chǔ)單元模塊I,計(jì)算哈希模塊2,偏移量模塊3,判斷模塊4和比較存儲(chǔ)模塊5 ;
      [0041]所述創(chuàng)建存儲(chǔ)單元模塊1,用于在共享內(nèi)存中創(chuàng)建內(nèi)存索引單元和內(nèi)存數(shù)據(jù)塊單元,所述內(nèi)存索引單元用于存儲(chǔ)key在內(nèi)存數(shù)據(jù)塊單元中相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量,所述內(nèi)存數(shù)據(jù)塊單元用于存儲(chǔ)value,將內(nèi)存索引單元信息的信息和內(nèi)存數(shù)據(jù)塊單元的信息發(fā)送給比較存儲(chǔ)模塊5 ;
      [0042]所述計(jì)算哈希模塊2,用于采用散列算法計(jì)算value的哈希值,將哈希值發(fā)送給偏移量模塊3 ;
      [0043]所述偏移量模塊3,用于接收哈希值,將哈希值作為key在內(nèi)存索引單元中的相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量,將偏移量發(fā)送給判斷模塊4 ;
      [0044]所述判斷模塊4,用于接收偏移量,若偏移量為零,將value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元的起始位置,若偏移量大于零,執(zhí)行比較存儲(chǔ)模塊5 ;
      [0045]所述比較存儲(chǔ)模塊5,用于接收內(nèi)存索引單元信息的信息和內(nèi)存數(shù)據(jù)塊單元的信息,比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已有的value與待存儲(chǔ)的value的長(zhǎng)度,根據(jù)比較結(jié)果,將待存儲(chǔ)的value存儲(chǔ)在內(nèi)存數(shù)據(jù)塊單元中。
      [0046]比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已存儲(chǔ)的value的長(zhǎng)度是否大于待存儲(chǔ)的value,如若已存儲(chǔ)的value的長(zhǎng)度大于或等于待存儲(chǔ)的value,將待存儲(chǔ)的value覆蓋已存儲(chǔ)的value,否則,將待存儲(chǔ)的value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的末尾。[0047]所述value在內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置為內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的首地址加上偏移量。
      [0048]本發(fā)明采用共享內(nèi)存作為存儲(chǔ),利用共享內(nèi)存首地址的相對(duì)偏移量作為鍵值對(duì)的
      存儲(chǔ)地址。整個(gè)存儲(chǔ)分兩部分:內(nèi)存索引結(jié)構(gòu)和內(nèi)存數(shù)據(jù)塊結(jié)構(gòu),具體定義如下:
      [0049]
      【權(quán)利要求】
      1.一種基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)方法,其特征在于,包括以下步驟: 步驟1:在共享內(nèi)存中創(chuàng)建內(nèi)存索引單元和內(nèi)存數(shù)據(jù)塊單元,所述內(nèi)存索引單元用于存儲(chǔ)key在內(nèi)存數(shù)據(jù)塊單元中相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量,所述內(nèi)存數(shù)據(jù)塊單元用于存儲(chǔ)value ; 步驟2:采用散列算法計(jì)算value的哈希值; 步驟3:將哈希值作為key在內(nèi)存索引單元中的相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量; 步驟4:若偏移量為零,將value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元的起始位置,若偏移量大于零,執(zhí)行步驟5 ; 步驟5:比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已有的value與待存儲(chǔ)的value的長(zhǎng)度,根據(jù)比較結(jié)果,將待存儲(chǔ)的value存儲(chǔ)在內(nèi)存數(shù)據(jù)塊單元中。
      2.根據(jù)權(quán)利要求1所述的鍵值對(duì)存儲(chǔ)方法,其特征在于:所述步驟5具體為:比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已存儲(chǔ)的value的長(zhǎng)度是否大于待存儲(chǔ)的value,如若已存儲(chǔ)的value的長(zhǎng)度大于或等于待存儲(chǔ)的value,將待存儲(chǔ)的value覆蓋已存儲(chǔ)的value,否則,將待存儲(chǔ)的value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的末尾。
      3.根據(jù)權(quán)利要求1所述的鍵值對(duì)存儲(chǔ)方法,其特征在于:所述value在內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置為內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的首地址加上偏移量。
      4.一種基于共享內(nèi)存的鍵值對(duì)存儲(chǔ)裝置,其特征在于:包括創(chuàng)建存儲(chǔ)單元模塊(1),計(jì)算哈希模塊(2),偏移量模塊(3),判斷模塊(4)和比較存儲(chǔ)模塊(5); 所述創(chuàng)建存儲(chǔ)單元模塊(1),用于在共享內(nèi)存中創(chuàng)建內(nèi)存索引單元和內(nèi)存數(shù)據(jù)塊單元,所述內(nèi)存索引單元用于存儲(chǔ)key在內(nèi)存數(shù)據(jù)塊單元中相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量,所述內(nèi)存數(shù)據(jù)塊單元用于存儲(chǔ)value,將內(nèi)存索引單元信息的信息和內(nèi)存數(shù)據(jù)塊單元的信息發(fā)送給比較存儲(chǔ)模塊(5); 所述計(jì)算哈希模塊(2),用于采用散列算法計(jì)算value的哈希值,將哈希值發(fā)送給偏移量模塊(3); 所述偏移量模塊(3),用于接收哈希值,將哈希值作為key在內(nèi)存索引單元中的相對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域首地址的偏移量,將偏移量發(fā)送給判斷模塊(4); 所述判斷模塊(4),用于接收偏移量,若偏移量為零,將value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元的起始位置,若偏移量大于零,執(zhí)行比較存儲(chǔ)模塊(5); 所述比較存儲(chǔ)模塊(5),用于接收內(nèi)存索引單元信息的信息和內(nèi)存數(shù)據(jù)塊單元的信息,比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已有的value與待存儲(chǔ)的value的長(zhǎng)度,根據(jù)比較結(jié)果,將待存儲(chǔ)的value存儲(chǔ)在內(nèi)存數(shù)據(jù)塊單元中。
      5.根據(jù)權(quán)利要求4所述的鍵值對(duì)存儲(chǔ)裝置,其特征在于:所述比較存儲(chǔ)模塊(5)具體用于:比較與偏移量對(duì)應(yīng)的內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置處已存儲(chǔ)的value的長(zhǎng)度是否大于待存儲(chǔ)的value,如若已存儲(chǔ)的value的長(zhǎng)度大于或等于待存儲(chǔ)的value,將待存儲(chǔ)的value覆蓋已存儲(chǔ)的value,否則,將待存儲(chǔ)的value存儲(chǔ)于內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的末尾。
      6.根據(jù)權(quán)利要求4所述的鍵值對(duì)存儲(chǔ)裝置,其特征在于:所述value在內(nèi)存數(shù)據(jù)塊單元中的存儲(chǔ)位置為內(nèi)存數(shù)據(jù)塊單元中數(shù)據(jù)存儲(chǔ)區(qū)域的首地址加上偏移量。
      【文檔編號(hào)】G06F17/30GK103473314SQ201310412659
      【公開(kāi)日】2013年12月25日 申請(qǐng)日期:2013年9月11日 優(yōu)先權(quán)日:2013年9月11日
      【發(fā)明者】閆永濤 申請(qǐng)人:北京思特奇信息技術(shù)股份有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1