szetszwo commented on PR #1296: URL: https://github.com/apache/ratis/pull/1296#issuecomment-3372268809
> ... if at T1 I send a balance inquiry to the bank, at T2 my account is debited by 100 yuan, and at T3 I receive a response showing that I still have 100 yuan, then the result is clearly incorrect from the client’s point of view. That's why they usually have a transaction number in the record. Our transaction number is the log index. The banks won't know when you see the information but they know when did they retrieve the information. BTW, this case does happen in real life. The log index L (transaction number) means that the client request was received at index L and the reply is the value at index L, not any (future) indices after L. Raft is to make a single server state machine running in multiple servers. So, any behaviors happening in a single server are acceptable. Now, I may understand why you talk about absolute/relative -- it is the same special relativity from Einstein. Suppose we have a high precision clock which can display nano seconds. - T0: we look at the time at the clock - T1: the light travels from the clock to our eyes - T2: the signal transfers from our eyes to our brain. - T3: we learn that the "current" time is T0. However, the "absolute" time actually is T3. -- 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]
