Elasticsearch的寫入優化

2021-09-02 05:30:14 字數 1010 閱讀 6045

再次優化的寫入流程

(1)資料寫入buffer緩衝和translog日誌檔案

(2)每隔一秒鐘,buffer中的資料被寫入新的segment file,並進入os cache,此時segment被開啟並供search使用

(3)buffer被清空

(4)重複1~3,新的segment不斷新增,buffer不斷被清空,而translog中的資料不斷累加

(5)當translog長度達到一定程度的時候,commit操作發生

(5-1)buffer中的所有資料寫入乙個新的segment,並寫入os cache,開啟供使用

(5-2)buffer被清空

(5-3)乙個commit ponit被寫入磁碟,標明了所有的index segment

(5-4)filesystem cache中的所有index segment file快取資料,被fsync強行刷到磁碟上

(5-5)現有的translog被清空,建立乙個新的translog

基於translog和commit point,如何進行資料恢復

fsync+清空translog,就是flush,預設每隔30分鐘flush一次,或者當translog過大的時候,也會flush

post /my_index/_flush,一般來說別手動flush,讓它自動執行就可以了

translog,每隔5秒被fsync一次到磁碟上。在一次增刪改操作之後,當fsync在primary shard和replica shard都成功之後,那次增刪改操作才會成功

但是這種在一次增刪改時強行fsync translog可能會導致部分操作比較耗時,也可以允許部分資料丟失,設定非同步fsync translog

Elasticsearch 參考指南(讀和寫文件)

本節簡要介紹elasticsearch的資料複製模型。elasticsearch中的每個索引都分為碎片,每個碎片可以有多個副本,這些副本稱為複製組,在新增或刪除文件時必須保持同步。如果我們不這樣做,從乙個副本中讀取將導致與從另乙個副本讀取的結果截然不同,保持碎片副本同步並從中提供讀取的過程就是我們所...

elasticsearch 增刪改流程和寫一致性

增刪改流程 1.客戶端和任一節點 假設 node1 發出請求,這個node就是coordinating node 協調節點 2.coordinating node,對document進行路由,將請求 給對應的node 有primary shard,假設是 node2 3.node2上的primary...

ElasticSearch的工作機制

elasticsearch,和solr一樣,是底層基於apache lucene,且具備高可靠性的企業級搜尋引擎。elasticsearch中的一些概念其實和關係型資料庫都有對應關係,比如資料庫在es中被稱為索引,表在es中被稱作type。具體對應關係見下表。elasticsearch中的repli...