[
https://issues.apache.org/jira/browse/RANGER-3903?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17648662#comment-17648662
]
Ramachandran commented on RANGER-3903:
--------------------------------------
[[email protected]] [~abhayk] [~vel] [~spolavarapu] [~pradeep]
Hi All,
could you Please review it.?
> Improvement in RangerPolicyDeltaUtil--> applyDeltas method
> ----------------------------------------------------------
>
> Key: RANGER-3903
> URL: https://issues.apache.org/jira/browse/RANGER-3903
> Project: Ranger
> Issue Type: Improvement
> Components: Ranger
> Affects Versions: 3.0.0
> Reporter: Ramachandran
> Assignee: Ramachandran
> Priority: Major
> Fix For: 3.0.0
>
> Attachments:
> 0001-RANGER-3903-Improvement-in-RangerPolicyDeltaUtil-app.patch,
> image-2022-11-08-09-22-05-188.png, image-2022-12-10-13-45-27-181.png,
> image-2022-12-10-13-46-03-834.png, image-2022-12-10-13-46-36-697.png,
> image-2022-12-10-13-56-07-135.png, image-2022-12-10-15-33-15-785.png,
> screenshot-1.png
>
>
> After going through the below code snippets in the master branch
> !screenshot-1.png!
> From the above code, we iterate delta policies and check if this policy
> exists in the existing policy, we add that to deletePolicies list.
> 1st#Improvement:
> From the above code, we iterate delta policies and check if this policy
> exists in the existing policy, we add that to deletePolicies list.
> The delta change type condition for created/updated/deleted is added on top
> of the if the condition so adding the condition again is not necessary
>
> !image-2022-12-10-15-33-15-785.png!
> 2nd#Improvement:
> problem:
> !image-2022-12-10-13-56-07-135.png!
> From the above code, we see for each element in the deltas ,we iterate
> policies and check if this delta policy exists in the existing policy, we add
> that to deletePolicies list.
> Solution:
> We need to use Map instead of iterating policies for every element of deltas
> --> Map<Long,List<RangerPolicy>> policiesIdMap
> The building index map key will be policyId and the value will be no of
> policies associated with the same policy Id
> For each policy in the deltas ,we check in the policiesIdMap whether the
> same policyId is present or not ?.
> if yes ,we will add all the associated policy list into deletePolicies and
> remove the policyId from policiesIdMap
> After end of the iteration ,we will iterate the policiesIdMap and get all the
> policylist assicated with policyId and add into result set
> This will give better performance when the policies list is huge.
> !image-2022-12-10-13-45-27-181.png!
> !image-2022-12-10-13-46-03-834.png!
> !image-2022-12-10-13-46-36-697.png!
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)