国产精品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ù)讀取及寫入的方法和裝置的制造方法

      文檔序號(hào):8487848閱讀:394來源:國(guó)知局
      一種數(shù)據(jù)讀取及寫入的方法和裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)讀取方法,一種數(shù)據(jù)寫入方 法,一種數(shù)據(jù)讀取裝置和一種數(shù)據(jù)寫入裝置。
      【背景技術(shù)】
      [0002] 可靠性及可擴(kuò)展性的海量數(shù)據(jù)存儲(chǔ)對(duì)互聯(lián)網(wǎng)公司來說是一個(gè)巨大的挑戰(zhàn),傳統(tǒng)的 數(shù)據(jù)庫往往很難滿足該需求,并且很多時(shí)候?qū)τ谔囟ǖ南到y(tǒng)絕大部分的檢索都是基于主鍵 的的查詢,在這種情況下使用關(guān)系型數(shù)據(jù)庫將使得效率低下,并且擴(kuò)展也將成為未來很大 的難題。在這樣的情況下,使用Key-value存儲(chǔ)將會(huì)是一個(gè)很好的選擇。
      [0003] 然而,目前大部分的Key-value存儲(chǔ)系統(tǒng)都用于分布式環(huán)境中,數(shù)據(jù)通過socket 傳輸,數(shù)據(jù)處理效率低下。

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

      [0004] 本發(fā)明實(shí)施例所要解決的技術(shù)問題是提供一種數(shù)據(jù)讀取方法及一種數(shù)據(jù)寫入方 法,提高數(shù)據(jù)處理效率。
      [0005] 相應(yīng)的,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)讀取裝置及一種數(shù)據(jù)寫入裝置,用以保 證上述方法的實(shí)現(xiàn)及應(yīng)用。
      [0006] 為了解決上述問題,本發(fā)明公開了一種數(shù)據(jù)讀取方法,所述方法包括:
      [0007] 接收數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求包括目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí);
      [0008] 當(dāng)在預(yù)設(shè)的關(guān)系數(shù)據(jù)表中匹配到所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí)時(shí),獲得與所述目標(biāo)數(shù)據(jù) 記錄標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)記錄虛擬地址;其中,所述關(guān)系數(shù)據(jù)表包括多個(gè)數(shù)據(jù)記錄標(biāo)識(shí)與 對(duì)應(yīng)的數(shù)據(jù)記錄的虛擬地址的關(guān)聯(lián)關(guān)系;
      [0009] 計(jì)算所述目標(biāo)數(shù)據(jù)記錄虛擬地址對(duì)應(yīng)的物理地址,其中,所述物理地址中存儲(chǔ)數(shù) 據(jù)記錄標(biāo)識(shí)與對(duì)應(yīng)的數(shù)據(jù)內(nèi)容的鍵值對(duì);
      [0010] 從所述物理地址中獲得與所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)內(nèi)容。
      [0011] 優(yōu)選地,所述關(guān)系數(shù)據(jù)表保存在共享內(nèi)存中。
      [0012] 優(yōu)選地,所述關(guān)系數(shù)據(jù)表包括數(shù)據(jù)頭、索引記錄以及數(shù)據(jù)記錄;
      [0013] 所述數(shù)據(jù)頭進(jìn)一步包括索引根節(jié)點(diǎn),空閑數(shù)據(jù)記錄索引根節(jié)點(diǎn),空閑索引記錄根 節(jié)點(diǎn);
      [0014] 其中,所述索引根節(jié)點(diǎn)用于記錄數(shù)據(jù)記錄標(biāo)識(shí)及對(duì)應(yīng)的已使用的索引節(jié)點(diǎn)的虛擬 地址;
      [0015] 所述索引記錄用于記錄所述索引節(jié)點(diǎn)的信息,所述索引節(jié)點(diǎn)的信息包括數(shù)據(jù)記錄 標(biāo)識(shí)與對(duì)應(yīng)的數(shù)據(jù)記錄的虛擬地址;
      [0016] 所述數(shù)據(jù)記錄用于記錄已寫入的數(shù)據(jù)記錄標(biāo)識(shí)和對(duì)應(yīng)的數(shù)據(jù)內(nèi)容;
      [0017] 所述空閑數(shù)據(jù)記錄索引根節(jié)點(diǎn)用于記錄未使用的數(shù)據(jù)記錄的虛擬地址;
      [0018] 所述空閑索引記錄根節(jié)點(diǎn)用于記錄未使用的索引節(jié)點(diǎn)的虛擬地址。
      [0019] 優(yōu)選地,所述虛擬地址包括高16位及低16位兩部分,所述高16位中記錄對(duì)應(yīng)的 索引節(jié)點(diǎn)的地址相對(duì)數(shù)據(jù)頭的偏移,所述低16位中記錄所述索引節(jié)點(diǎn)內(nèi)部的偏移。
      [0020] 優(yōu)選地,在所述當(dāng)在預(yù)設(shè)的關(guān)系數(shù)據(jù)表中匹配到所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí)時(shí),獲得 與所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)記錄虛擬地址的步驟之前,還包括:
      [0021] 在所述索引根節(jié)點(diǎn)中匹配所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí),獲取對(duì)應(yīng)的索引節(jié)點(diǎn)的虛擬地 址;
      [0022] 計(jì)算所述索引節(jié)點(diǎn)的虛擬地址對(duì)應(yīng)的索引節(jié)點(diǎn)物理地址;
      [0023] 在所述索引節(jié)點(diǎn)物理地址中獲得所述索引節(jié)點(diǎn)中記錄的數(shù)據(jù)記錄標(biāo)識(shí)與所述數(shù) 據(jù)記錄虛擬地址的關(guān)聯(lián)關(guān)系。
      [0024] 優(yōu)選地,采用如下公式計(jì)算所述目標(biāo)數(shù)據(jù)記錄虛擬地址對(duì)應(yīng)的物理地址:
      [0025] 物理地址=(所述共享內(nèi)存基地址+所述數(shù)據(jù)頭大小+當(dāng)前數(shù)據(jù)記錄的位置*每 條數(shù)據(jù)記錄的大小+〇ffset in record)。
      [0026] 優(yōu)選地,所述方法還包括:
      [0027] 封裝所述共享內(nèi)存的數(shù)據(jù)訪問接口。
      [0028] 本發(fā)明還公開了一種數(shù)據(jù)寫入方法,所述方法包括:
      [0029] 接收數(shù)據(jù)寫入請(qǐng)求,所述數(shù)據(jù)寫入請(qǐng)求包括目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí)及對(duì)應(yīng)的數(shù)據(jù)內(nèi) 容;
      [0030] 判斷在預(yù)設(shè)的關(guān)系數(shù)據(jù)表中是否匹配到所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí),其中,所述關(guān)系 數(shù)據(jù)表包括多個(gè)數(shù)據(jù)記錄標(biāo)識(shí)與對(duì)應(yīng)的數(shù)據(jù)記錄的虛擬地址的關(guān)聯(lián)關(guān)系,所述關(guān)系數(shù)據(jù)表 還包括空閑索引資源;
      [0031] 若是,則獲得與所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)記錄虛擬地址,計(jì)算所述 目標(biāo)數(shù)據(jù)記錄虛擬地址對(duì)應(yīng)的物理地址,并將所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)內(nèi)容寫入所述物理地址 中的對(duì)應(yīng)位置;
      [0032] 若否,則獲取所述空閑索引資源,并將所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí)及對(duì)應(yīng)的數(shù)據(jù)內(nèi)容 寫入所述空閑索引資源中。
      [0033] 優(yōu)選地,所述關(guān)系數(shù)據(jù)表保存在共享內(nèi)存中。
      [0034] 優(yōu)選地,所述關(guān)系數(shù)據(jù)表包括數(shù)據(jù)頭、索引記錄以及數(shù)據(jù)記錄;所述數(shù)據(jù)頭進(jìn)一步 包括索引根節(jié)點(diǎn),空閑數(shù)據(jù)記錄索引根節(jié)點(diǎn),空閑索引記錄根節(jié)點(diǎn);
      [0035] 其中,所述索引根節(jié)點(diǎn)用于記錄數(shù)據(jù)記錄標(biāo)識(shí)及對(duì)應(yīng)的已使用的索引節(jié)點(diǎn)的虛擬 地址;
      [0036] 所述索引記錄用于記錄所述已使用索引節(jié)點(diǎn)的信息,所述已使用索引節(jié)點(diǎn)的信息 包括數(shù)據(jù)記錄標(biāo)識(shí)與對(duì)應(yīng)的數(shù)據(jù)記錄的虛擬地址;
      [0037] 所述數(shù)據(jù)記錄用于記錄已寫入的數(shù)據(jù)記錄標(biāo)識(shí)和對(duì)應(yīng)的數(shù)據(jù)內(nèi)容;
      [0038] 所述空閑數(shù)據(jù)記錄索引根節(jié)點(diǎn)用于記錄未使用的數(shù)據(jù)記錄的虛擬地址;
      [0039] 所述空閑索引記錄根節(jié)點(diǎn)用于記錄未使用的索引節(jié)點(diǎn)的虛擬地址。
      [0040] 優(yōu)選地,所述空閑索引資源包括所述空閑索引記錄根節(jié)點(diǎn)及所述空閑數(shù)據(jù)記錄根 節(jié)點(diǎn);所述獲取所述空閑索引資源,并將所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí)及對(duì)應(yīng)的數(shù)據(jù)內(nèi)容寫入所 述空閑索引資源中的步驟包括:
      [0041] 從所述空閑索引記錄根節(jié)點(diǎn)中選取一虛擬地址,將所述虛擬地址對(duì)應(yīng)的索引節(jié)點(diǎn) 作為新索引節(jié)點(diǎn);
      [0042] 從所述空閑數(shù)據(jù)記錄根節(jié)點(diǎn)中選取一虛擬地址,將所述虛擬地址對(duì)應(yīng)的數(shù)據(jù)記錄 作為新的數(shù)據(jù)記錄;
      [0043] 將所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí)及對(duì)應(yīng)的數(shù)據(jù)內(nèi)容寫入所述新的數(shù)據(jù)記錄中;
      [0044] 在所述新索引節(jié)點(diǎn)下記錄所述的目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí)及所述新的數(shù)據(jù)記錄的虛擬 地址。
      [0045] 優(yōu)選地,所述方法還包括:
      [0046] 當(dāng)從所述空閑索引記錄根節(jié)點(diǎn)中選取一虛擬地址后,更新所述空閑索引記錄根節(jié) 點(diǎn)指向下一虛擬地址;
      [0047] 當(dāng)從所述空閑數(shù)據(jù)記錄根節(jié)點(diǎn)中選取一虛擬地址后,更新所述空閑數(shù)據(jù)記錄根節(jié) 點(diǎn)指向下一虛擬地址。
      [0048] 優(yōu)選地,所述虛擬地址包括高16位及低16位兩部分,所述高16位中記錄對(duì)應(yīng)的 索引節(jié)點(diǎn)的地址相對(duì)數(shù)據(jù)頭的偏移,所述低16位中記錄所述索引節(jié)點(diǎn)內(nèi)部的偏移。
      [0049] 優(yōu)選地,采用如下公式計(jì)算所述目標(biāo)數(shù)據(jù)記錄虛擬地址對(duì)應(yīng)的物理地址:
      [0050] 物理地址=(所述共享內(nèi)存基地址+所述數(shù)據(jù)頭大小+當(dāng)前數(shù)據(jù)記錄的位置*每 條數(shù)據(jù)記錄的大小+〇ffset in record)。
      [0051 ] 優(yōu)選地,所述方法還包括:
      [0052] 封裝所述共享內(nèi)存的數(shù)據(jù)訪問接口。
      [0053] 本發(fā)明還公開了一種數(shù)據(jù)讀取裝置,所述裝置包括:
      [0054] 請(qǐng)求接收模塊,用于接收數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求包括目標(biāo)數(shù)據(jù)記錄標(biāo) 識(shí);
      [0055] 虛擬地址獲取模塊,用于在預(yù)設(shè)的關(guān)系數(shù)據(jù)表中匹配到所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí) 時(shí),獲得與所述目標(biāo)數(shù)據(jù)記錄標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)記錄虛擬地址;其中,所述關(guān)系數(shù)據(jù)表包 括多個(gè)數(shù)據(jù)記錄標(biāo)識(shí)與對(duì)應(yīng)的數(shù)據(jù)記錄的虛擬地址的關(guān)聯(lián)關(guān)系;
      [0056] 物理地址計(jì)算模塊,用于計(jì)算所述目標(biāo)數(shù)據(jù)記錄虛擬地址對(duì)應(yīng)的物理地址,其中, 所述物理地址中存儲(chǔ)數(shù)據(jù)記錄標(biāo)識(shí)與對(duì)應(yīng)的數(shù)據(jù)內(nèi)容的鍵
      當(dāng)前第1頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1