RANGER-2173: Optimize Trie constuction and Policy lookup - Part II
Project: http://git-wip-us.apache.org/repos/asf/ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/27f56df1 Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/27f56df1 Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/27f56df1 Branch: refs/heads/ranger-1.1 Commit: 27f56df10c667b5f8de192d6acbc6968220afa57 Parents: c470225 Author: Abhay Kulkarni <akulka...@hortonworks.com> Authored: Sun Aug 5 09:01:24 2018 -0700 Committer: Mehul Parikh <me...@apache.org> Committed: Tue Sep 4 11:38:30 2018 +0530 ---------------------------------------------------------------------- .../org/apache/ranger/plugin/util/RangerResourceTrie.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ranger/blob/27f56df1/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerResourceTrie.java ---------------------------------------------------------------------- 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 1723d14..10c6faa 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 @@ -122,9 +122,11 @@ public class RangerResourceTrie<T extends RangerPolicyResourceEvaluator> { RangerPerfTracer.logAlways(perf); - if (PERF_TRIE_INIT_LOG.isTraceEnabled()) { - PERF_TRIE_INIT_LOG.trace(toString()); + if (PERF_TRIE_INIT_LOG.isDebugEnabled()) { + PERF_TRIE_INIT_LOG.debug(toString()); + } + if (PERF_TRIE_INIT_LOG.isTraceEnabled()) { StringBuilder sb = new StringBuilder(); root.toString("", sb); PERF_TRIE_INIT_LOG.trace("Trie Dump:\n{" + sb.toString() + "}"); @@ -442,7 +444,9 @@ public class RangerResourceTrie<T extends RangerPolicyResourceEvaluator> { final String childStr = child.getStr(); final int childStrLen = childStr.length(); - if (!StringUtils.equals(childStr, str)) { + final boolean isExactMatch = optIgnoreCase ? StringUtils.equalsIgnoreCase(childStr, str) : StringUtils.equals(childStr, str); + + if (!isExactMatch) { final int numOfCharactersToMatch = childStrLen < len ? childStrLen : len; int index = 1; for (; index < numOfCharactersToMatch; index++) {