Sanjeet Malhotra created PHOENIX-7484:
-----------------------------------------

             Summary: Upserts on a multi-tenant tables using tenant connection 
are taking 5K-6K % more time than non-tenant connection
                 Key: PHOENIX-7484
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7484
             Project: Phoenix
          Issue Type: Bug
            Reporter: Sanjeet Malhotra
            Assignee: Sanjeet Malhotra


Upserts using tenant connection on a multi-tenant table are taking 5K-6K % more 
time than upserts using non-tenant connection for 2M rows. Here the time being 
taken means total time spent in `executeUpdate()` and `commit()` call. The 
batch size and schema was same when testing with tenant connection and 
non-tenant connection. 

On further analysis, got to know that when doing upserts (for 2M rows) on a 
multi-tenant table over a tenant connection 13K-14K% more time was being spent 
in executeUpdate call than non-tenant connection. This whole regression is 
coming from mutation plan creation phase of executeUpdate call.

Further root caused that, with tenant connection we are always hitting SYSCAT 
to get PTable object during mutation plan creation. So, every call to 
executeUpdate() over tenant connection results in PTable lookup from SYSCAT 
during mutation plan creation adding ~1ms to every call of executeUpdate() and 
for 2M rows this cumulate to 29-33 mins.

 

 



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

Reply via email to