----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/71237/ -----------------------------------------------------------
(Updated Aug. 6, 2019, 3:29 a.m.) Review request for ranger, Ankita Sinha, bhavik patel, Gautam Borad, Abhay Kulkarni, Madhan Neethiraj, Mehul Parikh, Nikhil P, Nitin Galave, Ramesh Mani, Sailaja Polavarapu, and Velmurugan Periasamy. Changes ------- Addressed review comments Bugs: RANGER-2499 https://issues.apache.org/jira/browse/RANGER-2499 Repository: ranger Description ------- **This RR contains alternate solution of RANGER-2499. First solution RR is https://reviews.apache.org/r/71236/** **Problem Statement:** Ranger takes an extremely long time to import bulk policies. **Current performance(Without patch):** Time taken to import 500 policies : 27+ Minutes Time taken to import 1000 policies : 81+ Minutes **Proposed Solution:** in the bulk policy creation/deletion operation proposed patch shall call EntityManager.flush() and EntityManager.clear() after processing a batch of 10 records. ** Note: ** Most of the changes in this patch comes from revert work of RANGER-2493 as I am trying to generalize the solution for bulk create and update policies also. Important changes are: 1) bulkModeOnlyFlushAndClear() method in the RangerBizUtil.java class. 2) call to bulkModeOnlyFlushAndClear() from ServiceREST and ServiceDBStore wherever bulk create or update is made. 3) batch create/delete optimization and batch is configurable through ranger-admin-default-site.xml file 4) few null checks in the existing code. **References: ** https://en.wikibooks.org/wiki/Java_Persistence/Persisting https://www.developerfusion.com/article/84945/flush-and-clear-or-mapping-antipatterns/ Diffs (updated) ----- agents-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java d4879766f security-admin/src/main/java/org/apache/ranger/biz/PolicyRefUpdater.java e242d9092 security-admin/src/main/java/org/apache/ranger/biz/RangerBizUtil.java d49ea9886 security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java 4815f5bdb security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java ef22354de security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java 4f339087d security-admin/src/main/java/org/apache/ranger/patch/PatchForUpdatingPolicyJson_J10019.java 0788fb5bc security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java 348d072e6 security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java de5d34307 security-admin/src/main/java/org/apache/ranger/service/RangerDataHistService.java 019816e49 security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml eb7947a47 security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java b6f13f47e security-admin/src/test/java/org/apache/ranger/service/TestRangerDataHistService.java 655e17f40 Diff: https://reviews.apache.org/r/71237/diff/2/ Changes: https://reviews.apache.org/r/71237/diff/1-2/ Testing ------- Time taken to import 500 policies(500 create) : 45 Seconds Time taken to import 500 policies(500 delete+500 create) : 60 Seconds Time taken to import 1000 policies(1000 create) : 76 Seconds Time taken to import 1000 policies(1000 delete+1000 create) : 134 Seconds Time taken to delete 500 policies : 30 Seconds Thanks, Pradeep Agrawal