You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by GitBox <gi...@apache.org> on 2020/10/15 22:29:31 UTC

[GitHub] [phoenix] ChinmaySKulkarni commented on a change in pull request #920: PHOENIX-6129 : Avoid redundant Admin API call in the absence of SYSTEM.MUTEX table

ChinmaySKulkarni commented on a change in pull request #920:
URL: https://github.com/apache/phoenix/pull/920#discussion_r505900118



##########
File path: phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
##########
@@ -4294,11 +4295,9 @@ public boolean acquireUpgradeMutex(long currentServerSideTableTimestamp)
     public boolean writeMutexCell(String tenantId, String schemaName, String tableName,
             String columnName, String familyName) throws SQLException {
         try {
-            byte[] rowKey =
-                    columnName != null
-                            ? SchemaUtil.getColumnKey(tenantId, schemaName, tableName, columnName,
-                                familyName)
-                            : SchemaUtil.getTableKey(tenantId, schemaName, tableName);
+            byte[] rowKey = columnName != null ?
+                SchemaUtil.getColumnKey(tenantId, schemaName, tableName, columnName, familyName) :
+                SchemaUtil.getTableKey(tenantId, schemaName, tableName);
             // at this point the system mutex table should have been created or
             // an exception thrown
             byte[] sysMutexPhysicalTableNameBytes = getSysMutexPhysicalTableNameBytes();

Review comment:
       @virajjasani I think there is some confusion here. The aim of this Jira is to reduce the HBase calls to get the table. Currently, the call to `writeMutexCell()` calls `getSysMutexPhysicalTableNameBytes()` which does 1 or 2 HBase admin calls (tableExists()) and then we still do a getTable() call [here](https://github.com/apache/phoenix/blob/628fa0db239985b2972f51459540f7513d182885/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L4305). 
   The same happens for `deleteMutexCell()`. 
   
   Instead of doing this, we can do 1 getTable call with `SYSTEM.MUTEX` and if that throws a TNFE, try again with `SYSTEM:MUTEX`.
   




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org