使用apack插件的物理復(fù)制功能
apack插件是阿里云Elasticsearch團(tuán)隊自研的插件,支持物理復(fù)制和向量檢索功能,本文僅介紹物理復(fù)制功能。物理復(fù)制功能適用于索引有副本、寫入數(shù)據(jù)量大、對數(shù)據(jù)寫入后可見性延遲要求不高的場景,例如日志場景、時序分析場景等,可以大幅度降低CPU開銷,提升寫入性能。
前提條件
- 創(chuàng)建阿里云Elasticsearch實例,版本為6.7.0,內(nèi)核版本為1.2.0及以上。
-
安裝apack插件。
目前僅6.7.0版本的阿里云Elasticsearch實例支持apack插件。當(dāng)實例的內(nèi)核版本為1.2.0以下時,需升級內(nèi)核版本后使用該插件;當(dāng)實例的內(nèi)核版本為1.2.0及以上時,系統(tǒng)默認(rèn)已安裝apack插件,不可卸載。說明 apack插件安裝后,您既可以使用物理復(fù)制功能,也可以使用向量檢索功能。本文僅介紹物理復(fù)制功能的使用方法,向量檢索功能的使用方法請參見使用向量檢索插件(aliyun-knn)。
背景信息
物理復(fù)制功能的基本原理為: 阿里云Elasticsearch中索引的主分片和副本分片(以下簡稱主副分片)之間的同步原理默認(rèn)與原生Elasticsearch一樣,即請求先寫入主分片,再由主分片同步給副本分片,此時主副本分片都會寫索引文件及translog。開啟物理復(fù)制功能后,Elasticsearch主分片寫入機(jī)制與原生Elasticsearch一樣,既寫索引文件也寫translog,而副本分片只寫translog以保證數(shù)據(jù)的可靠性和一致性。主分片在每次refresh時,通過網(wǎng)絡(luò)將增量的索引文件拷貝到副本分片,在主副分片分配可見性延遲略增加的情況下,大幅度提高了集群的寫入性能。
-
測試環(huán)境
- 機(jī)器配置:數(shù)據(jù)節(jié)點8核32GB*5 + 2TB SSD云盤。
- 數(shù)據(jù)集:官方esrally自帶的nyc_taixs(74GB)。
- 索引配置:使用默認(rèn)配置(5個主分片,1個副本分片)。
-
測試結(jié)果
產(chǎn)品 寫入速度(doc/s) 原生Elasticsearch 6.7.0 127305 阿里云Elasticsearch 6.7.0,并開啟物理復(fù)制功能 184592 -
結(jié)論
與原生Elasticsearch相比,阿里云Elasticsearch在開啟了物理復(fù)制功能后,寫入性能提升大于45%。
注意事項
-
apack插件的物理復(fù)制功能作用于索引。對于插件安裝前創(chuàng)建的索引,默認(rèn)未開啟,使用時需要先開啟。對于插件安裝后創(chuàng)建的索引,默認(rèn)開啟。
- 阿里云Elasticsearch支持將已開啟物理復(fù)制功能的索引切回到原生模式(主副分片都會寫索引和translog),但需要先關(guān)閉該索引。
- 在為原生模式的索引開啟物理復(fù)制功能前,需要先關(guān)閉該索引,并將副本數(shù)設(shè)置為0。
開啟物理復(fù)制功能
PUT index-1 { "settings": { "index.replication.type" : "segment" }
}
關(guān)閉物理復(fù)制功能
為已有索引開啟物理復(fù)制功能

PUT index-1/_settings
{ "index.number_of_replicas": 1 }