lnbest0707-uber opened a new pull request, #15432:
URL: https://github.com/apache/pinot/pull/15432

   `feature`  `bugfix`  `performance`
   follow up on https://github.com/apache/pinot/pull/15234
   
   In the event of segment build failure retry, e.g. there are 2 replicas A and 
B.
   
   1. A and (or) B send `segmentConsumed` request to controller, and get 
response, A -> Commit, B -> Hold, controller -> COMMIT_NOTIFIED
   2. A build failure and send send `segmentBuildDeterministicFailure` to 
controller
   3. Controller reduce the segment size and reset segments
   4. A and B destroy the immutable segments and rebuild it
   5. A or B consumed all messages, and send `segmentConsumed` request to 
controller.
   
   What's happened next?
   
   - If A sends it, and `now > _maxTimeAllowedToCommitMs`, A starts to commit, 
happy path
   - If B sends it, and `now > _maxTimeAllowedToCommitMs`, B starts to commit, 
also happy path
   - If A sends it, and `now <= _maxTimeAllowedToCommitMs`, highly possible A 
sent an offset < FSM's recorded offset, DISCARD response will be sent
   - If B sends it, and `now <= _maxTimeAllowedToCommitMs`, highly possible A 
sent an offset < FSM's recorded offset, CATCH_UP response will be sent
   
   The previous patch did not consider the last 2 conditions. And this PR will 
catch that by removing the previous status in FSM.
   


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