• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    文件存儲和索引方法、裝置及讀取文件的方法制造方法及圖紙

    技術編號:15690941 閱讀:97 留言:0更新日期:2017-06-24 03:44
    本發明專利技術提供了一種文件存儲和索引方法、裝置及讀取文件的方法,其中,該文件存儲和索引方法包括:按照文件的實際key值的字母順序存儲各文件,得到數據文件;生成用于索引數據文件中各文件的索引文件,其中,索引文件中的索引使用各文件的實際key值的前N字節作為key值,每個索引指向數據文件中的一個或者多個文件,key值對應的offset值為key值指向的一個或者多個文件中首個文件的offset值,key值對應的size值為key值指向的一個或者多個文件中首個文件的size值。通過本發明專利技術,解決了Haystack系統采用的索引方案對內存資源消耗大的問題,降低了索引系統對內存資源的消耗。

    File storage and indexing method, device and method for reading file

    The invention provides a file storage and indexing method, device and file method, which includes the file storage and indexing method: according to the actual key file storage in alphabetical order of the values of each file, data file; generate index files, each file index data file which N bytes the actual key index file index using each file value as the key value, each index point to one or more files in the data file, the key value of the corresponding offset value offset the first document one or more files to the key value, key value corresponding to size value the first file one or more files to the size value of key. The invention solves the problem that the indexing scheme adopted by the Haystack system consumes large memory resources, and reduces the consumption of memory resources by the indexing system.

    【技術實現步驟摘要】
    文件存儲和索引方法、裝置及讀取文件的方法
    本專利技術涉及文件存儲及索引領域,具體而言,涉及一種文件存儲和索引方法、裝置及讀取文件的方法。
    技術介紹
    當今互聯網,數據呈現爆炸式增長,社交網絡、移動通信、網絡視頻、電子商務等各種應用往往能產生億級甚至十億、百億級的海量小文件。由于在元數據管理、訪問性能、存儲效率等方面面臨巨大的挑戰,海量小文件問題成為了業界公認的難題。業界的一些知名互聯網公司,也對海量小文件提出了解決方案,例如:著名的社交網站Facebook,存儲了超過600億張圖片,專門推出了Haystack系統,針對海量小圖片進行定制優化的存儲。其他的小文件處理方案還有淘寶的TFS等,這些系統的核心思想都是將小文件追加到一個數據文件中,同時生成索引文件,通過索引文件來定位小文件的位置。下面介紹Facebook采用的Haystack的解決方案:Facebook的Haystack對小文件的解決辦法是,把小文件合起來。將一些小文件的數據依次追加到數據文件中,并且生成索引文件,通過索引來查找小文件在數據文件中的offset和size,對文件進行讀取。(1)Haystack的數據文件部分:Haystack的數據文件,將每個小文件封裝成一個needle,包含文件的key、size、data等數據信息。所有小文件按寫入的先后順序追加到數據文件中。(2)Haystack的索引文件部分:Haystack的索引文件保存每個needle的key,以及該needle在數據文件中的offset、size等信息。程序啟動時會將索引加載到內存中,在內存中通過查找索引,來定位在數據文件中的偏移量和大小。(3)讀請求使用索引:將索引文件載入內存,通過查找索引,來定位要讀取文件的offset、size,將數據讀取出來。(4)寫請求使用索引:寫文件每次添加一個文件,將文件的數據添加到末尾的Needlen。生成索引添加到Needlenindexrecord。由上述的描述可以看出,Facebook的Haystack特點是將文件的完整key都加載到內存中,進行文件定位。機器內存足夠大的情況下,Facebook完整的8字節key可以全部加載到內存中。但是現實環境下存在兩個問題:(1)存儲服務器內存不會太大,一般為32G至64G;(2)小文件對應的key大小難控制,一般選擇文件內容的MD5或SHA1作為該文件的key。假設一臺存儲服務器有12塊4T磁盤,內存為32GB左右。服務器上現需存儲大小約為4K的頭像、縮略圖等文件,約為10億個。文件的key使用MD5,加上offset和size字段,平均一個小文件對應的索引信息占用28字節。在這種情況下,索引占用內存接近30GB,磁盤僅占用4TB。內存消耗近100%,磁盤消耗只有8%。由此可見,Haystack系統采用的索引方案對內存資源消耗巨大,并且內存資源限制了磁盤資源的利用率,因此,想要獲得更大的磁盤資源的利用率需要額外增加內存資源的大量投入。
    技術實現思路
    本專利技術提供了一種文件存儲和索引方法、裝置及讀取文件的方法,以至少解決Haystack系統采用的索引方案對內存資源消耗大的問題。根據本專利技術的一個方面,提供了一種文件存儲和索引方法,包括:按照文件的實際key值的字母順序存儲各文件,得到數據文件;生成用于索引所述數據文件中各文件的索引文件,其中,所述索引文件中的索引使用各文件的實際key值的前N字節作為key值,每個索引指向所述數據文件中的一個或者多個文件,所述key值對應的offset值為所述key值指向的一個或者多個文件中首個文件的offset值,所述key值對應的size值為所述key值指向的一個或者多個文件中首個文件的size值,N為正整數。可選地,所述索引文件中的offset字段和size字段是通過512字節對齊的。可選地,生成用于索引所述數據文件中各文件的索引文件還包括:按照key值前綴分層存儲所述索引文件的索引,其中,所述key值前綴對應的分層中存儲的索引的key值為截去所述key值前綴的簡短key值,其中,所述key值前綴的字節長度小于N。可選地,所述索引文件的索引的offset值是以所述索引所在分層為偏移范圍的層內offset值,所述層內offset值的字節數是根據分層的最大層地址空間確定的。可選地,所述方法還包括:將所述數據文件中的所有文件映射到bloomfilter中,以使讀取所述數據文件中的文件時通過快速搜索所述bloomfilter來判斷將要讀取的文件是否可能存在。根據本專利技術的另一個方面,還提供了一種文件存儲和索引裝置,包括:數據文件存儲模塊,用于存儲數據文件,其中,所述數據文件是按照文件的實際key值的字母順序存儲各文件所得到的;索引文件生成模塊,用于生成用于索引所述數據文件中各文件的索引文件,其中,所述索引文件中的索引使用各文件的實際key值的前N字節作為key值,每個索引指向所述數據文件中的一個或者多個文件,所述key值對應的offset值為所述key值指向的一個或者多個文件中首個文件的offset值,所述key值對應的size值為所述key值指向的一個或者多個文件中首個文件的size值,N為正整數。可選地,所述索引文件生成模塊,還用于按照key值前綴分層存儲所述索引文件的索引,其中,所述key值前綴對應的分層中存儲的索引的key值為截去所述key值前綴的簡短key值,其中,所述key值前綴的字節長度小于N。可選地,所述索引文件的索引的offset值是以所述索引所在分層為偏移范圍的層內offset值,所述層內offset值的字節數是根據分層的最大層地址空間確定的。可選地,所述裝置還包括:映射模塊,用于將所述數據文件中的所有文件映射到bloomfilter中,以使讀取所述數據文件中的文件時通過搜索所述bloomfilter來判斷將要讀取的文件是否可能存在。根據本專利技術的另一個方面,還提供了一種在上述的文件存儲和索引裝置中讀取文件的方法,包括:根據將要讀取的文件的實際key值的前N字節查詢所述索引文件中所述實際key值的前N字節對應的索引;根據所述實際key值,在所述實際key值的前N字節對應的索引指向的一個或者多個文件中匹配文件;在匹配到key值與所述實際key值一致的文件時,讀取該文件。可選地,根據將要讀取的文件的實際key值的前N字節查詢所述索引文件中所述實際key值的前N字節對應的索引包括:根據所述bloomfilter判斷將要讀取的文件是否可能存在;在判斷結果為可能存在的情況下,根據將要讀取的文件的實際key值的前N字節查詢所述索引文件中所述實際key值的前N字節對應的索引,否則終止讀取文件。通過本專利技術,采用按照文件的實際key值的字母順序存儲各文件,得到數據文件;生成用于索引數據文件中各文件的索引文件,其中,索引文件中的索引使用各文件的實際key值的前N字節作為key值,每個索引指向數據文件中的一個或者多個文件,key值對應的offset值為key值指向的一個或者多個文件中首個文件的offset值,key值對應的size值為key值指向的一個或者多個文件中首個文件的size值的方式,解決了Haystack系統采用的索引方案對內存資源消耗大的問題,降低了索引系本文檔來自技高網
    ...
    文件存儲和索引方法、裝置及讀取文件的方法

    【技術保護點】
    一種文件存儲和索引方法,其特征在于包括:按照文件的實際key值的字母順序存儲各文件,得到數據文件;生成用于索引所述數據文件中各文件的索引文件,其中,所述索引文件中的索引使用各文件的實際key值的前N字節作為key值,每個索引指向所述數據文件中的一個或者多個文件,所述key值對應的offset值為所述key值指向的一個或者多個文件中首個文件的offset值,所述key值對應的size值為所述key值指向的一個或者多個文件中首個文件的size值,N為正整數。

    【技術特征摘要】
    1.一種文件存儲和索引方法,其特征在于包括:按照文件的實際key值的字母順序存儲各文件,得到數據文件;生成用于索引所述數據文件中各文件的索引文件,其中,所述索引文件中的索引使用各文件的實際key值的前N字節作為key值,每個索引指向所述數據文件中的一個或者多個文件,所述key值對應的offset值為所述key值指向的一個或者多個文件中首個文件的offset值,所述key值對應的size值為所述key值指向的一個或者多個文件中首個文件的size值,N為正整數。2.根據權利要求1所述的方法,其特征在于,所述索引文件中的offset字段和size字段是通過512字節對齊的。3.根據權利要求1所述的方法,其特征在于,生成用于索引所述數據文件中各文件的索引文件還包括:按照key值前綴分層存儲所述索引文件的索引,其中,所述key值前綴對應的分層中存儲的索引的key值為截去所述key值前綴的簡短key值,其中,所述key值前綴的字節長度小于N。4.根據權利要求3所述的方法,其特征在于,所述索引文件的索引的offset值是以所述索引所在分層為偏移范圍的層內offset值,所述層內offset值的字節數是根據分層的最大層地址空間確定的。5.根據權利要求1至4中任一項所述的方法,其特征在于,所述方法還包括:將所述數據文件中的所有文件映射到bloomfilter中,以使讀取所述數據文件中的文件時通過快速搜索所述bloomfilter來判斷將要讀取的文件是否可能存在。6.一種文件存儲和索引裝置,其特征在于包括:數據文件存儲模塊,用于存儲數據文件,其中,所述數據文件是按照文件的實際key值的字母順序存儲各文件所得到的;索引文件生成模塊,用于生成用于索引所述數據文件中各文件的索引文件,其中,所述索引文件中的索引使用各文件的實際key值的前N字節作為key值,每個索引指向所述數據文件中的一個...

    【專利技術屬性】
    技術研發人員:陳闖張炎潑
    申請(專利權)人:貴州白山云科技有限公司
    類型:發明
    國別省市:北京,11

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产三级无码内射在线看| 日日摸日日碰人妻无码| 无码一区二区三区免费| 日韩人妻无码精品久久久不卡| 无码人妻AV免费一区二区三区| 无套中出丰满人妻无码| 久久久久无码精品国产app| 免费无码婬片aaa直播表情| 亚洲日韩乱码中文无码蜜桃| 免费无遮挡无码永久在线观看视频 | 亚洲AV永久无码精品一百度影院| 中文无码热在线视频| 18禁超污无遮挡无码免费网站| 亚洲天然素人无码专区| 亚洲AV永久无码精品一百度影院| 国产成人无码a区在线视频| 亚洲av无码专区在线观看亚| 无码精品久久久天天影视 | 无码一区二区三区AV免费| 亚洲AV中文无码字幕色三| 东京热加勒比无码少妇| 国产丰满乱子伦无码专| 亚洲av无码专区在线观看下载 | 亚洲AV色吊丝无码| 无码国产精品一区二区免费vr| 中文无码喷潮在线播放| 亚洲&#228;v永久无码精品天堂久久| 99久久无码一区人妻a黑| 午夜亚洲AV日韩AV无码大全| 国产成A人亚洲精V品无码| 国产午夜无码专区喷水| 野花在线无码视频在线播放| 成人无码一区二区三区| 成在人线av无码免费高潮喷水| 人妻丰满熟妇A v无码区不卡| 韩国无码AV片在线观看网站| 国产精品亚洲一区二区无码| 小12箩利洗澡无码视频网站| 日韩AV无码不卡网站| 无码精品人妻一区二区三区免费| 在线无码视频观看草草视频|