-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74966/#review226409
-----------------------------------------------------------




agents-common/src/main/java/org/apache/ranger/plugin/model/RangerPolicy.java
Line 39 (original), 36 (patched)
<https://reviews.apache.org/r/74966/#comment314621>

    This is a general comment/suggestion.
    
    The proposed changes require some assurance that the 
get{Accesses|Resources|Users|Groups|Roles} and such methods are not directly 
used to add respective objects to the Lists, Sets, HashMaps. This can be done 
either by searching entire code-base for such usages or by making such getter 
methods as private and fixing the compilation issues that are reported.
    
    Which way is used here to get this assurance?


- Abhay Kulkarni


On May 1, 2024, 12:58 a.m., Madhan Neethiraj wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/74966/
> -----------------------------------------------------------
> 
> (Updated May 1, 2024, 12:58 a.m.)
> 
> 
> Review request for ranger, Abhishek  Kumar, Asit Vadhavkar, Fateh Singh, 
> Kishor Gollapalliwar, Abhay Kulkarni, Pradeep Agrawal, Ramesh Mani, Sailaja 
> Polavarapu, Subhrat Chaudhary, and Velmurugan Periasamy.
> 
> 
> Bugs: RANGER-4787
>     https://issues.apache.org/jira/browse/RANGER-4787
> 
> 
> Repository: ranger
> 
> 
> Description
> -------
> 
> Model package classes like RangerPolicy initialize collection members with a 
> new collection object (ArrayList/HashMap/HashSet). Many of these members 
> would likely remain empty, resulting in the initialization to be unnecessary. 
> Instead of creating a new collection object, it will help to initialize with 
> Collections.emptyList()/emptySet()/emptyMap() - to save memory while 
> retaining non-null value for collection members.
> 
> Also, set() on these members currently create a new collection object with a 
> copy of the value to be set. This can be avoided by using the given value.
> 
> Updated RangerPolicy and RangerOptimizedPolicyEvaluator classes with above 
> optimizations, and updated all refereces to collection members to safely add 
> items to the collections.
> 
> 
> Diffs
> -----
> 
>   
> agents-common/src/main/java/org/apache/ranger/plugin/model/RangerPolicy.java 
> ec0618421 
>   
> agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerAbstractPolicyItemEvaluator.java
>  2190ad281 
>   
> agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultPolicyEvaluator.java
>  9745dc64f 
>   
> agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerOptimizedPolicyEvaluator.java
>  6d6169309 
>   
> agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java
>  eaee00b80 
>   
> agents-common/src/test/java/org/apache/ranger/plugin/model/TestRangerPolicy.java
>  57e710e61 
>   
> agents-common/src/test/java/org/apache/ranger/plugin/util/ServiceDefUtilTest.java
>  36f0b6af6 
>   
> hbase-agent/src/main/java/org/apache/ranger/services/hbase/RangerServiceHBase.java
>  962be1a55 
>   
> hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/RangerServiceHdfs.java
>  e6411b3b0 
>   
> hive-agent/src/main/java/org/apache/ranger/services/hive/RangerServiceHive.java
>  a8d71772a 
>   
> knox-agent/src/main/java/org/apache/ranger/services/knox/RangerServiceKnox.java
>  eafd0e3fe 
>   
> plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
>  fee2179b5 
>   
> plugin-elasticsearch/src/main/java/org/apache/ranger/services/elasticsearch/RangerServiceElasticsearch.java
>  a8953e1e7 
>   
> plugin-kafka/src/main/java/org/apache/ranger/services/kafka/RangerServiceKafka.java
>  f683e608e 
>   
> plugin-kms/src/main/java/org/apache/ranger/services/kms/RangerServiceKMS.java 
> d0c2e260a 
>   
> plugin-ozone/src/main/java/org/apache/ranger/services/ozone/RangerServiceOzone.java
>  704412246 
>   
> plugin-presto/src/main/java/org/apache/ranger/services/presto/RangerServicePresto.java
>  9e773f160 
>   
> plugin-solr/src/main/java/org/apache/ranger/services/solr/RangerServiceSolr.java
>  3a8f9b462 
>   
> plugin-trino/src/main/java/org/apache/ranger/services/trino/RangerServiceTrino.java
>  936fb7ac8 
>   
> plugin-yarn/src/main/java/org/apache/ranger/services/yarn/RangerServiceYarn.java
>  48a63ff56 
>   ranger-tools/src/main/java/org/apache/ranger/sizing/PerfMemTimeTracker.java 
> 917c0da9c 
>   security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java 
> cccc47fbe 
>   security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java 
> 180124ca5 
>   
> security-admin/src/main/java/org/apache/ranger/patch/PatchForHBaseDefaultPolicyUpdate_J10045.java
>  302a26602 
>   
> security-admin/src/main/java/org/apache/ranger/patch/PatchForOzoneDefaultPoliciesUpdate_J10044.java
>  d686be485 
>   
> security-admin/src/main/java/org/apache/ranger/patch/PatchForUpdatingPolicyJson_J10019.java
>  e7d10883d 
>   
> security-admin/src/main/java/org/apache/ranger/patch/PatchForUpdatingTagsJson_J10020.java
>  c8516d2b7 
>   
> security-admin/src/main/java/org/apache/ranger/patch/PatchMigration_J10002.java
>  c8cd92c7e 
>   security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java 
> a6c759234 
>   security-admin/src/main/java/org/apache/ranger/rest/ServiceRESTUtil.java 
> 60e34c0c7 
>   security-admin/src/test/java/org/apache/ranger/biz/TestPolicyAdmin.java 
> 41c360dec 
>   security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java 
> ff5fe218a 
>   
> storm-agent/src/main/java/org/apache/ranger/services/storm/RangerServiceStorm.java
>  23e71ba01 
> 
> 
> Diff: https://reviews.apache.org/r/74966/diff/3/
> 
> 
> Testing
> -------
> 
> - verified that all unit tests pass successfully
> - built Ranger successfully
> - using docker setup, built and started Ranger admin/usersync/tagsync/plugins 
> successfully
> - Following memory savings are seen with creation of 1m policies each having 
> one resource, one policyItem(one-group, one-access):
> --------------------------------------------------------------------------------
>                                bytes before     bytes after
>         Class                  optimization     optimization    Savings    
> --------------------------------------------------------------------------------
> RangerPolicy                     996,053,872    708,059,576   287,994,296 
> (28.91%)
> RangerOptimizedPolicyEvaluator 1,068,156,376    748,153,544   320,002,832 
> (29.96%)
> --------------------------------------------------------------------------------
> Total                          2,064,210,248  1,456,213,120   607,997,128 
> (29.45%)
> 
> --------------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Madhan Neethiraj
> 
>

Reply via email to