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