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