Details
-
Bug
-
Resolution: Fixed
-
Major
-
6.5.0, Cheshire-Cat
-
None
-
Untriaged
-
Unknown
Description
Planner in indexer maintains 3 maps each of which has keys as index definition ID. With increase in number of indexes, the size of these maps grow. For every iteration, planner clones these maps. As planner is expected to run large number of iterations (i.e. around 110000 can be considered normal), cloning these maps for each every iteration turns out to be compute intensive.
Proposed fix for this issue is to use 2 pre-initialized (e.g., current and new) versions of each of these maps and use them instead of clone. Below would be an approximate pseudo code:
new.indexSGMap = current.indexSGMap |
if processAndAccept(new.indexSGMap) { |
// Copy the contents of new.indexSGMap to current.indexSGMap
|
}
|
Once all the iterations are done, the final solution will be updated with the map values from current