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/4bdfbd68 Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/4bdfbd68 Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/4bdfbd68 Branch: refs/heads/ranger-0.7 Commit: 4bdfbd68e9d44ba45223cf8a44f0be46db76afd3 Parents: 6a6e955 Author: Abhay Kulkarni <[email protected]> Authored: Sun Aug 5 09:01:24 2018 -0700 Committer: Abhay Kulkarni <[email protected]> Committed: Wed Sep 26 20:21:42 2018 -0700 ---------------------------------------------------------------------- .../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/4bdfbd68/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 a255566..ece577d 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() + "}"); @@ -425,7 +427,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++) {
