亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種小文件合并存儲(chǔ)的方法

        2021-01-18 03:37:44王海霞趙正軍
        現(xiàn)代計(jì)算機(jī) 2020年32期
        關(guān)鍵詞:空閑客戶端流程

        王海霞,趙正軍

        (1.中國(guó)電信股份有限公司研究院,廣州 510630;2.廣州智光自動(dòng)化有限公司,廣州 510760)

        0 引言

        隨著互聯(lián)網(wǎng)和信息技術(shù)不斷發(fā)展,數(shù)據(jù)信息對(duì)經(jīng)濟(jì)和社會(huì)生活產(chǎn)生重大影響,我們進(jìn)入了一個(gè)信息爆炸的時(shí)代,每個(gè)行業(yè)每天都在制造和產(chǎn)生大量數(shù)據(jù)。IDC白皮書預(yù)測(cè)到2025年,全球的數(shù)據(jù)總量將高達(dá)163ZB。尤其是物聯(lián)網(wǎng)、5G和人工智能等新技術(shù)等各種應(yīng)用產(chǎn)生的數(shù)據(jù),呈現(xiàn)指數(shù)級(jí)增長(zhǎng),甚至可能會(huì)涌現(xiàn)高達(dá)百億級(jí)的海量小文件。海量小文件(Lots Of Small Files,LOSF)在數(shù)據(jù)訪問和存儲(chǔ)等方面面臨巨大的挑戰(zhàn),日漸成為業(yè)屆公認(rèn)的難題。

        海量小文件問題簡(jiǎn)稱LOSF,通常是指文件大小在1MB以內(nèi),數(shù)量級(jí)別在百萬及以上。典型應(yīng)用場(chǎng)景,例如我們生活中常用的最大電子商務(wù)網(wǎng)站淘寶,系統(tǒng)平臺(tái)上保存大量的圖片文件,平均大小僅為15KB,總量至少超過200億張。還有著名的社交網(wǎng)站Facebook,系統(tǒng)存儲(chǔ)了600億張以上的圖片。還有動(dòng)漫渲染的后期制作過程中需要大量的視音頻素材,這些文件的大小都集中在10-20KB之間,數(shù)量通常超過500萬個(gè)。

        目前的文件系統(tǒng),例如本地文件系統(tǒng)、分布式文件系統(tǒng)等,在數(shù)據(jù)管理、數(shù)據(jù)存儲(chǔ)和緩存管理等實(shí)現(xiàn)方式和策略都是針對(duì)大文件設(shè)計(jì)的,例如GlusterFS、GFS、HDFS,海量小文件在現(xiàn)有的文件系統(tǒng)的存儲(chǔ)效率比較低,甚至無法實(shí)現(xiàn)快速訪問。

        1 LOSF優(yōu)化策略

        1.1 硬件優(yōu)化

        如果忽略成本的因素,最直接的優(yōu)化策略就是升級(jí)硬件配置,通過降低數(shù)據(jù)訪問時(shí)間來提高LOSF性能。例如,存儲(chǔ)介質(zhì)用SSD替換原有的機(jī)械硬盤,或者增加存儲(chǔ)的Cache,或者采用分層存儲(chǔ)的部署,這樣可以大大提升IOPS/OPS的讀寫性能;或者采用處理性能更強(qiáng)的CPU,直接有效地提升并發(fā)處理能力及I/O訪問速度;還可以增大內(nèi)存容量,顯著提高數(shù)據(jù)讀寫緩存命中率;以及使用傳輸效率更高的網(wǎng)絡(luò)設(shè)備,網(wǎng)絡(luò)訪問的帶寬高,延時(shí)小,這樣事務(wù)并發(fā)處理效率高,數(shù)據(jù)訪問的吞吐量大。硬件優(yōu)化的核心思想,就是通過提升硬件的性能,消除I/O物理通道上的障礙,但是代價(jià)是成本較高。

        1.2 Cache 管理

        Cache技術(shù)的優(yōu)化思路是用空間換取時(shí)間,通過提高數(shù)據(jù)訪問的緩存命中率,突破數(shù)據(jù)訪問的時(shí)間和空間的限制,提升文件訪問的性能。Cache技術(shù)可以應(yīng)用到多個(gè)領(lǐng)域,例如CPU的Cache、存儲(chǔ)介質(zhì)Cache和文件系統(tǒng)的Cache等。Cache技術(shù)的特點(diǎn)是先將數(shù)據(jù)集中讀寫到Cache中,然后再將數(shù)據(jù)用異步的方式移到穩(wěn)定的存儲(chǔ)介質(zhì)上。Cache技術(shù)通過異步的數(shù)據(jù)存取的模式來解決數(shù)據(jù)高并發(fā)訪問和延時(shí)的問題,有效減小存儲(chǔ)介質(zhì)的訪問次數(shù),來進(jìn)一步提高存儲(chǔ)的效率。但是Cache容量不能無止境的增加,當(dāng)達(dá)到一定閾值時(shí),即便再繼續(xù)增大Cache容量,Cache的命中率也不會(huì)有顯著提高。

        Cache技術(shù)對(duì)訪問過的數(shù)據(jù)進(jìn)行短時(shí)間的保留,但是如果數(shù)據(jù)更新頻繁,緩存在性能改善方面的影響不再明顯,因此針對(duì)大量小文件的訪問,可以采用先預(yù)測(cè)頻繁訪問的文件集合,預(yù)先讀到Cache系統(tǒng)中,有效提高系統(tǒng)存儲(chǔ)的性能。預(yù)存取是一種主動(dòng)緩存的技術(shù),它充分利用數(shù)據(jù)的空間局部性,對(duì)未來可能發(fā)生的數(shù)據(jù)訪問請(qǐng)求進(jìn)行預(yù)測(cè),在實(shí)際訪問之前讀取數(shù)據(jù)并緩存,方便用戶快速訪問,有效減少數(shù)據(jù)訪問的時(shí)延。對(duì)于用戶來說,不是所有的預(yù)測(cè)都是有效的,正確的預(yù)測(cè)可以提升系統(tǒng)的性能,而不正確的預(yù)測(cè)就會(huì)造成Cache的浪費(fèi),I/O帶寬的占用,還有數(shù)據(jù)訪問的延時(shí)。

        1.3 小文件合并存儲(chǔ)

        對(duì)于大量小文件而言,可以采用小文件合并存儲(chǔ)的優(yōu)化策略,首先,減少元數(shù)據(jù)數(shù)量。先將多個(gè)小文件合并成一個(gè)大文件,通過減少文件數(shù)量來提升元數(shù)據(jù)的訪問和查詢效率,減少文件讀寫的I/O操作次數(shù),節(jié)約數(shù)據(jù)傳輸?shù)臅r(shí)間。合并成大文件存儲(chǔ)在文件系統(tǒng)上,可以降低文件系統(tǒng)的I/O的壓力,提升存儲(chǔ)性能。在小文件合并存儲(chǔ)的同時(shí),會(huì)生成索引文件,訪問數(shù)據(jù)時(shí)通過索引來查找,索引文件可以先預(yù)存到Cache中,這樣讀寫小文件時(shí),只需要一次I/O就可實(shí)現(xiàn)。

        對(duì)比傳統(tǒng)的文件系統(tǒng),文件的元數(shù)據(jù)和數(shù)據(jù)是存儲(chǔ)在文件系統(tǒng)的不同的地方,而小文件合并存儲(chǔ)的方式是將元數(shù)據(jù)和數(shù)據(jù)連續(xù)存儲(chǔ)在大文件中,這樣增加了單個(gè)小文件內(nèi)部的數(shù)據(jù)局部性,存儲(chǔ)系統(tǒng)上的I/O方式由隨機(jī)轉(zhuǎn)換成了順序,大大提高I/O讀寫性能。此外,采用小文件單獨(dú)存儲(chǔ),磁盤上會(huì)產(chǎn)生大量的碎片。采用小文件合并存儲(chǔ)的方式,磁盤上的碎片會(huì)隨著文件數(shù)量大幅減少而降低,有效提高LOSF存儲(chǔ)效率。

        傳統(tǒng)的文件系統(tǒng),系統(tǒng)讀寫文件時(shí),主要的系統(tǒng)開銷在open調(diào)用方面,例如路徑查找和路徑解析。采用小文件合并存儲(chǔ)的機(jī)制,I/O訪問流程也會(huì)發(fā)生變化,多個(gè)小文件合并成一個(gè)大文件,open系統(tǒng)調(diào)用的開銷轉(zhuǎn)換成了seek操作,先訪問Cache中的索引,再在大文件對(duì)應(yīng)的位置上查找,節(jié)省了之前的大部分的系統(tǒng)調(diào)用的開銷。

        小文件合并存儲(chǔ)的方式,對(duì)于存在大量修改和刪除操作的存儲(chǔ)系統(tǒng)不是很適用。文件在修改和刪除操作時(shí),存儲(chǔ)系統(tǒng)會(huì)產(chǎn)生大量碎片,執(zhí)行碎片整理,又會(huì)產(chǎn)生額外系統(tǒng)開銷。如果不進(jìn)行空間整理,采用直接追加寫的方式,就會(huì)導(dǎo)致數(shù)據(jù)分布的隨機(jī)性增加,浪費(fèi)存儲(chǔ)空間,降低性能,這些問題的存在,是小文件合并存儲(chǔ)的優(yōu)化策略所面臨的挑戰(zhàn)。

        2 小文件合并存儲(chǔ)改進(jìn)方案

        綜上所述,小文件合并存儲(chǔ)是解決目前LOSF問題最為有效的策略。著名的社交網(wǎng)站Facebook和電子商務(wù)網(wǎng)站淘寶等都采用了這種方式。小文件合并存儲(chǔ)的機(jī)制,核心思想是將多個(gè)小文件合并成一個(gè)大文件中,合并時(shí)同步生成索引文件,小文件的元數(shù)據(jù),例如位置信息、文件名稱等與實(shí)際文件是分開存儲(chǔ)的,在具體訪問文件的時(shí)候,會(huì)首先獲取元數(shù)據(jù)的offset和size等關(guān)鍵信息,然后依據(jù)索引檢索實(shí)際文件。

        但是這種合并存儲(chǔ)方法也存在以下一些問題:

        小文件以合并存儲(chǔ)的方式存放到磁盤上,小文件之間需要嚴(yán)格的邊界來區(qū)分,一旦寫入便不能再修改邊界,因此在不同數(shù)據(jù)塊上修改或刪除單個(gè)小文件時(shí),無法立即回收存儲(chǔ)空間,會(huì)產(chǎn)生一些磁盤碎片,不僅造成訪問性能下降,還導(dǎo)致磁盤空間浪費(fèi)。

        本文提出對(duì)一種改進(jìn)的小文件合并存儲(chǔ)的方法,針對(duì)現(xiàn)有的小文件合并存儲(chǔ)的方法在修改和刪除單個(gè)小文件時(shí),無法立即回收存儲(chǔ)空間,導(dǎo)致磁盤空間浪費(fèi)等問題,提出以文件的大小為參數(shù),先對(duì)小文件進(jìn)行分組,再對(duì)同一組的小文件進(jìn)行合并存儲(chǔ)在同一個(gè)數(shù)據(jù)塊中,存儲(chǔ)時(shí)優(yōu)先選擇數(shù)據(jù)塊中空閑的單元。在修改單個(gè)小文件時(shí),如果修改后的文件大小發(fā)生變化,就將小文件移至其對(duì)應(yīng)的文件組里,存儲(chǔ)到相應(yīng)的數(shù)據(jù)塊里;如果修改后的文件大小不變,就直接修改。這樣可以減少因修改和刪除單個(gè)小文件產(chǎn)生的數(shù)據(jù)塊中空閑單元,優(yōu)化數(shù)據(jù)布局,及時(shí)回收存儲(chǔ)空間,提高磁盤空間的利用率,彌補(bǔ)現(xiàn)有的合并存儲(chǔ)方法的不足。

        3 小文件合并存儲(chǔ)改進(jìn)方案具體流程

        3.1 新增文件的流程

        (1)客戶端發(fā)出請(qǐng)求

        (2)判斷文件大小

        (3)根據(jù)文件大小選擇數(shù)據(jù)塊組group_x

        (4)在數(shù)據(jù)塊組 group_x中找到一個(gè)可寫的block_id

        (5)判斷block_id中是否有空閑的存儲(chǔ)單元

        (6)如果沒有,對(duì)同一組待寫的小文件合并成一個(gè)大文件,如果有,在block_id中選擇空閑的存儲(chǔ)單元

        (7)把文件寫入磁盤,同時(shí)生成元數(shù)據(jù)+索引文件

        (8)向客戶端返回成功信息

        小文件合并存儲(chǔ)改進(jìn)方案在新增文件時(shí),會(huì)以文件的大小為參數(shù),先對(duì)小文件進(jìn)行分組,再對(duì)同一組的小文件進(jìn)行合并存儲(chǔ)在同一個(gè)數(shù)據(jù)塊中,存儲(chǔ)時(shí)優(yōu)先選擇block中空閑的單元。而原有方案不考慮文件大小,對(duì)新增文件直接合并,以追寫的方式,存儲(chǔ)在數(shù)據(jù)塊中。

        圖1 新增文件流程圖

        3.2 刪除文件的流程

        (1)客戶端請(qǐng)求

        (2)查找文件的元數(shù)據(jù),獲取文件名稱、位置信息等屬性

        (3)確認(rèn)文件所在group_x和block_id

        (4)根據(jù)元數(shù)據(jù)和索引表的文件名稱、offset和size,找到文件File_xx

        (5)刪除File_xx,修改文件File_xx的存儲(chǔ)單元變?yōu)榭臻e狀態(tài),同時(shí)更新元數(shù)據(jù)和索引表

        (6)向客戶端返回成功信息

        小文件合并存儲(chǔ)改進(jìn)方案在刪除文件時(shí),會(huì)將文件所在的存儲(chǔ)單元修改為空閑狀態(tài),當(dāng)有相同大小的文件寫入時(shí),優(yōu)先考慮。

        圖2 修改文件流程圖

        3.3 修改文件的流程

        (1)客戶端請(qǐng)求

        (2)判斷文件大小是否變化

        (3)如果是,把文件File_xx看作一份新文件處理,增加新文件(詳見新增文件流程),刪除舊文件(詳見刪除文件流程)

        (4)如果不是,查找文件的元數(shù)據(jù),獲取文件名稱、位置信息等屬性,確認(rèn)文件所在group_x和block_id,根據(jù)元數(shù)據(jù)和索引表的文件名稱、offset和size,找到文件File_xx,修改 File_xx

        (5)向客戶端返回成功信息

        小文件合并存儲(chǔ)改進(jìn)方案在修改文件時(shí),會(huì)先判斷文件大小是否發(fā)生改變,如果發(fā)生改變,會(huì)將文件看作一份新文件處理,同時(shí)刪除舊文件。

        圖3 刪除文件流程圖

        4 小文件合并存儲(chǔ)改進(jìn)方案的優(yōu)點(diǎn)

        小文件合并存儲(chǔ)改進(jìn)方案相對(duì)于現(xiàn)有方案,具備以下優(yōu)點(diǎn):

        (1)及時(shí)回收存儲(chǔ)空間,有效減少磁盤碎片;

        (2)優(yōu)化數(shù)據(jù)布局,提高磁盤空間的利用率;

        (3)顯著提高存儲(chǔ)系統(tǒng)的數(shù)據(jù)訪問的效率。

        小文件合并存儲(chǔ)改進(jìn)方案將來可能的應(yīng)用場(chǎng)景,分布式存儲(chǔ)系統(tǒng)和海量小文件云存儲(chǔ)等。

        5 結(jié)語(yǔ)

        本文在分析海量小文件存儲(chǔ)的主要問題的基礎(chǔ)上,探討了LOSF優(yōu)化策略,提出了一種小文件合并存儲(chǔ)的改進(jìn)方法和流程,具體包括新增文件、刪除文件和修改文件的流程,并闡明了小文件合并存儲(chǔ)改進(jìn)方案的主要優(yōu)點(diǎn),為小文件合并存儲(chǔ)提供了一種解決方案。

        猜你喜歡
        空閑客戶端流程
        恩賜
        詩(shī)選刊(2023年7期)2023-07-21 07:03:38
        吃水果有套“清洗流程”
        “鳥”字謎
        小讀者之友(2019年9期)2019-09-10 07:22:44
        縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
        孵化垂直頻道:新聞客戶端新策略
        基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
        違反流程 致命誤判
        彪悍的“寵”生,不需要解釋
        本刊審稿流程
        析OGSA-DAI工作流程
        国产91一区二这在线播放| 999国内精品永久免费观看| 国产精品jizz在线观看老狼| 亚洲是图一区二区视频| 亚洲一区二区三区av天堂| 无码国产精成人午夜视频一区二区 | 久久国产精品99精品国产987| 少妇深夜吞精一区二区| 免费a级毛片无码免费视频首页| 亚洲综合区图片小说区| 久久国产乱子伦精品免费强| 久久久精品久久久国产| 人妻熟妇乱又伦精品视频| 亚洲精品久久久久久久久av无码| 欧美乱人伦中文字幕在线不卡| 国产主播一区二区三区在线观看| 久久久国产精品| 亚洲人成色777777老人头| 国产情侣一区在线| 日韩一级137片内射视频播放| 国产成人精品无码一区二区三区| 无码一区二区三区老色鬼| 手机AV片在线| 久草视频这里只有精品| 久久精品欧美日韩精品| 欧美成人免费观看国产| 亚洲天堂一区二区三区视频| 人妻体内射精一区二区三区| 国产乱人伦精品一区二区 | 成人综合激情自拍视频在线观看| 激情人妻另类人妻伦| 日韩a无v码在线播放| 无码91 亚洲| 极品一区二区在线视频| 国产午夜鲁丝片av无码| 无码天堂亚洲国产av麻豆| 小黄片免费在线播放观看| 丰满少妇a级毛片| 久久国产自偷自免费一区100| 最新日本免费一区二区三区| 中国孕妇变态孕交xxxx|