refresh
數據從index buffer中進入filesystem cache的過程)translog中的操作記錄並不會被清除,當數據從filesystem cache中被寫入磁盤之後纔會將translog中清空。
手動執行refresh:
調用_refresh就可以立即實現內存->文件系統緩存, 從而使文檔可以立即被搜索到。
#單個index
POST /twitter/_refresh
#多個index
POST /index01,index02/_refresh
#全部index
POST /_refresh
參考圖
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操作。