These are chat archives for atomix/atomix
We are no longer monitoring this channel, please join Slack! https://join.slack.com/t/atomixio/shared_invite/enQtNDgzNjA5MjMyMDUxLTVmMThjZDcxZDE3ZmU4ZGYwZTc2MGJiYjVjMjFkOWMyNmVjYTc5YjExYTZiOWFjODlkYmE2MjNjYzZhNjU2MjY
LINEARIZABLEquery that's pending when a leader change occurs will ultimately be failed when the leader can't verify its leadership after the query has been applied
SEQUENTIALqueries will still eventuallybe completed
Commands that are pending may not be completed. They should eventually be rejected once the leader figures out there's a new leader.
Linearizable queries that are pending will be applied, but one the leader attempts the next heartbeat will be failed.
Sequential queries that are pending will eventually succeed as the state machine on the follower (former leader) continues to progress
Yeah. Commands with a sequence number greater than the next sequence number are held until they can be written to the log in sequentially order.
The reason for also logging commands that have already been logged is the following scenario:
• Client submits command 1 to leader A
• Leader A commits command 1 and then crashes before responding
• Leader B is elected
• Client resubmits command 1
In this scenario, the second command needs to return cached output from the first time the command was committed. So, it's logged and committed and applied, but the second application of the command just returns the cached output from the first time.