Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
CKMS Quantiles/Summary Performance Improvements
Optimized insertion: Replaced linear search with binary search in the insertBatch algorithm, improving insertion speed.
Enhanced readability & maintainability: Streamlined index management in both the compress and insertBatch algorithms, resulting in cleaner, more maintainable code.
Prevent undefined behavior: Addressed potential issues in the compress method by eliminating vector element erasure during iteration, preventing iterator invalidation and out-of-bounds errors.
Pre-allocation: Reserved vector capacity upfront when the size is known, eliminating multiple resize operations and significantly enhancing performance.
The observations clearly indicate that for a limited number of quantiles (typically around 8), which represent the most common use case, there are substantial performance gains. However, for a larger number of quantiles (around 64), the performance improvements are either negligible or slightly diminished.