Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
Impala 3.4.0
-
None
-
None
-
ghx-label-2
Description
The hash ring used for consistent scheduling currently uses a std::map for the hash-to-IpAddr lookup. HashRing is heavy on reads, with writes only happening when executors come and go. There are some cases where we copy the HashRing.
The standard map uses a large number of small allocations. This hurts cache performance, adds overhead, and also increases the cost of copying the structure. Something like boost's flat_map or Abseil's btree_map is likely to be more efficient.