[ https://issues.apache.org/jira/browse/RANGER-3377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17402900#comment-17402900 ]
Madhan Neethiraj edited comment on RANGER-3377 at 8/23/21, 1:14 AM: -------------------------------------------------------------------- [~caozhiqiang] - thank you for the improvements in policy evaluation performance. Did you observe 5 to 10% improvement even when policies don't have any deny items i.e., {{RangerDefaultPolicyEvaluator.denyEvaluators}} is empty? If the improvement is seen only when {{denyEvaluators}} is not empty, I suggest to update {{RangerDefaultPolicyEvaluator.init()}} to initialize {{denyEvaluators/allowExceptionEvaluators/denyExceptionEvaluators}} to {{null}} when {{ServiceDefUtil.getOption_enableDenyAndExceptionsInPolicies()}} is true. This will help reuse existing service-def option [{{enableDenyAndExceptionsInPolicies}}|https://cwiki.apache.org/confluence/display/RANGER/Deny-conditions+and+excludes+in+Ranger+policies], and avoid additional configuration at plugin side ({{policyengine.option.disable.policy.deny.conditions}}) to disable deny. {code:java} @Override public void init(RangerPolicy policy, RangerServiceDef serviceDef, RangerPolicyEngineOptions options) { ... allowEvaluators = createPolicyItemEvaluators(policy, serviceDef, options, RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_ALLOW); if (ServiceDefUtil.getOption_enableDenyAndExceptionsInPolicies(serviceDef, getPluginContext())) { denyEvaluators = createPolicyItemEvaluators(policy, serviceDef, options, RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_DENY); allowExceptionEvaluators = createPolicyItemEvaluators(policy, serviceDef, options, RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_ALLOW_EXCEPTIONS); denyExceptionEvaluators = createPolicyItemEvaluators(policy, serviceDef, options, RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_DENY_EXCEPTIONS); } else { denyEvaluators = Collections.emptyList(); allowExceptionEvaluators = Collections.emptyList(); denyExceptionEvaluators = Collections.emptyList(); } ... } {code} was (Author: madhan.neethiraj): [~caozhiqiang] - thank you for the improvements in policy evaluation performance. Did you observe 5 to 10% improvement even when policies don't have any deny items i.e., {{RangerDefaultPolicyEvaluator.denyEvaluators}} is empty? If the improvement is seen only when {{denyEvaluators}} is not empty, I suggest to update {{RangerDefaultPolicyEvaluator.init()}} to initialize {{denyEvaluators/allowExceptionEvaluators/denyExceptionEvaluators}} to {{null}} when {{ServiceDefUtil.getOption_enableDenyAndExceptionsInPolicies()}} is true. This will help reuse existing service-def option [{{enableDenyAndExceptionsInPolicies}}|https://cwiki.apache.org/confluence/display/RANGER/Deny-conditions+and+excludes+in+Ranger+policies], and avoid additional configuration at plugin side ({{policyengine.option.disable.policy.deny.conditions}}) to disable deny. > Improve ranger plugin performance for ignore deny conditions > ------------------------------------------------------------ > > Key: RANGER-3377 > URL: https://issues.apache.org/jira/browse/RANGER-3377 > Project: Ranger > Issue Type: Improvement > Components: plugins > Affects Versions: 2.0.1, 3.0.0 > Reporter: caozhiqiang > Priority: Major > Attachments: RANGER-3377-branch-2.0.1.001.patch, RANGER-3377.001.patch > > > In performance sensitive scenario, for example hdfs namenode, ranger plugin > slow down the overall performance. We can add a configure to ignore deny > conditions to improve the ranger plugin performance. > In namenode benchmark, ignore the deny conditions and improve performance > about from 5% to 10%. -- This message was sent by Atlassian Jira (v8.3.4#803005)