Na Li created SENTRY-2184:
-----------------------------

             Summary: Performance Issue: MPath is queried for each 
MAuthzPathsMapping in full snapshot
                 Key: SENTRY-2184
                 URL: https://issues.apache.org/jira/browse/SENTRY-2184
             Project: Sentry
          Issue Type: Bug
          Components: Sentry
    Affects Versions: 2.1.0
            Reporter: Na Li
            Assignee: Na Li


MAuthzPathsMapping contains list of MPath instances. From log message, when 
getting path full snapshot at SentryStore.retrieveFullPathsImageCore(), 
DataNucleus issues a query for all MPath instances associated with each 
MAuthzPathsMapping. Therefore, getting full path image may take a very long 
time.

The solution is to get MPath in a batch when getting full path image.

Log Message when DataNucleus issues a query for all MPath instances associated 
with each MAuthzPathsMapping
{code:java}
1) Initially, all MAuthzPathsMapping entries for current snapshot is queried.

2018-03-14 11:51:23,999 (main) [DEBUG - 
org.datanucleus.util.Log4JLogger.debug(Log4JLogger.java:58)] SELECT 
'org.apache.sentry.provider.db.service.model.MAuthzPathsMapping' AS 
NUCLEUS_TYPE,A0.AUTHZ_OBJ_NAME,A0.AUTHZ_SNAPSHOT_ID,A0.CREATE_TIME_MS,A0.AUTHZ_OBJ_ID
 FROM AUTHZ_PATHS_MAPPING A0 WHERE A0.AUTHZ_SNAPSHOT_ID = <1>

2) call authzToPaths.getPathStrings() causes MPath to be queried for each 
AUTHZ_OBJ_ID

2018-03-14 11:52:27,700 (main) [DEBUG - 
org.datanucleus.util.Log4JLogger.debug(Log4JLogger.java:58)] SELECT 
'org.apache.sentry.provider.db.service.model.MPath' AS 
NUCLEUS_TYPE,A0.PATH_NAME,A0.PATH_ID FROM AUTHZ_PATH A0 WHERE A0.AUTHZ_OBJ_ID = 
<1>{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to