日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

elasticsearch中 refresh 和flush区别【转】

發布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 elasticsearch中 refresh 和flush区别【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

elasticsearch中有兩個比較重要的操作:refresh 和 flush

refresh操作
當我們向ES發送請求的時候,我們發現es貌似可以在我們發請求的同時進行搜索。而這個實時建索引并可以被搜索的過程實際上是一次es 索引提交(commit)的過程,如果這個提交的過程直接將數據寫入磁盤(fsync)必然會影響性能,所以es中設計了一種機制,即:先將index-buffer中文檔(document)解析完成的segment寫到filesystem cache之中,這樣避免了比較損耗性能io操作,又可以使document可以被搜索。以上從index-buffer中取數據到filesystem cache中的過程叫做refresh。

?

refresh操作可以通過API設置: POST /index/_settings {“refresh_interval”: “10s”} 當我們進行大規模的創建索引操作的時候,最好將將refresh關閉。 POST /index/_settings {“refresh_interval”: “-1″} es默認的refresh間隔時間是1s,這也是為什么ES可以進行近乎實時的搜索。
flush操作與translog
我們可能已經意識到如果數據在filesystem?cache之中是很有可能在意外的故障中丟失。這個時候就需要一種機制,可以將對es的操作記錄下來,來確保當出現故障的時候,保留在filesystem的數據不會丟失,并在重啟的時候可以從這個記錄中將數據恢復過來。elasticsearch提供了translog來記錄這些操作。 當向elasticsearch發送創建document索引請求的時候,document數據會先進入到index?buffer之后,與此同時會將操作記錄在translog之中,當發生refresh時(數據從index buffer中進入filesystem cache的過程)translog中的操作記錄并不會被清除,而是當數據從filesystem cache中被寫入磁盤之后才會將translog中清空。而從filesystem cache寫入磁盤的過程就是flush。可能有點暈,我畫了一個圖幫大家理解這個過程:
總結一下translog的功能:
1.保證在filesystem?cache中的數據不會因為elasticsearch重啟或是發生意外故障的時候丟失。 2.當系統重啟時會從translog中恢復之前記錄的操作。 3.當對elasticsearch進行CRUD操作的時候,會先到translog之中進行查找,因為tranlog之中保存的是最新的數據。 4.translog的清除時間時進行flush操作之后(將數據從filesystem cache刷入disk之中)。
再總結一下flush操作的時間點:
1.es的各個shard會每個30分鐘進行一次flush操作。 2.當translog的數據達到某個上限的時候會進行一次flush操作。
有關于translog和flush的一些配置項:
index.translog.flush_threshold_ops:當發生多少次操作時進行一次flush。默認是 unlimited。 index.translog.flush_threshold_size:當translog的大小達到此值時會進行一次flush操作。默認是512mb。 index.translog.flush_threshold_period:在指定的時間間隔內如果沒有進行flush操作,會進行一次強制flush操作。默認是30m。 index.translog.interval:多少時間間隔內會檢查一次translog,來進行一次flush操作。es會隨機的在這個值到這個值的2倍大小之間進行一次操作,默認是5s。

總結

以上是生活随笔為你收集整理的elasticsearch中 refresh 和flush区别【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。