馬震 趙君 吳思琪
摘要:在當(dāng)前大規(guī)模分布式數(shù)據(jù)密集型應(yīng)用需求快速增長(zhǎng)的背景下,諸如Ceph等底層存儲(chǔ)服務(wù)正面臨著日益增加的輸入/輸出(I/O)壓力,即使在數(shù)據(jù)量巨大且高并發(fā)的情況下,存儲(chǔ)服務(wù)也必須具備高吞吐量的I/O性能。為了滿足日益擴(kuò)大的并行數(shù)據(jù)傳輸需求,急需進(jìn)一步提高帶寬的利用率。隨著云存儲(chǔ)的普及,以視頻和圖像存儲(chǔ)為基礎(chǔ)的對(duì)象存儲(chǔ)服務(wù)越來(lái)越受到資源有限的用戶的青睞,特別是中小型企業(yè)和個(gè)人用戶。這類用戶的特點(diǎn)是存儲(chǔ)讀取操作較少,但對(duì)存儲(chǔ)價(jià)格更為敏感。由于這些資源通常按照使用量付費(fèi),因此最大限度地減少存儲(chǔ)空間占用并提高帶寬利用率變得尤為重要?;诖?,本文評(píng)估了通過(guò)數(shù)據(jù)壓縮來(lái)節(jié)省存儲(chǔ)空間和帶寬的潛在優(yōu)勢(shì),并提出了基于深度學(xué)習(xí)的壓縮層技術(shù),盡管數(shù)據(jù)壓縮會(huì)增加一定的計(jì)算開(kāi)銷,但相對(duì)于其帶來(lái)的成本優(yōu)勢(shì)而言,這些開(kāi)銷是可以忽略不計(jì)的。
關(guān)鍵詞:數(shù)據(jù)壓縮、 存儲(chǔ)? 研究
一、應(yīng)用背景與意義
隨著數(shù)據(jù)的速度、規(guī)模和多樣性日益增長(zhǎng),人們迫切需要靈活的應(yīng)用程序來(lái)快速、經(jīng)濟(jì)高效地處理大量異構(gòu)數(shù)據(jù),例如網(wǎng)頁(yè)內(nèi)容、在線交易記錄、訪問(wèn)日志等。這些應(yīng)用通常屬于數(shù)據(jù)密集型應(yīng)用,需要不斷地獲取海量數(shù)據(jù)集(例如通過(guò)網(wǎng)頁(yè)爬取或分析訪問(wèn)日志),并處理這些不斷變化的數(shù)據(jù)(例如建立最新的搜索索引)。為了實(shí)現(xiàn)可擴(kuò)展性和高性能,數(shù)據(jù)采集和計(jì)算任務(wù)需要在由成百上千臺(tái)機(jī)器組成的大規(guī)模數(shù)據(jù)基礎(chǔ)設(shè)施上進(jìn)行分布式部署,但是這種大規(guī)?;A(chǔ)設(shè)施的構(gòu)建和維護(hù)成本較高。而新興的云存儲(chǔ)模式提供了一種新的資源管理模式,備受工業(yè)界和學(xué)術(shù)界的關(guān)注,即用戶無(wú)需購(gòu)買和管理硬件設(shè)備,而是租用虛擬機(jī)和存儲(chǔ)空間。在這種情況下,數(shù)據(jù)密集型應(yīng)用變得極具吸引力,需要處理大量數(shù)據(jù)的用戶可以租用所需資源來(lái)運(yùn)行其應(yīng)用程序,并且只需支付其消耗的資源費(fèi)用。
由于數(shù)據(jù)密集型應(yīng)用需要處理海量數(shù)據(jù),因此需要大量的存儲(chǔ)空間。此外,為了以可擴(kuò)展的方式處理這些大規(guī)模數(shù)據(jù),必須在參與節(jié)點(diǎn)之間進(jìn)行大規(guī)模并行數(shù)據(jù)傳輸,因此底層網(wǎng)絡(luò)基礎(chǔ)設(shè)施需要具有高帶寬利用率。在云計(jì)算環(huán)境中,存儲(chǔ)空間和帶寬都是按使用量付費(fèi)的資源。所以,最大限度地降低數(shù)據(jù)密集型應(yīng)用所占用的存儲(chǔ)空間和提高帶寬利用率是非常重要的,能直接降低整體應(yīng)用部署成本。
而數(shù)據(jù)壓縮技術(shù)在存儲(chǔ)中的應(yīng)用將會(huì)帶來(lái)以下技術(shù)優(yōu)勢(shì):
節(jié)省存儲(chǔ)空間:數(shù)據(jù)壓縮技術(shù)可以顯著減少所需的存儲(chǔ)空間,使得存儲(chǔ)設(shè)備可以容納更多的數(shù)據(jù),從而提高存儲(chǔ)效率,并降低存儲(chǔ)成本。
提高數(shù)據(jù)傳輸效率:壓縮數(shù)據(jù)可以減少數(shù)據(jù)傳輸量,加快數(shù)據(jù)傳輸速度,降低網(wǎng)絡(luò)帶寬需求,特別是在需要通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸?shù)那闆r下,這一點(diǎn)尤為重要。
加快數(shù)據(jù)訪問(wèn)速度:壓縮的數(shù)據(jù)可以更快地加載到內(nèi)存中,并且處理速度更快,這是因?yàn)閴嚎s后的數(shù)據(jù)量更小,減少了磁盤I/O操作次數(shù),提高了數(shù)據(jù)訪問(wèn)速度。
提高系統(tǒng)性能:通過(guò)減少存儲(chǔ)和傳輸?shù)臄?shù)據(jù)量,數(shù)據(jù)壓縮可以降低系統(tǒng)負(fù)載,減少資源占用,提高整體系統(tǒng)性能,使得系統(tǒng)更具響應(yīng)性和效率。
本文對(duì)目前主流的用于存儲(chǔ)的數(shù)據(jù)壓縮技術(shù)進(jìn)行了系統(tǒng)地研究,評(píng)估了數(shù)據(jù)壓縮技術(shù)在節(jié)省存儲(chǔ)空間方面的優(yōu)勢(shì),并提出了基于深度學(xué)習(xí)的壓縮層技術(shù)。
二、用于存儲(chǔ)的主流數(shù)據(jù)壓縮技術(shù)
(一)壓縮層技術(shù)
Nicola在文獻(xiàn)[1]提出了一種基于采樣的通用壓縮層,它能動(dòng)態(tài)適應(yīng)異構(gòu)數(shù)據(jù),處理數(shù)據(jù)密集型應(yīng)用的部署和執(zhí)行所產(chǎn)生的高并發(fā)訪問(wèn)模式。特別是,作者引入了一個(gè)更通用的壓縮層,將其建議的適用性擴(kuò)展到虛擬機(jī)映像的管理(以及應(yīng)用數(shù)據(jù)的管理),并展示了如何將其集成到云架構(gòu)中。此外,作者建議在Blob- Seer [3]之上實(shí)現(xiàn)壓縮層,該系統(tǒng)是一個(gè)面向版本的分布式存儲(chǔ)系統(tǒng),專門設(shè)計(jì)用于在大量訪問(wèn)并發(fā)的情況下提供高吞吐量。
其主要實(shí)現(xiàn)思路包含以下六個(gè)部分:
云中間件:負(fù)責(zé)管理云上的物理資源,安排新虛擬機(jī)的實(shí)例化位置,跟蹤每個(gè)用戶的資源消耗情況、執(zhí)行策略等。云中間件提供控制API,使用戶能夠執(zhí)行各種管理任務(wù),如虛擬機(jī)部署和終止、監(jiān)控等。
分布式存儲(chǔ)服務(wù):負(fù)責(zé)在云上組織和存儲(chǔ)數(shù)據(jù),充當(dāng)數(shù)據(jù)共享服務(wù),在云提供商在服務(wù)級(jí)別協(xié)議中規(guī)定的服務(wù)質(zhì)量保證(性能、數(shù)據(jù)可用性等)范圍內(nèi),為透明訪問(wèn)數(shù)據(jù)提供便利。
云客戶端:使用云中間件的控制 API 與云進(jìn)行交互,并訪問(wèn)數(shù)據(jù)存儲(chǔ)服務(wù),以便操作虛擬機(jī)映像和應(yīng)用程序數(shù)據(jù)。
管理程序:是虛擬化中間件,利用計(jì)算節(jié)點(diǎn)的物理資源為虛擬機(jī)提供虛擬操作平臺(tái)。在這一角色中,它模擬虛擬文件系統(tǒng),該系統(tǒng)由虛擬機(jī)映像備份,而虛擬機(jī)映像是一個(gè)可從計(jì)算節(jié)點(diǎn)主機(jī)文件系統(tǒng)訪問(wèn)的常規(guī)文件。
虛擬機(jī):代表運(yùn)行客戶操作系統(tǒng)和用戶應(yīng)用程序的虛擬環(huán)境。虛擬機(jī)可以相互通信,并通過(guò)分布式存儲(chǔ)服務(wù)共享應(yīng)用數(shù)據(jù)。
壓縮層:捕獲所有數(shù)據(jù)訪問(wèn)(包括應(yīng)用程序數(shù)據(jù)和虛擬機(jī)鏡像),并根據(jù)數(shù)據(jù)剝離與大塊采樣原則進(jìn)行處理。同時(shí),壓縮層在計(jì)算節(jié)點(diǎn)和云網(wǎng)關(guān)上運(yùn)行,以調(diào)節(jié)客戶端、管理程序和虛擬機(jī)與分布式存儲(chǔ)服務(wù)之間的交互。
實(shí)驗(yàn)證明,該壓縮層的加入可以將隨機(jī)文本內(nèi)容存儲(chǔ)的空間占有率降低40%,并節(jié)省60%的帶寬。但是,其使用的Blob- Seer并不是主流技術(shù),如果在主流的分布式存儲(chǔ)例如Ceph上實(shí)現(xiàn)壓縮層,可以大幅度降低Ceph本身的系統(tǒng)開(kāi)銷。
(二)基于深度學(xué)習(xí)的圖像與視頻壓縮技術(shù)
文獻(xiàn)[4]開(kāi)發(fā)并實(shí)施了基于深度學(xué)習(xí)的離散小波變換(DWT)模型,用于水下物聯(lián)網(wǎng)(IoUT)的圖像壓縮;卷積神經(jīng)網(wǎng)絡(luò)(CNN)用于編碼和解碼,以納入高質(zhì)量圖像。文獻(xiàn)[4]認(rèn)為機(jī)器學(xué)習(xí)監(jiān)督CNN在壓縮效率和重建圖像質(zhì)量方面優(yōu)于超分辨率深度神經(jīng)網(wǎng)絡(luò)、JPEG和 JPEG2000等當(dāng)前方法,該方法有效減少了79.7038%的空間利用。
文獻(xiàn)[5]提出一種具有匹配“語(yǔ)義分割編碼器-解碼器”的新型分層圖像壓縮架構(gòu)。在編碼器和解碼器中,都對(duì)上采樣圖像應(yīng)用了語(yǔ)義分割網(wǎng)絡(luò)。然而,從圖像中提取的語(yǔ)義分割部分與原始圖像并不完全相同。為了補(bǔ)償與原始圖像間的質(zhì)量差異,文獻(xiàn)[5]將一個(gè)具有特定結(jié)構(gòu)的神經(jīng)卷積網(wǎng)絡(luò)用于擬合其在被移除部分的非線性圖上的原始分布。相較于基于 HEVC的編解碼器,該方法BD速率降低了35.31%,比特率降低了5%,編碼時(shí)間節(jié)省了24%。
文獻(xiàn)[6]提出了一種高效的基于上下文的卷積網(wǎng)絡(luò)用于圖像壓縮。通過(guò)其特殊的三維之字形掃描和三維分碼技術(shù)來(lái)描述并行熵,實(shí)現(xiàn)了對(duì)上下文的編碼,這些都是通過(guò)不變轉(zhuǎn)換CCN卷積濾波器上放置二進(jìn)制掩碼實(shí)現(xiàn)的。CCN還展示了其在無(wú)損壓縮和有損圖像壓縮中進(jìn)行熵建模的能力:使用CCN直接計(jì)算每個(gè)編碼的伯努利分布,以進(jìn)行熵的測(cè)量,得到的三個(gè) CCN 近似參數(shù)的高斯分布的離散混合就是每個(gè)碼組的分布。CCN的熵模型和分析/合成變換可以大幅度提高編碼速率,并降低失真率。
三、基于深度學(xué)習(xí)的壓縮層技術(shù)
根據(jù)以上兩節(jié)的描述可知,隨著存儲(chǔ)技術(shù)與深度學(xué)習(xí)技術(shù)的發(fā)展,數(shù)據(jù)壓縮可以大幅度降低數(shù)據(jù)存儲(chǔ)所需空間,提升帶寬利用率,并且其帶來(lái)的額外開(kāi)銷都在可承受范圍內(nèi)。因此,在存儲(chǔ)中使用數(shù)據(jù)壓縮技術(shù)是非常有必要的。本文提出了基于深度學(xué)習(xí)的壓縮層技術(shù),主要分為離散小波變換層和深度學(xué)習(xí)層兩個(gè)部分,其結(jié)構(gòu)如圖1所示。
(一)離散小波變換層
本層可以使用離散小波變換圖像將分解成不同尺度的頻率成分,使得圖像的大部分能量都集中在少數(shù)高幅值的小波系數(shù)中,而大多數(shù)小波系數(shù)接近于零。因此,可以舍棄或近似這些接近零的小波系數(shù),從而實(shí)現(xiàn)數(shù)據(jù)壓縮。
本層同樣可以將圖像分解成不同尺度的細(xì)節(jié)部分和粗略部分。對(duì)于圖像中的細(xì)節(jié)部分,可以使用較高的頻率分辨率來(lái)捕捉圖像中的細(xì)微細(xì)節(jié)信息;而對(duì)于粗略部分,可以使用較低的頻率分辨率來(lái)捕捉圖像的整體結(jié)構(gòu)。這種多分辨率特性可以有效地壓縮圖像。
本層能夠?qū)D像分解成空間上局部的頻率信息,實(shí)現(xiàn)在壓縮過(guò)程中對(duì)不同局部區(qū)域進(jìn)行不同的處理。對(duì)于圖像中的局部細(xì)節(jié)部分,可以保留更多的小波系數(shù)以保持細(xì)節(jié)信息;而對(duì)于相對(duì)平滑的區(qū)域,可以減少保留的系數(shù),以實(shí)現(xiàn)更高程度地壓縮。
另外,離散小波變化為可逆變換,這意味著圖像在經(jīng)過(guò)壓縮后可以被精確地恢復(fù)。
(二)深度學(xué)習(xí)層
本層在離散小波變換的基礎(chǔ)上,進(jìn)一步實(shí)現(xiàn)了對(duì)小波頻域信息的編碼,其具體實(shí)現(xiàn)方式為提取小波頻域信息中人眼敏感的部分,以實(shí)現(xiàn)對(duì)圖像信息的進(jìn)一步壓縮。
本層采用了自適應(yīng)壓縮的編碼器與解碼器組合,具有以下功能:
①分析輸入數(shù)據(jù)的內(nèi)容特征,例如圖像中的紋理、邊緣、顏色分布等;能夠根據(jù)不同內(nèi)容特征的重要性,選擇合適的壓縮算法和參數(shù)設(shè)置;
②根據(jù)數(shù)據(jù)的統(tǒng)計(jì)特征來(lái)調(diào)整壓縮方式,例如,在數(shù)據(jù)具有較高的冗余性時(shí),可以采用更高效的壓縮算法來(lái)去除冗余信息;
③根據(jù)應(yīng)用場(chǎng)景的需求來(lái)調(diào)整對(duì)壓縮誤差的容忍度,對(duì)于一些對(duì)圖像質(zhì)量要求較高的應(yīng)用,可以降低壓縮比以保證圖像質(zhì)量;而對(duì)于一些對(duì)圖像質(zhì)量要求相對(duì)較低的應(yīng)用,可以提高壓縮比以獲得更高的壓縮率;④根據(jù)數(shù)據(jù)的動(dòng)態(tài)變化來(lái)實(shí)時(shí)調(diào)整壓縮策略,例如,在視頻流中,當(dāng)場(chǎng)景變化較大或者運(yùn)動(dòng)較快時(shí),可以調(diào)整壓縮策略以適應(yīng)動(dòng)態(tài)變化的內(nèi)容。
四、結(jié)束語(yǔ)
本文總結(jié)了目前主流的用于存儲(chǔ)系統(tǒng)的數(shù)據(jù)壓縮方法,并在前人的基礎(chǔ)上,提出了基于深度學(xué)習(xí)的壓縮層技術(shù),可以用于大規(guī)模分布式系統(tǒng)的數(shù)據(jù)壓縮,進(jìn)一步降低數(shù)據(jù)存儲(chǔ)系統(tǒng)中的存儲(chǔ)空間用量,并提升數(shù)據(jù)傳輸速率。
作者單位:馬震 趙君 吳思琪 聯(lián)通在線信息技術(shù)有限公司
參考文獻(xiàn)
[1]Nicolae B.On the benefits of transparent compression for cost-effective cloud data storage[M]//Transactions on Large-Scale Data-and Knowledge-Centered Systems III:Special Issue on Data and Knowledge Management in Grid and P2P Systems.Berlin,Heidelberg:Springer Berlin Heidelberg,2011:167-184.
[2]Nicolae B,Antoniu G,Bougé L.Enabling high data throughput in desktop grids through decentralized data and metadata management:The blobseer approach[C]//Euro-Par 2009 Parallel Processing:15th International Euro-Par Conference,Delft,The Netherlands,August 25-28,2009.Proceedings 15.Springer Berlin Heidelberg,2009:404-416.
[3]Nicolae B.BlobSeer:Towards efficient data storage management for large-scale,distributed systems[D].Université Rennes 1,2010.
[4]Krishnaraj N,Elhoseny M,Thenmozhi M,et al.Deep learning model for real-time image compression in Internet of Underwater Things (IoUT)[J]. Journal of Real-Time Image Processing, 2020,17:2097-2111.
[5]Hoang T M,Zhou J,F(xiàn)an Y.Image compression with encoder-decoder matched semantic segmentation[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition workshops.2020:160-161.
[6]Li M,Ma K,You J,et al.Efficient and effective context-based convolutional entropy modeling for image compression[J].IEEE Transactions on Image Processing,2020,29:5900-5911.
馬震(1984.11-),男,漢族,江蘇徐州,研究生,研究方向:數(shù)據(jù)挖掘方向。