snleee commented on a change in pull request #8422:
URL: https://github.com/apache/pinot/pull/8422#discussion_r838863260



##########
File path: 
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java
##########
@@ -1757,6 +1758,10 @@ public void deleteOfflineTable(String tableName) {
     HelixHelper.removeResourceFromBrokerIdealState(_helixZkManager, 
offlineTableName);
     LOGGER.info("Deleting table {}: Removed from broker resource", 
offlineTableName);
 
+    // Drop the table on servers
+    deleteTableOnServer(offlineTableName);

Review comment:
       I see that we don't send the message if `externalview` is null from 
`deleteTableOnServer()`. If we send without filtering, the helix side will 
throw the exception? Or, you mention that we explicitly throw the exception?
   
   I think that one main difference between waiting on the controller vs server 
is that we will not delete table resource (which is a safety check for avoiding 
race confition in table re-create) if we wait for externalview to converge on 
the controller side. 
   
   If we offload the waiting to happen on the serverside, we now have another 
race condition when the external view gets updated with some significant delay. 
In that case, we will delete the table config on the following code block but 
the server side may not have done deleting and waiting for the external view to 
converge. If the new table creation request comes in, we will have some issue.
   
   ```
       // Remove table config
       // this should always be the last step for deletion to avoid race 
condition in table re-create.
       ZKMetadataProvider.removeResourceConfigFromPropertyStore(_propertyStore, 
offlineTableName);
   ```




-- 
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.

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

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



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to