全部產品
Search
文件中心

Elasticsearch:核心版本發布記錄

更新時間:Nov 02, 2024

在完全相容開源Elasticsearch(ES)核心的所有特性基礎上,阿里雲ES在監控指標多樣化、線程池、熔斷策略最佳化、查詢與寫入效能最佳化等諸多方面,深度定製了AliES核心引擎。基於Elasticsearch團隊在多種應用情境下所積累的豐富經驗,提升叢集穩定性、增強效能、最佳化成本和豐富監控營運功能。本文介紹AliES的核心版本及重點最佳化的特性。

ES 7.16.2版本

1.7.0核心版本發布說明

ES 7.10.0版本

1.12.0核心版本發布說明

  • 新增、最佳化特性

    • search:

      • 增加同義字外掛程式。

      • 在保持原有均衡能力的情況下增加主分區均衡功能。

      • 增加wildcard,prefix查詢參數長度限制能力。

      • 基於DocValue最佳化keyword類型terms、prefix等複雜查詢,低命中率情境下查詢效能提升80%。

      • 基於DocValue最佳化數實值型別term、terms查詢,低命中率情境下查詢效能提升80%。

      • 基於lazyload策略最佳化BKD term/terms情境的查詢效能,查詢效能提升30%。

  • Bug修複

    • 最佳化儲存層任務管理,解決偶發出現RPC通訊卡住的問題。

    • 最佳化資料複製流程,避免副本節點出現fail engine。

    • 最佳化副本晉陞流程,避免出現主/副本索引檔案內容不一致的問題。

1.10.0核心版本發布說明

  • 新增、最佳化特性

    • Store/Snapshot:

      最佳化LuceneVerifyIndexOutput實現,提升索引恢複速度。更多資訊,請參見ES pull 96975

    • Cluster Coordination

      持久化任務不再引用ClusterState,大規模叢集中會導致master節點記憶體升高,為避免大規模叢集選主逾時,cluster.election.initial_timeout預設值從100 ms改成1 s。更多資訊,請參見ES pull 90724

    • Search

      • 增加端到端查詢逾時功能,有效控制查詢整體耗時,支援在逾時情況下返回部分結果。

      • 訪問日誌增加部分欄位。

  • Bug修複

    • Lucene:

      修複Lucene Merge引用的DV update索引檔案,被並發flush操作刪除的問題。更多資訊,請參見Lucene

1.9.0核心版本發布說明

  • 新增、最佳化特性

    • 核心增強版並發查詢方塊架重構和最佳化:

      • 最佳化並發架構,降低查詢耗時。

      • 實現了記憶體複用,最佳化JVM記憶體熔斷和GC開銷問題,充分提高資源利用。

      • 降低原文fetch並發中fetch階段的耗時。例如,size為10000的情境,fetch階段可以降低6~10倍耗時,整體耗時可以降低50%。

      • 適配更多的彙總查詢,包括PercentilesAggregation、PercentileRanksAggregation、SamplerAggregation、DiversifiedAggregation、SignificantTextAggregation、GeoDistanceAggregation、GeoHashGridAggregation、GeoTileGridAggregation、GeoBoundsAggregation、GeoCentroidAggregation、ScriptedMetricAggregation。

    • 端到端的訪問日誌增加查詢耗時、traceId等欄位,可以使用traceId串聯查詢流程。

    • 通過最佳化自訂原文索引結構和mapping解析,實現原文寫入最佳化,使原文寫入效能提升一倍。

  • 通過以下代碼開啟Cache,解決某些情境中主查詢少,子查詢多,而未對子查詢開啟緩衝的問題。

    PUT _cluster / settings 
    {
    	"persistent": {
    		"search.query_cache_get_wait_lock_enable": "true",
    		"search.query_cache_skip_factor": "200000000"
    	}
    }
  • 最佳化knn情境主副本分區點位不一致問題。

  • Bug修複

    • 修複藍綠變更時,當節點上面Shard遷移後, 執行GET _cat/node異常的問題。

1.8.0核心版本發布說明

新增aliyun-timestream時序增強外掛程式,支援TimeStream時序類型索引的增刪改查,降低時序情境門檻,並支援使用PromQL查詢資料以及按照InfluxDB的行協議寫資料。詳細資料請參見TimeStream時序增強引擎介紹基於TimeStream對接Prometheus+Grafana實現可觀測性TimeStream整合InfluxDB寫協議介面

1.7.0核心版本發布說明

  • 新增特性

    Analyticsearch查詢最佳化上線,基於日誌檢索外掛程式實現查詢效能大幅提升,具體說明如下:

    • 日誌檢索情境,例如Kibana Discover查詢加速,最佳化索引合并策略及Date_histogram執行計畫策略,無條件或單條件查詢效能提升6倍以上(日增量>1 TB資料量的情境下,分鐘級查詢可最佳化至5s內)。

    • 最佳化並發查詢,實現召回過程的並發,提高資源使用率,日誌情境召回階段平均耗時降低50%。

    • 唯讀小segment在Force Merge前持續合并,相比合并前查詢效能提升20%。

  • 效能最佳化

    • 協調節點和資料節點間寫入請求傳輸使用輕量級壓縮演算法LZ4,節點網路頻寬開銷降低30%。

    • 最佳化Force Merge任務的並發粒度至分區層級,降低Force Merge耗時。

    • 支援配置原文大塊壓縮並最佳化ZSTD壓縮演算法參數,原文大小降低8%;通過最佳化Backports lucene postings pfor編碼,索引大小降低3%。

  • Bug修複

1.6.0核心版本發布說明

1.5.0核心版本發布說明

1.4.0核心版本發布說明

  • 更新aliyun-knn外掛程式,最佳化寫入效能,使寫入效能相對於老版本有所提升;同時支援script查詢,並整合了smind硬體最佳化後的指令,豐富了向量檢索功能。

  • 增強aliyun-qos分布式限流外掛程式功能,提供了叢集層級的限流能力,使您無需再關注內部節點的實際拓撲和負載情況,各節點之間能夠自適應分配流量比例,易用性與穩定性相比單機版QoS有顯著提升。

1.3.0核心版本發布說明

  • 提供慢查詢隔離池,降低異常查詢對叢集穩定性的影響。

  • 提供gig流控外掛程式,實現機器異常秒級切流,降低壞節點導致查詢抖動的機率。

    說明

    在商業版7.10.0中,gig流控外掛程式預設整合在aliyun-qos叢集限流外掛程式中(預設已安裝),不需要單獨安裝。

  • 支援通用物理複製功能,提高有副本索引的寫入效能。

  • 支援時序查詢剪枝功能,提高含時序欄位範圍的查詢效能。

  • 支援查詢access.log,包括請求時間、用戶端來源和請求內容等,可用於問題排查和請求分析。

  • 主節點調度效能提升10倍,支援調度更多分區數。

ES 6.7.0版本

1.3.0核心版本發布說明

重要

在使用以上功能時,需要先將核心版本升級至1.3.0版本,支援升級的版本包括:通用商業版0.3.0、1.0.2、1.3.0,不支援1.0.1。

1.2.0核心版本發布說明

  • 支援通用物理複製功能,提高有副本索引的寫入效能。

  • 支援時序查詢剪枝功能,提高含時序欄位範圍的查詢效能。

  • 支援主鍵查詢去重最佳化,帶主鍵文檔的寫入效能提升10%。

  • 支援堆外FST,單節點支援儲存最大20 TB的索引資料。

1.0.2核心版本發布說明

支援查詢access.log,包括請求時間、用戶端來源、請求內容等,可用於問題排查和請求分析。

1.0.1核心版本發布說明

支援配置JVM熔斷策略,JVM達到95%後會拒絕請求保護叢集,參數設定如下:

  • indices.breaker.total.use_real_memory:預設為false。

  • indices.breaker.total.limit:預設為95%。

0.3.0核心版本發布說明