KKcorps opened a new issue, #10603:
URL: https://github.com/apache/pinot/issues/10603

   The table deletion flow was changed in #8422 where we send a message to 
servers and let them take care of waiting for EV convergence and then remove 
the segments
   
   On the controller side, we only takes care of deleting the configs and ideal 
states.
   
   However, this leads to a lot of exceptions.
   
   For eg. when servers try to close consuming segments it starts getting 
`TableNotFound` exception
   
   The new deletion flow already has the following TODO which will help solve 
this issue.
   
   ```java
     public void deleteOfflineTable(String tableName, @Nullable String 
retentionPeriod) {
       String offlineTableName = 
TableNameBuilder.OFFLINE.tableNameWithType(tableName);
       LOGGER.info("Deleting table {}: Start", offlineTableName);
   
       // Remove the table from brokerResource
       HelixHelper.removeResourceFromBrokerIdealState(_helixZkManager, 
offlineTableName);
       LOGGER.info("Deleting table {}: Removed from broker resource", 
offlineTableName);
   
       // Drop the table on servers
       // TODO: Make this api idempotent and blocking by waiting for 
externalview to converge on controllers
       //      instead of servers. This is because if externalview gets updated 
with significant delay,
       //      we may have the race condition for table recreation that the new 
table will use the old states
       //      (old table data manager) on the servers.
       //      Steps needed:
       //      1. Drop the helix resource first (set idealstate as null)
       //      2. Wait for the externalview to converge
       //      3. Get servers for the tenant, and send delete table message to 
these servers
       deleteTableOnServer(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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to