-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74966/
-----------------------------------------------------------
(Updated May 6, 2024, 11:53 p.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.
Changes
-------
addressed review comments
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 (updated)
-----
agents-common/src/main/java/org/apache/ranger/plugin/model/RangerBaseModelObject.java
e59ea2345
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/RangerBasePlugin.java
97da473a8
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/RangerPolicyAdminImpl.java
84ee31ba2
security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
cccc47fbe
security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java d202b2184
security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java
180124ca5
security-admin/src/main/java/org/apache/ranger/patch/PatchForAtlasToAddTypeRead_J10040.java
31fb1b1d3
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/PatchForOzoneServiceDefUpdate_J10041.java
0a085f659
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/6/
Changes: https://reviews.apache.org/r/74966/diff/5-6/
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