linrrzqqq opened a new pull request, #65421: URL: https://github.com/apache/doris/pull/65421
Problem Summary: This PR optimizes bitmap execution performance by updating the forked Roaring64Map implementation and refactoring the small-cardinality SET representation in BitmapValue. Roaring64Map update from: https://github.com/RoaringBitmap/CRoaring/blob/v4.7.2/cpp/roaring/roaring64map.hh The SET refactored from `phmap::flat_hash_set` to `std::array `, a fixed-size inline small set to reduces heap allocation, improves cache locality, and avoids unnecessary hash table overhead. Main SET optimizations include: - Use inline std::array storage for small bitmap values to avoid dynamic allocation. - Add batch insert paths for SET, so add_many and deserialization can copy values in bulk instead of inserting one by one. - Optimize bitmap subset operations for SET: - sub_range now filters values directly without sorting. - sub_limit uses filter + nth_element to select the smallest limited subset instead of fully sorting all values. - offset_limit uses nth_element-based selection to avoid full -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
