Elasticsearch准實時索引實現(數據寫入到es分片並存儲到文件中的過程)


溢寫到文件系統緩存

  • 當數據寫入到ES分片時,會首先寫入到內存中,然后通過內存的buffer生成一個segment,並刷到文件系統緩存中,數據可以被檢索(注意不是直接刷到磁盤)
  • ES中默認1秒,refresh一次

寫translog保障容錯

  • 在寫入到內存中的同時,也會記錄translog日志,在refresh期間出現異常,會根據translog來進行數據恢復
  • 等到文件系統緩存中的segment數據都刷到磁盤中,清空translog文件

flush到磁盤

  • ES默認每隔30分鍾會將文件系統緩存的數據刷入到磁盤

segment合並

  • Segment太多時,ES定期會將多個segment合並成為大的segment,減少索引查詢時IO開銷,此階段ES會真正的物理刪除(之前執行過的delete的數據)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM