1. 程式人生 > >圖解elasticsearch的寫入流程

圖解elasticsearch的寫入流程

####elasticsearch寫入資料時涉及到的核心概念講解:

  1. segment file: 儲存倒排索引的檔案,每個segment本質上就是一個倒排索引,每秒都會生成一個segment檔案,當檔案過多時es會自動進行segment merge(合併檔案),合併時會同時將已經標註刪除的文件物理刪除;
  2. commit point(重點理解): 記錄當前所有可用的segment,每個commit point都會維護一個.del檔案(es刪除資料本質是不屬於物理刪除),當es做刪改操作時首先會在.del檔案中宣告某個document已經被刪除,檔案內記錄了在某個segment內某個文件已經被刪除,當查詢請求過來時在segment中被刪除的檔案是能夠查出來的,但是當返回結果時會根據commit point維護的那個.del檔案把已經刪除的文件過濾掉;
  3. translog日誌檔案: 為了防止elasticsearch宕機造成資料丟失保證可靠儲存,es會將每次寫入資料同時寫到translog日誌中(圖中會有詳解)。

####完整elasticsearch的寫入資料流程如下:
這裡寫圖片描述