什么是鯤鵬BoostKit壓縮算法?面對(duì)海量數(shù)據(jù)的處理需求和分布式IT架構(gòu)的普及,越來(lái)越多企業(yè)希望構(gòu)建擴(kuò)展性更高、成本更低的分布式存儲(chǔ)方案。如何對(duì)數(shù)據(jù)進(jìn)行極致壓縮,在同等存儲(chǔ)空間下更快存儲(chǔ)更多數(shù)據(jù),成為當(dāng)前的主要挑戰(zhàn)。
本期,給大家分享如何基于鯤鵬BoostKit分布式存儲(chǔ)使能套件的壓縮算法,實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)更快、存儲(chǔ)更高效。
LZ4壓縮算法是業(yè)界主流的數(shù)據(jù)壓縮算法之一,是一種基于字典編碼的壓縮算法,通過(guò)使用一些簡(jiǎn)單的代號(hào)代替數(shù)據(jù)中重復(fù)的字符串,實(shí)現(xiàn)數(shù)據(jù)的壓縮,其中字符串與代號(hào)的對(duì)應(yīng)關(guān)系匯總為偏移表,起到字典的作用。
鯤鵬BoostKit壓縮算法,基于業(yè)界開(kāi)源的LZ4壓縮算法主要做了四方面優(yōu)化,實(shí)現(xiàn)壓縮率的提升。
構(gòu)建全局動(dòng)態(tài)偏移表
鯤鵬BoostKit壓縮算法構(gòu)建更加高效的動(dòng)態(tài)全局偏移信息表,實(shí)現(xiàn)對(duì)傳統(tǒng)Hash匹配策略的替代。
設(shè)計(jì)分層算法模型
鯤鵬BoostKit壓縮算法針對(duì)整個(gè)數(shù)據(jù)塊匹配最優(yōu)的壓縮模型和最優(yōu)的壓縮參數(shù),并且能夠收集實(shí)時(shí)的負(fù)載信息,反饋至壓縮算法引擎。
優(yōu)化壓縮頭部
鯤鵬BoostKit壓縮算法通過(guò)將偏移信息合入壓縮頭部中,且針對(duì)不同數(shù)據(jù)壓縮場(chǎng)景,自適應(yīng)地調(diào)整文本長(zhǎng)度、匹配內(nèi)容長(zhǎng)度、偏移信息所占用的bit位數(shù)。
優(yōu)化滑動(dòng)窗口
開(kāi)源LZ4算法采用固定的Sequence存儲(chǔ)格式,匹配過(guò)程中的搜索窗口為固定64KB。鯤鵬BoostKit壓縮算法優(yōu)化了頭部的Sequence信息,支持動(dòng)態(tài)匹配窗口,在數(shù)據(jù)塊大小變化頻繁的場(chǎng)景下避免造成存儲(chǔ)冗余或不足。
此外,鯤鵬BoostKit還基于鯤鵬架構(gòu)的特點(diǎn)進(jìn)行了指令級(jí)別的優(yōu)化,如嵌入式匯編加速、批處理加速、NEON指令加速、預(yù)取指令加速等,充分釋放鯤鵬硬件算力,加速壓縮性能。
多種場(chǎng)景下的測(cè)試證明,使用鯤鵬BoostKit壓縮算法,確實(shí)能夠有效提升數(shù)據(jù)壓縮率和存儲(chǔ)帶寬性能。以均衡型存儲(chǔ)場(chǎng)景為例,相比在傳統(tǒng)平臺(tái)上使用開(kāi)源算法,鯤鵬BoostKit壓縮算法的壓縮率提升25%,帶寬性能提升10%。
鯤鵬BoostKit分布式存儲(chǔ)使能套件提供高性能的Ceph開(kāi)源組件,原生支持LZ4、Zlib、Zstd、Snappy等壓縮算法,且已經(jīng)使能Ceph 16.2.x及之后的發(fā)行版支持鯤鵬硬件壓縮加速庫(kù)。此外,鯤鵬BoostKit分布式存儲(chǔ)使能套件還提供IO直通、EC Turbo等豐富的存儲(chǔ)加速技術(shù),適合不同的應(yīng)用場(chǎng)景需求。