使用 Easysearch,日志存儲(chǔ)少一半

在海量日志存儲(chǔ)場(chǎng)景中愉阎,索引膨脹率是一個(gè)關(guān)鍵指標(biāo)桦踊,直接影響存儲(chǔ)成本和查詢性能椅野。它表示原始數(shù)據(jù)與索引數(shù)據(jù)在磁盤(pán)上所占空間的比率。較高的索引膨脹率不僅增加了存儲(chǔ)成本籍胯,而且可能會(huì)影響查詢速度竟闪,尤其是在 I/O 密集型的查詢中。因此杖狼,我們需要密切關(guān)注和優(yōu)化索引膨脹率炼蛤。接下來(lái),我們將比較 Elasticsearch 和 Easysearch 在處理相同數(shù)據(jù)時(shí)的索引膨脹率蝶涩。

測(cè)試結(jié)果 #

一圖勝千言理朋,下圖是 Easysearch v1.1 和 Elasticsearch v6.4.3 的索引大小測(cè)試對(duì)比,Y 軸單位是 MB绿聘。

使用 Easysearch v1.1 的壓縮功能嗽上,比 Elasticsearch v6.4.3 的索引大小降低了 50%。

p1.png

測(cè)試說(shuō)明 #

以下是對(duì) Elasticsearch v6.4.3 版本熄攘,測(cè)試數(shù)據(jù) 500 萬(wàn)條大小 1.054G(1080M)的 nginx 日志兽愤,使用 es 默認(rèn)的 mapping,分別用 best_compression 和 default 的壓縮策略進(jìn)行寫(xiě)入。 Elasticsearch v6.4.3

索引 大小(MB) 膨脹率 條數(shù)(萬(wàn))
nginx_default_1g 1812.61 1.61 500
nginx_best_1g 1551.36 1.42 500

然后我們對(duì)比下浅萧,使用極限科技的 Easysearch 進(jìn)行索引膨脹率的壓測(cè).

Easysearch 是什么逐沙? #

INFINI Easysearch 衍生自基于開(kāi)源協(xié)議 Apache 2.0 的 Elasticsearch 7.10 版本。 Easysearch 的目標(biāo)是提供一個(gè)輕量級(jí)的 Elasticsearch 可替代版本洼畅,并繼續(xù)完善和支持更多的企業(yè)級(jí)功能吩案,與 Elasticsearch 相比,Easysearch 更關(guān)注在搜索業(yè)務(wù)場(chǎng)景的優(yōu)化和繼續(xù)保持其產(chǎn)品的簡(jiǎn)潔與易用性帝簇。 安裝包大小只有 54 兆徘郭,相比 Elasticsearch 動(dòng)輒一兩百兆的安裝包更加輕量級(jí)。 Easysearch v1.1

索引 大小(MB) 膨脹率 條數(shù)(萬(wàn))
nginx_default_1g 1514 1.33 500
nginx_best_1g 1286 1.138 500
nginx_zstd_1g 1015.3 0.94 500
nginx_reuse_1g 758.39 0.70 500

注意上面使用到的 Easysearch 的壓縮策略有 4 種:

壓縮策略 描述
default 和 Elasticsearch 的 default 壓縮策略一致己儒。
best_compression 和 Elasticsearch 的 best_compression 一致崎岂。
ZSTD ZSTD(Zstandard)是一種開(kāi)源的壓縮算法和壓縮庫(kù)捆毫,旨在提供高性能和高壓縮比的數(shù)據(jù)壓縮解決方案闪湾。由 Facebook 開(kāi)發(fā)并開(kāi)源的一個(gè)壓縮庫(kù),Easysearch 1.1 版引入了這個(gè)壓縮算法作為一個(gè)可選的壓縮策略绩卤,分別對(duì)存儲(chǔ)字段途样,doc_values,和詞典文件進(jìn)行了壓縮濒憋,并且 Easysearch 使用的 zstd 是純 java 版何暇,不依賴底層的操作系統(tǒng)和 cpu 架構(gòu),無(wú)需單獨(dú)編譯可以直接部署在國(guó)產(chǎn)的操作系統(tǒng)和芯片上凛驮。
index.source_reuse Easysearch v1.1 新增加的一個(gè)索引配置項(xiàng)裆站,表示是否對(duì) source 中的字段進(jìn)行復(fù)用,熟悉 Elasticsearch 存儲(chǔ)結(jié)構(gòu)的都知道黔夭,es 底層依賴 lucene 作為核心的存儲(chǔ)和查詢引擎宏胯,默認(rèn) mapping 下,在將 es 的字段解析成 lucene 的對(duì)應(yīng)字段后本姥,一個(gè) keyword 類型的字段會(huì)分別存儲(chǔ)在 _source 和 doc_values 字段里肩袍,Easysearch 將 keyword 字段在 source 存儲(chǔ)時(shí)進(jìn)行了過(guò)濾,然后在查詢階段又利用 doc_values 對(duì) source 里過(guò)濾的 keyword 字段進(jìn)行了無(wú)縫拼接婚惫,用戶層面感知不到對(duì) keyword 字段的特殊處理氛赐。

default 和 best_compression 比之前 6.43 版的膨脹率降低是因?yàn)榈靡嬗?lucene 版本的升級(jí)到了 8.11.2,新版的 lucene 的壓縮比之前的版本有了很大提升先舷。 重點(diǎn)是最后利用 ZSTD 加 index.source_reuse艰管,存儲(chǔ)資源的占用比之前 6.43 版本的 best_compression 的 1.5G 減少了 50%,對(duì)比相同 lucene 版本的 best_compression蒋川,存儲(chǔ)資源也減少了 40%牲芋,帶來(lái)以下幾點(diǎn)好處:

  • 降低存儲(chǔ)成本:較低的索引膨脹率意味著存儲(chǔ)相同量的數(shù)據(jù)需要更少的磁盤(pán)空間,這將直接減少硬件和維護(hù)成本。
  • 提高系統(tǒng)擴(kuò)展性:由于索引占用的存儲(chǔ)空間較小街图,可以在相同的硬件上處理更多的數(shù)據(jù)浇衬,或者在擴(kuò)展存儲(chǔ)時(shí),需要添加的硬件更少餐济。
  • 更高效的數(shù)據(jù)備份和傳輸:小的索引文件意味著備份和傳輸數(shù)據(jù)的時(shí)間和帶寬需求都會(huì)減少耘擂。

使用方法 #

##啟用ZSTD
PUT nginx_zstd
{
  "settings": {
    "codec": "ZSTD"
  }
}

##啟用index.source_reuse
PUT nginx_reuse
{
  "settings": {
    "index.source_reuse": true
  }
}

##結(jié)合使用
PUT nginx_reuse
{
  "settings": {
    "codec": "ZSTD",
    "index.source_reuse": true
  }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市絮姆,隨后出現(xiàn)的幾起案子醉冤,更是在濱河造成了極大的恐慌,老刑警劉巖篙悯,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚁阳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡鸽照,警方通過(guò)查閱死者的電腦和手機(jī)螺捐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)矮燎,“玉大人定血,你說(shuō)我怎么就攤上這事〉猓” “怎么了澜沟?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)峡谊。 經(jīng)常有香客問(wèn)我茫虽,道長(zhǎng),這世上最難降的妖魔是什么既们? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任濒析,我火速辦了婚禮,結(jié)果婚禮上贤壁,老公的妹妹穿的比我還像新娘悼枢。我一直安慰自己,他們只是感情好脾拆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布馒索。 她就那樣靜靜地躺著,像睡著了一般名船。 火紅的嫁衣襯著肌膚如雪绰上。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天渠驼,我揣著相機(jī)與錄音蜈块,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛百揭,可吹牛的內(nèi)容都是我干的爽哎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼器一,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼课锌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起祈秕,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤渺贤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后请毛,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體志鞍,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年方仿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了固棚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡兼丰,死狀恐怖玻孟,靈堂內(nèi)的尸體忽然破棺而出唆缴,到底是詐尸還是另有隱情鳍征,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布面徽,位于F島的核電站艳丛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏趟紊。R本人自食惡果不足惜氮双,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望霎匈。 院中可真熱鬧戴差,春花似錦、人聲如沸铛嘱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)墨吓。三九已至球匕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帖烘,已是汗流浹背亮曹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人照卦。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓式矫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親役耕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子衷佃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容