[ 
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:
--------------------------------------

[~mad...@apache.org] [~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)

Reply via email to