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


Ship it!




Ship It!

- Mehul Parikh


On Oct. 26, 2021, 11:29 a.m., Mahesh Bandal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/73452/
> -----------------------------------------------------------
> 
> (Updated Oct. 26, 2021, 11:29 a.m.)
> 
> 
> Review request for ranger, Ankita Sinha, Dhaval Shah, Dineshkumar Yadav, 
> Gautam Borad, Kishor Gollapalliwar, Abhay Kulkarni, Madhan Neethiraj, Mehul 
> Parikh, Pradeep Agrawal, Ramesh Mani, Sailaja Polavarapu, and Velmurugan 
> Periasamy.
> 
> 
> Bugs: RANGER-3023
>     https://issues.apache.org/jira/browse/RANGER-3023
> 
> 
> Repository: ranger
> 
> 
> Description
> -------
> 
> GET API /service/xusers/permission takes longer time to load with following 
> number of users and group mappings in db.
> 
> select count(*) from x_user;
> 109040
> 
> select count(*) from x_portal_user;
> 109038
> 
> select count(*) from x_group_users;
> 689952
> 
> Current problem : For every ModuleDef, db call to fetch all XXUser, 
> XXPortalUser and creating a Map object using 
> xUserService.getXXPortalUserIdXXUserMap() is a costly operation. Similarly 
> for xGroupService.getXXGroupIdXXGroupMap().
> 
> Solution:
> In the following patch, I have overriedden searchModuleDef function in 
> XModuleDefService which will fetch users and groups only once. 
> i.e. Map<Long, XXUser> xXPortalUserIdXXUserMap = 
> xUserService.getXXPortalUserIdXXUserMap();
>      Map<Long, XXGroup> xXGroupMap = xGroupService.getXXGroupIdXXGroupMap();
> 
> These two objects will be passed to an overloaded method populateViewBean()
> 
> 
> Diffs
> -----
> 
>   security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java 1bd59f8d2 
>   security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java 4c0f33ed9 
>   
> security-admin/src/main/java/org/apache/ranger/service/XGroupPermissionService.java
>  13d0a8fcb 
>   security-admin/src/main/java/org/apache/ranger/service/XGroupService.java 
> d615d1775 
>   
> security-admin/src/main/java/org/apache/ranger/service/XModuleDefService.java 
> d5ca38548 
>   
> security-admin/src/main/java/org/apache/ranger/service/XUserPermissionService.java
>  47a1fadb7 
>   security-admin/src/main/java/org/apache/ranger/service/XUserService.java 
> 9647096fe 
>   security-admin/src/main/resources/META-INF/jpa_named_queries.xml 96dc0df8e 
> 
> 
> Diff: https://reviews.apache.org/r/73452/diff/3/
> 
> 
> Testing
> -------
> 
> xUserService.getXXPortalUserIdXXUserMap() takes approximately 2000 
> milliseconds.
> xGroupService.getXXGroupIdXXGroupMap() takes approximately 500 milliseconds.
> 
> Before patch, XModuleDefServiceBase.searchModuleDef() took 30252 milliseconds.
> After patch, XModuleDefService.searchModuleDef() took 13766 milliseconds.
> 
> GET API /service/xusers/permission response improved by ~16 seconds for the 
> above mentioned dataset.
> 
> 
> Thanks,
> 
> Mahesh Bandal
> 
>

Reply via email to