1. 程式人生 > >elasticsearch寫入資料儲存的過程

elasticsearch寫入資料儲存的過程

es建索引寫入資料,資料最先是存在記憶體buffer裡的,然後再刷入到lucene的底層檔案segment中;
寫入segment完畢後再執行refresh操作,refresh操作後,資料將commit到磁碟中。
資料刷入到了磁碟,就可以執行查詢操作了。


       過程簡單描述如下:記憶體buffer-->segment-->refresh-->磁碟


注意,這些過程,會有translog記錄;translog存在的意義就是保證資料刷入的可靠性;
因為我們剛才說過,es建索引寫入資料的過程是記憶體到磁碟的過程,這個過程有日誌的記錄,
那就是translog,當資料還在記憶體裡沒刷到磁碟中時,如果伺服器down了又沒translog機制的話,
那麼資料就會丟失,有了translog,伺服器down機後再起來,就能很快恢復寫入的過程。

       這裡要注意的是,translog也是先存在記憶體裡的,然後預設5秒刷一次寫到硬盤裡。