RANGER-1161: Policy evaluation optimization: added more trie data in info log
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerResourceTrie.java b/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerResourceTrie.java
index 2ca9bd6..982d249 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerResourceTrie.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerResourceTrie.java
@@ -197,6 +197,8 @@
sb.append("; optWildcard=").append(optWildcard);
sb.append("; wildcardChars=").append(wildcardChars);
sb.append("; nodeCount=").append(trieData.nodeCount);
+ sb.append("; leafNodeCount=").append(trieData.leafNodeCount);
+ sb.append("; singleChildNodeCount=").append(trieData.singleChildNodeCount);
sb.append("; maxDepth=").append(trieData.maxDepth);
sb.append("; evaluatorListCount=").append(trieData.evaluatorListCount);
sb.append("; wildcardEvaluatorListCount=").append(trieData.wildcardEvaluatorListCount);
@@ -208,6 +210,8 @@
public class TrieData {
int nodeCount = 0;
+ int leafNodeCount = 0;
+ int singleChildNodeCount = 0;
int maxDepth = 0;
int evaluatorListCount = 0;
int wildcardEvaluatorListCount = 0;
@@ -268,12 +272,18 @@
}
}
- if(children != null) {
+ if(children != null && children.size() > 0) {
+ if(children.size() == 1) {
+ trieData.singleChildNodeCount++;
+ }
+
for(Map.Entry<Character, TrieNode> entry : children.entrySet()) {
TrieNode child = entry.getValue();
child.populateTrieData(trieData);
}
+ } else {
+ trieData.leafNodeCount++;
}
}