Project

General

Profile

Actions

Bug #20758

closed

Improve group node computation

Added by Nicolas CHARLES almost 3 years ago. Updated 8 months ago.

Status:
Released
Priority:
N/A
Category:
Performance and scalability
Target version:
Severity:
UX impact:
User visibility:
Effort required:
Priority:
0
Name check:
To do
Fix check:
Checked
Regression:

Description

As a follow up of #20716, we could improve the code lisibility by:
  • not having the `internalQueryProcessor` return a NodeInfo, but only NodeId. The overall cost of managing NodeInfo is tremendous in creating Sets
  • so rather than having a `nodeInfoFiltered`, we could have `nodeIdFiltered`
    • This is only possible in 7.0 and + because in branch 6.2 it still need the ServerRole postfilter
  • in PostFilterNodeFromInfoService we can have a faster "toSet" for the OR composition by mapping to nodeId only
  • and `foundNodeInfos` could be a Seq rather than a Set (an make the toSet on the foundNodeInfos.map(_.nodeId) )
  • and so the results in internalQueryProcessor can also be a Seq

The drawback is only for the SearchNodeComponent: it will have to explore back the cache with the list of nodeId to get the result

The overall cost a doing a toSet on collection of NodeInfo is very expensive


Subtasks 1 (0 open1 closed)

Datasources - Bug #21514: Correct tests in datasourcesReleasedAlexis MoussetActions

Related issues 1 (0 open1 closed)

Related to Rudder - Bug #20716: Improve dynamic group computation speed and fix inverted searchedReleasedFrançois ARMANDActions
Actions

Also available in: Atom PDF