mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-22 06:07:55 -04:00
* ESQL: Speed up VALUES for many buckets (#123073) Speeds up the VALUES agg when collecting from many buckets. Specifically, this speeds up the algorithm used to `finish` the aggregation. Most specifically, this makes the algorithm more tollerant to large numbers of groups being collected. The old algorithm was `O(n^2)` with the number of groups. The new one is `O(n)` ``` (groups) 1 219.683 ± 1.069 -> 223.477 ± 1.990 ms/op 1000 426.323 ± 75.963 -> 463.670 ± 7.275 ms/op 100000 36690.871 ± 4656.350 -> 7800.332 ± 2775.869 ms/op 200000 89422.113 ± 2972.606 -> 21920.288 ± 3427.962 ms/op 400000 timed out at 10 minutes -> 40051.524 ± 2011.706 ms/op ``` The `1` group version was not changed at all. That's just noise in the measurement. The small bump in the `1000` case is almost certainly worth it and real. The huge drop in the `100000` case is quite real. * Fix * Compile |
||
---|---|---|
.. | ||
dev-tools | ||
libs | ||
license-tools | ||
plugin | ||
qa | ||
rest-resources-zip | ||
test | ||
build.gradle | ||
NOTICE.txt | ||
README.md |
Elastic License Functionality
This directory tree contains files subject to the Elastic License. The files subject to the Elastic License are grouped in this directory to clearly separate them from files licensed under the Server Side Public License, v 1.