溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進行Elasticsearch的Refresh與Flush操作

發(fā)布時間:2021-11-25 16:51:46 來源:億速云 閱讀:150 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關(guān)如何進行Elasticsearch的Refresh與Flush操作,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

初次接觸到這兩個概念,估計都會覺得他們沒什么差別,都是為了在操作索引之后讓索引可以被實時性的搜索,不過它們還是有點不同的。
Elasticsearch底層依賴Lucene,這里我們介紹下Lucene的segment, Reopen,commit。
Segment
在ES中,基本的存儲單元是shard(分片),但是在更底層的Lucene上稍微有點不同,ES的每一個shard是Lucene的一個index(索引),Lucene的索引由多個segment組成,每個segment就是ES文檔的倒序索引,里面包含了一些term(詞)的mapping(映射)。

如何進行Elasticsearch的Refresh與Flush操作

當每個ES的文檔創(chuàng)建的時候,都會寫入一個新的segment中,因此每次寫入的都是新的segment,所以不需要修改之前的segment。在刪除文檔的時候,只是在它屬于的segment哪里標記為已刪除就可,沒有真正的從磁盤中抹除。更新也是同樣的,只是在對應(yīng)之前segment哪里標記為邏輯刪除,然后新建一個新的segment。
Lucene Reopen
Reopen是為了讓數(shù)據(jù)可以可以被搜索到,盡管這個時候數(shù)據(jù)可以被搜索到,但是不一定保證數(shù)據(jù)已經(jīng)被持久化到磁盤中。
Lucene Commit
Commit就是為了讓數(shù)據(jù)持久化,每一次的Commit,不同segment的數(shù)據(jù)都會被持久化到磁盤中,雖然這樣可以讓數(shù)據(jù)更安全,但是每一次操作都會消耗系統(tǒng)資源,會有大量的IO操作。
Translog
ES在持久化的時候引入了一種新的方式,translog(transaction log),一個文檔被索引之后,就會被添加到內(nèi)存緩沖區(qū),并且 追加到了translog.

如何進行Elasticsearch的Refresh與Flush操作

ES的Refresh

默認情況下,ES會每秒refresh一次,每次操作都會把內(nèi)存緩沖區(qū)的內(nèi)容拷貝到新創(chuàng)建的segment中去,這一步是在內(nèi)存中操作的,這個時候新的文檔就會被搜索了。也就是說ES是近實時性的搜索,差不多1s鐘,才能讓數(shù)據(jù)可以被搜索到。
如何進行Elasticsearch的Refresh與Flush操作

ES的Flush

Flush操作意味著,所有在內(nèi)存緩沖區(qū)的文檔被寫到新的Lucene Segment中,也就是所有在內(nèi)存中的segment被提交到了磁盤,同時清除translog。

如何進行Elasticsearch的Refresh與Flush操作

一般Flush的時間間隔會比較久,默認30分鐘,或者當translog達到了一定的大小,也會觸發(fā)flush操作。

最后

簡單來說,ES的refresh操作是為了讓最新的數(shù)據(jù)可以立即被搜索到。而flush操作則是為了讓數(shù)據(jù)持久化到磁盤中,另外ES的搜索是在內(nèi)存中處理的,因此Flush操作不影響數(shù)據(jù)能否被搜索到。
translog一般在進行flush的時候被清空,一般在fsync和commit的時候被持久化到磁盤,默認的translog是在6.x版本以后,每次請求都會fsync到磁盤。不過有些index.translog的配置可以設(shè)置

以上就是如何進行Elasticsearch的Refresh與Flush操作,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI