Ramachandran Krishnan created RANGER-5614:
---------------------------------------------

             Summary: Role creation/updation takes more time when there are 
more users,groups,roles
                 Key: RANGER-5614
                 URL: https://issues.apache.org/jira/browse/RANGER-5614
             Project: Ranger
          Issue Type: Task
          Components: Ranger
    Affects Versions: 2.8.0
            Reporter: Ramachandran Krishnan
            Assignee: Ramachandran Krishnan
             Fix For: 3.0.0


In high-scale enterprise environments deploying Apache Ranger, administrative 
tasks often involve creating or syncing massive hierarchical structures 
consisting of thousands of roles, users, and groups. In the unoptimized legacy 
runtime path, when a new role assignment or update was processed via the API, 
the business logic engine executed individual, standalone queries against the 
relational store for every single principal listed in the membership array.

This design resulted in severe performance degradation due to the {*}N+1 query 
execution pattern{*}. Specifically, for a role containing $U$ users, $G$ 
groups, and $R$ referenced sub-roles, the relational engine was forced to 
execute distinct lookup operations followed by iterative insertion calls for 
each member. This architecture exhausted open database thread pools, caused 
elevated query latencies, and induced transactional locks during large 
automated sync updates.

By leveraging configuration flags like ranger.admin.role.create.batch.enabled 
and refactoring data access paths inside RoleRefUpdater.java, lookup loops were 
replaced with collection-level map pre-fetching. Iterative single-record 
creations were updated to utilize underlying database batch extensions, 
drastically minimizing JDBC network overhead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to