Elasticsearch refresh 和 fresh 特性梳理

refresh

數據從index buffer中進入filesystem cache的過程)translog中的操作記錄並不會被清除,當數據從filesystem cache中被寫入磁盤之後纔會將translog中清空。

手動執行refresh:

調用_refresh就可以立即實現內存->文件系統緩存, 從而使文檔可以立即被搜索到。

#單個index
POST /twitter/_refresh

#多個index
POST /index01,index02/_refresh

#全部index
POST /_refresh

參考圖

Elasticsearch refresh 和 fresh 特性梳理

fresh

從filesystem cache寫入磁盤的過程就是flush。

手動執行fresh:

#單個index
POST /twitter/_fresh

#多個index
POST /index01,index02/_fresh

#全部index
POST /_fresh

觸發fresh的條件

1:es的各個shard會每個30分鐘進行一次flush操作;
2:或者當 translog 文件大小大於512MB主動進行一次 flush;
3:每次 index、bulk、delete、update 完成的時候,觸發flush translog 到磁盤上;

核心配置項:

1:index.translog.flush_threshold_ops:
當發生多少次操作時進行一次flush。默認是 unlimited。

2:index.translog.flush_threshold_size:
當translog的大小達到此值時會進行一次flush操作。默認是512mb。

3:index.translog.flush_threshold_period:
在指定的時間間隔內如果沒有進行flush操作,會進行一次強制flush操作。默認是30m。

4:index.translog.interval:
多少時間間隔內會檢查一次translog,來進行一次flush操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章