Skip to content

Alias aggregation queries are used in large quantities without es query cache, and the performance is poor #86827

@yqbboy

Description

@yqbboy

Elasticsearch Version

6.0

Installed Plugins

No response

Java Version

java version "1.8.0_172" Java(TM) SE Runtime Environment (build 1.8.0_172-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)

OS Version

CentOS7

Problem Description

t present, our index is created according to the amount of data. For example, 100 million doc will create an index, but the alias is created by day. In our formal environment, there is such a scenario. For a total of two years, all aliases point to an index with a data volume of about 10 million. When we query, we will use aliases to query. When we select a wide range of time (for example, the time span is two years), the background will filter out the aliases that meet the conditions (about 600). The problem is that each query or aggregation is very slow. When I specify a real index, the query performance can be improved very much. And using a large number of aliases does not take the ES cache.

Steps to Reproduce

  1. Create an index with a data volume of about 10 million, and then create aliases by day and point them to the index respectively. Use aliases (for example, create 600 aliases) to aggregate queries on the index, and all 600 aliases are added to the query statement.

  2. Use transport client API

Logs (if relevant)

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions