This meta issue tracks ongoing work to modernize and optimize the hash structures used inside the ES|QL STATS operator. The goal is to replace the legacy hash implementation with SwissTable-inspired structures that provide predictable performance, better memory locality, and improved correctness under high-cardinality workloads.
The first step in this effort is the introduction of LongSwissTable and BytesRefSwissTable, but there are several follow-up improvements, hardening steps, and integrations planned.
Goals
- Improve STATS operator throughput and memory efficiency
- Reduce probe lengths and worst-case behavior under high cardinality
- Improve correctness and observability of hash-structure behavior
- Provide a maintainable, well-tested, well-benchmarked hashing foundation for future ES|QL features
Work Breakdown
1. Integration into ES|QL STATS
2. Benchmarking & Performance Profiling
3. Correctness Hardening
4. Implementation Improvements
5. Future Enhancements
Status
relates: #137842
This meta issue tracks ongoing work to modernize and optimize the hash structures used inside the ES|QL STATS operator. The goal is to replace the legacy hash implementation with SwissTable-inspired structures that provide predictable performance, better memory locality, and improved correctness under high-cardinality workloads.
The first step in this effort is the introduction of LongSwissTable and BytesRefSwissTable, but there are several follow-up improvements, hardening steps, and integrations planned.
Goals
Work Breakdown
1. Integration into ES|QL STATS
LongSwissTable/BytesRefSwissTable2. Benchmarking & Performance Profiling
3. Correctness Hardening
4. Implementation Improvements
5. Future Enhancements
Status
relates: #137842