drriguz commented on PR #709:
URL: https://github.com/apache/ratis/pull/709#issuecomment-1217340523

   +1 Change looks good,
   Just one suggestion, may be not related to this issue itself:
   
   Can we clarify what happens when `applyTransaction` failed?  
   See the modifications below(marked with `+`), which is copied from your 
reply from the mail list: 
   ```
     /**
      * Apply a committed log entry to the state machine. This method is called 
sequentially in
      * strict serial order that the transactions have been committed in the 
log. Note that this
      * method, which returns a future, is asynchronous. The state machine 
implementation may
      * choose to apply the log entries in parallel. In that case, the order of 
applying entries to
      * state machine could possibly be different from the log commit order.
      *  +
      *  + The implementation should be deterministic so that the log can be 
replayed in any machine,
      *  + Note that, if there are three or more servers, 
      *  + the Raft algorithm makes sure the log remains consistent even if 
there are hardware errors 
      *  + in one machine (or less then the majority number of machines).
      *  +
      *  + Any exception thrown in this method will be treated as unrecoverable 
error(such as hardware error),
      *  + and the server will be force shut down when it occurs. 
      *  + Admin should manually fix the underlying problem and then restart 
the machine.
   
      * @param trx the transaction state including the log entry that has been 
committed to a quorum
      *            of the raft peers
      */
     CompletableFuture<Message> applyTransaction(TransactionContext trx);
   ```


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