Since we prioritize keeping block mining times consistent, sometimes a transaction that is currently being executed finishes after the block it was executing on is already commited. To avoid issues with that we check that the pending block the execution is being saved to is the correct one, and if not we retry the transaction. We can get small performance gains at the block mining boundary if we early abort transaction executions that cross it.
Since we prioritize keeping block mining times consistent, sometimes a transaction that is currently being executed finishes after the block it was executing on is already commited. To avoid issues with that we check that the pending block the execution is being saved to is the correct one, and if not we retry the transaction. We can get small performance gains at the block mining boundary if we early abort transaction executions that cross it.