leekeiabstraction commented on PR #102:
URL: https://github.com/apache/fluss-rust/pull/102#issuecomment-3684532086

   > @leekeiabstraction Thanks for the pr. Besides,
   I think we should add 
https://github.com/apache/fluss/blob/main/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java#L173
   to update metadata if leader is not found. Othwise, we'll never be able to 
fetch the bucket if the the leader is not found at first. Retry should get the 
leader and make it's possible to fetch the bucket
   
   I've pushed the changes to handle this specific case. However, I am not 
certain on how to simulate the particular scenario. When using a local cluster:
   
   1. Scenario A, stop tablet server in between polls: If I understand 
correctly, the current Java implementation of `checkAndUpdateMetadata()` (of 
which we're following) does not update metadata if bucket leader was previously 
available, it only updates it if bucket leader was previously unavailable. 
Additionally, [LogFetcher.send_fetches() currently just logs fetch 
failures](https://github.com/apache/fluss-rust/blob/main/crates/fluss/src/client/table/scanner.rs#L372-L376),
 leader status is not updated. 
   1. Scenario B, start LogScanner with tablet server down: I run into issue 
before instantiating LogScanner when  calling admin.get_table(): `Error: 
FlussAPIError { api_error: ApiError { code: 17, message: "Replication factor: 1 
larger than available tablet servers: 0." } }`. 
   
   


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

Reply via email to