Elasticsearch 想必大家都知道是什么,用于什么,一些基本的概念包括index,type.mapping,shard(primary shard,replica shard),document,cluster,node等等,以及如何安裝下載Elasticsearch,head插件,kibana,logstash這里就不一一介紹了.今天主要講解一下document是如何寫(xiě)入到es中的,其他的相關(guān)文檔我會(huì)陸續(xù)的補(bǔ)上.
用圖解剖析document寫(xiě)入原理:
1,將document寫(xiě)入內(nèi)存buffer緩存中,同時(shí)寫(xiě)入到translog中
?2,每隔一秒鐘被碗,buffer中的數(shù)據(jù)被寫(xiě)入新的segment file仿村,
3,同時(shí)進(jìn)入os cache,此時(shí)index segment file被打開(kāi)并供search使用,
4,buffer被清空
5,重復(fù)1~3蔼囊,新的segment不斷添加焚志,buffer不斷被清空,而translog中的數(shù)據(jù)不斷累加
6,當(dāng)translog長(zhǎng)度達(dá)到一定程度的時(shí)候酱酬,commit操作發(fā)生
? (6-1)buffer中的所有數(shù)據(jù)寫(xiě)入一個(gè)新的segment,并寫(xiě)入os cache膳沽,打開(kāi)供使用
? (6-2)buffer被清空
? (6-3)一個(gè)commit ponit被寫(xiě)入磁盤(pán),標(biāo)明了所有的index segment
? (6-4)filesystem cache中的所有index segment file緩存數(shù)據(jù)陨界,被fsync強(qiáng)行刷到磁盤(pán)上
? 9,現(xiàn)有的translog被清空,創(chuàng)建一個(gè)新的translog