文档

内核版本发布记录

在完全兼容开源Elasticsearch(ES)内核的所有特性基础上,阿里云ES在监控指标多样化、线程池、熔断策略优化、查询与写入性能优化等诸多方面,深度定制了AliES内核引擎。基于阿里云Elasticsearch团队在多种应用场景下所积累的丰富经验,提升集群稳定性、增强性能、优化成本和丰富监控运维功能。本文介绍AliES的内核版本及重点优化的特性。

7.16.2

内核版本

发布说明

1.7.0

新增aliyun-timestream时序增强插件,支持TimeStream时序类型索引的增删改查,降低时序场景门槛,并支持使用PromQL查询数据。详细信息请参见TimeStream时序增强引擎介绍基于TimeStream对接Prometheus+Grafana实现可观测性

7.10.0

内核版本

发布说明

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解析,实现原文写入优化,使原文写入性能提升一倍。

    • OpenStore

      • OpenStore智能混合存储实例,对业务索引默认开启混合存储特性,增强产品易用性。

      • OpenStore智能混合存储实例,提高元数据存储可靠性。例如,本地盘坏盘时保证元数据不丢失。

      • OpenStore智能混合存储实例,消除大文件写入导致的IO Util毛刺。

      • 优化Lucene层面termVectorsReader使用不当造成ES management线程ThreadLocalMap的堆积问题。

      • OpenStore存储实例查询性能提升:

        • 默认对倒排链读取开启预读策略,倒排链查询性能提升30%。

        • 进程重启后,加速其查询本地Page Cache的速度。

  • 通过以下代码开启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异常的问题。

    • 解决OpenStore智能混合存储实例断电重启时事务日志丢失,导致分片分配失败的问题。

    • 解决OpenStore智能混合存储实例频繁切换主分片时索引文件被误删,影响分片分配失败的问题。

1.8.0

新增aliyun-timestream时序增强插件,支持TimeStream时序类型索引的增删改查,降低时序场景门槛,并支持使用PromQL查询数据以及按照InfluxDB的行协议写数据。详细信息请参见TimeStream时序增强引擎介绍基于TimeStream对接Prometheus+Grafana实现可观测性TimeStream集成InfluxDB写协议接口

1.7.1

新增特性

  • OpenStore智能混合存储上线,突破传统冷热分离架构,大幅降低数据接入的复杂度及存储成本。您无须提前规划购买热数据存储空间,存储按实际用量付费;也无须手动配置冷热生命周期策略,系统会自动进行数据分层。

  • 开启Indexing Service索引构建服务后,支持设置取消托管时长,提升云上写入托管的稳定性。

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%。

    • 当用户集群写入量较大,为缓解写入托管服务Indexing Service集群资源压力,可平滑迁移至更充足的资源空间,对用户集群无影响。

  • Bug修复

    • 修复aliyun-codec插件中,source_reuse_doc_values特性不支持带.的字段名问题。

    • 修复开启Indexing Service索引构建服务的内核增强版集群,在执行force_merge取消托管时,遇到分片relocating状态长时间卡住的问题。

1.6.0

  • 支持OpenStore冷热共享计算模式,提供冷热共享计算数据节点及查询性能优化,无须单独购买冷数据节点即可存储海量日志数据,详细信息请参见OpenStore智能存储引擎介绍

  • 新增cold-search插件,支持OpenStore冷热数据共享查询能力,满足冷热索引的CPU和内存隔离熔断要求,详细信息请参见使用冷热隔离插件(cold-search)

  • 在aliyun-codec插件中新增source复用docvalue特性,进一步降低索引大小及成本,详细信息请参见使用aliyun-codec插件

  • 更新aliyun-qos插件2.0版本,支持更细粒度的限流类型和限流参数设置,详细信息请参见使用集群限流插件(aliyun-qos)

1.5.0

1.4.0

  • 更新aliyun-knn插件,优化写入性能,使写入性能相对于老版本有所提升;同时支持script查询,并集成了smind硬件优化后的指令,丰富了向量检索功能。

  • 增强aliyun-qos分布式限流插件功能,提供了集群级别的限流能力,使您无需再关注内部节点的实际拓扑和负载情况,各节点之间能够自适应分配流量比例,易用性与稳定性相比单机版QoS有显著提升。

  • 支持Indexing Service系列,提升租户集群稳定性。

1.3.0

  • 提供慢查询隔离池,降低异常查询对集群稳定性的影响。

  • 提供gig流控插件,实现机器异常秒级切流,降低坏节点导致查询抖动的概率。

    说明

    在商业版7.10.0中,gig流控插件默认集成在aliyun-qos集群限流插件中(默认已安装),不需要单独安装。

  • 支持通用物理复制功能,提高有副本索引的写入性能。

  • 支持时序查询剪枝功能,提高含时序字段范围的查询性能。

  • 支持查询access.log,包括请求时间、客户端来源和请求内容等,可用于问题排查和请求分析。

  • 主节点调度性能提升10倍,支持调度更多分片数。

6.7.0

内核版本

发布说明

1.3.0

  • 提供慢查询隔离池,降低异常查询对集群稳定性的影响。

  • 提供gig流控插件,实现机器异常秒级切流,降低坏节点导致查询抖动的概率。

重要

在使用以上功能时,需要先将内核版本升级至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

  • 本页导读 (1)
文档反馈