Easysearch壓縮模式深度比較:ZSTD+source_reuse的優(yōu)勢分析
引言
在使用 Easysearch 時,如何在存儲和查詢性能之間找到平衡是一個常見的挑戰(zhàn)。Easysearch 具備多種壓縮模式,各有千秋。本文將重點探討一種特別的壓縮模式:zstd + source_reuse
,我們最近重新優(yōu)化了?source_reuse
,使得它在吞吐量和存儲效率方面都表現(xiàn)出色。
測試概覽
測試條件選用了 esrally 工具和 geonames 數(shù)據(jù)集來進行壓力測試。數(shù)據(jù)集包含了 11396503 條記錄,往單個 shard 寫入,對以下幾種壓縮模式進行壓測對比:
default
best_compression
zstd
zstd + source_reuse

下圖是對 CPU 的監(jiān)控,可以看到各個模式對 CPU 的使用是基本相近的。
default

best_compression

zstd

zstd+reuse

關(guān)鍵數(shù)據(jù)點
測試結(jié)果主要圍繞兩個指標:
中位吞吐量:單位為“每秒操作數(shù)”,數(shù)值越大表示性能越好。
存儲大?。簡挝粸?“GB”,數(shù)值越小表示存儲更加高效。
測試數(shù)據(jù)如下:

zstd + source_reuse:壓縮原理
該模式采用了?source_reuse
?壓縮算法,該算法通過對?keyword
、long
、int
、short
、boolean
?等類型的字段值進行復(fù)用,并結(jié)合 zstd 壓縮算法,大大提高了存儲效率。
壓縮效率
zstd + source_reuse
?在存儲大小上的表現(xiàn)尤為出色,針對 geonames 數(shù)據(jù)集只需 1.6 GB 的存儲空間,相比于?best_compression
?模式的 2.2 GB,壓縮效率顯著提高。
吞吐量表現(xiàn)
高壓縮率并沒有讓?zstd + source_reuse
?在吞吐量上做出妥協(xié),因為高壓縮率使得其需要持久化的數(shù)據(jù)大大減小,其中位吞吐量為 38942 docs/s,在 4 種模式中表現(xiàn)最好。
結(jié)論
zstd + source_reuse
?壓縮模式在存儲效率和查詢性能之間找到了一種極佳的平衡,強烈推薦各位在使用 Easysearch 時,當存儲成本比較敏感時,考慮使用?zstd + source_reuse
?壓縮模式。無論是在存儲成本還是寫入性能方面,它都能為你帶來顯著的優(yōu)勢。
關(guān)于 Easysearch

INFINI Easysearch 是一個分布式的近實時搜索與分析引擎,核心引擎基于開源的 Apache Lucene。Easysearch 的目標是提供一個輕量級的 Elasticsearch 可替代版本,并繼續(xù)完善和支持更多的企業(yè)級功能。 與 Elasticsearch 相比,Easysearch 更關(guān)注在搜索業(yè)務(wù)場景的優(yōu)化和繼續(xù)保持其產(chǎn)品的簡潔與易用性。
官網(wǎng)文檔:https://www.infinilabs.com/docs/latest/easysearch
下載地址:https://www.infinilabs.com/download