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