apack插件是阿里云Elasticsearch團隊自研的插件,支持物理復制和向量檢索功能,本文僅介紹物理復制功能。物理復制功能適用于索引有副本、寫入數據量大、對數據寫入后可見性延遲要求不高的場景,例如日志場景、時序分析場景等,可以大幅度降低CPU開銷,提升寫入性能。

前提條件

  • 創建阿里云Elasticsearch實例,版本為6.7.0且內核版本為1.2.0及以上,或7.10.0。本文以阿里云Elasticsearch 6.7.0為例介紹。創建實例的方法,請參見創建阿里云Elasticsearch實例
  • 安裝apack插件。
    目前僅6.7.0和7.10.0版本的阿里云Elasticsearch實例支持apack插件。當6.7.0實例的內核版本為1.2.0以下時,需升級內核版本后使用該插件;當實例的內核版本為1.2.0及以上時,系統默認已安裝apack插件,不可卸載。您可在插件配置頁面查看。
    說明 apack插件安裝后,您既可以使用物理復制功能,也可以使用向量檢索功能。本文僅介紹物理復制功能的使用方法,向量檢索功能的使用方法請參見使用向量檢索插件(aliyun-knn)

背景信息

物理復制功能的基本原理為: 阿里云Elasticsearch中索引的主分片和副本分片(以下簡稱主副分片)之間的同步原理默認與原生Elasticsearch一樣,即請求先寫入主分片,再由主分片同步給副本分片,此時主副本分片都會寫索引文件及translog。開啟物理復制功能后,Elasticsearch主分片寫入機制與原生Elasticsearch一樣,既寫索引文件也寫translog,而副本分片只寫translog以保證數據的可靠性和一致性。主分片在每次refresh時,通過網絡將增量的索引文件拷貝到副本分片,在主副分片分配可見性延遲為毫秒級別的情況下,大幅度提高了集群的寫入性能。

物理復制功能的性能測試信息如下:
  • 測試環境
    • 機器配置:數據節點8核32 GB*5 + 2 TB SSD云盤。
    • 數據集:官方Rally自帶的nyc_taxis(74 GB)。
    • 索引配置:使用默認配置(5個主分片,1個副本分片)。
  • 測試結果
    產品 寫入速度(doc/s)
    原生Elasticsearch 6.7.0 127305
    阿里云Elasticsearch 6.7.0,并開啟物理復制功能 184592
  • 結論

    與原生Elasticsearch相比,阿里云Elasticsearch在開啟了物理復制功能后,寫入性能提升大于45%。

說明 本文中的命令均可在Kibana控制臺中執行,詳情請參見登錄Kibana控制臺。

注意事項

  • apack插件的物理復制功能作用于索引。對于插件安裝前創建的索引,默認未開啟,使用時需要先開啟。對于插件安裝后創建的索引,默認開啟。
    注意 如果您需要使用跨集群復制功能,需要先關閉物理復制功能,詳情請參見關閉物理復制功能。
  • 阿里云Elasticsearch支持將已開啟物理復制功能的索引切回到原生模式(主副分片都會寫索引和translog),但需要先關閉該索引。
  • 在為原生模式的索引開啟物理復制功能前,需要先關閉該索引,并將副本數設置為0。

開啟物理復制功能

在創建索引時,通過settings開啟物理復制功能。
PUT index-1
{
"settings": {
 "index.replication.type" : "segment"
 }
}

關閉物理復制功能

  1. 關閉索引。
    POST index-1/_close
  2. 更新索引settings,關閉物理復制功能。
    PUT index-1/_settings
    {
    "index.replication.type" : null
    }
  3. 打開索引。
    POST index-1/_open

為已有索引開啟物理復制功能

  1. 將索引的副本數設置為0。
    PUT index-1/_settings
    {
      "index.number_of_replicas": 0
    }
  2. 關閉索引。
    POST index-1/_close
  3. 更新索引settings,打開物理復制功能。
    PUT index-1/_settings
    {
    "index.replication.type" : "segment"
    }
  4. 打開索引。
    POST  index-1/_open
  5. 將索引的副本數設置為1。
    PUT index-1/_settings
    {
      "index.number_of_replicas": 1
    }

常見問題

Q:使用物理復制功能,主備復制的延遲時間是多少?

A:主備復制的延遲時間與集群負載及寫入量有關,您可以在高級監控下引擎指標中的索引維度增量拷貝延遲指標獲取延遲耗時,詳細信息請參見引擎指標。