You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Sanjeet Malhotra (Jira)" <ji...@apache.org> on 2024/12/12 10:36:00 UTC
[jira] [Created] (PHOENIX-7484) Upserts on a multi-tenant tables using tenant connection are taking 5K-6K % more time than non-tenant connection
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)