When MVCC transaction is rolled back due to a write conflict it throws CacheException with "Mvcc version mismatch" message. This behavior violates Ignite transactions API. Instead it should throw TransactionRollbackException with a clear message like a "Transaction has been aborted due to a write conflict (Please try again.)"
It is also need to propogate this changes to JDBC and ODBC components and fix mvcc tests.
In some tests we have to repeat tx operation in case of version conflict. Most likely, we can rely to caused-exception with some meaningful type (e.g. MvccVersionMismatchException) to repeat operation.
Pay attention that tx could be aborted at different stages, but we should fail consistently. Some examples:
1. Before next operation in tx started.
2. While operation in tx is in progress.
3. When tx.commit() is called.