Ну, MVCC_READ_CONFLICT
означает, что вы выполняете параллельное изменение для некоторого ключа в двух разных транзакциях, следовательно, после того, как транзакция упорядочена в блок, любая транзакция попадает в первый зафиксированный, а вторая или последующая транзакция, которая работает с тем же ключом, помечена как недопустимая MVCC_READ_CONFLICT
.
Чтобы лучше понять причину этого статуса, вероятно, стоит отметить поток транзакций в фабрике:
- Клиент отправляет предложение о транзакции для одобрения, отправляя его одобряющим партнерам
- Подтверждающие одноранговые узлы выполняют моделирование цепного кода, где результаты выполнения записываются в набор для чтения-записи
- Клиент собирает согласования и составляет транзакцию, отправляя ее на заказ
- Служба заказа объединяет транзакции в блок, используя общий порядок транзакций
- Блок распределен между пирами
- Пир проводит проверку для подтверждения соответствия политике одобрения для каждой транзакции
- После этого существует многозначное управление параллелизмом (MVCC), которое проверяет наличие одновременных изменений, фактически проверяет версию ключей RWSet и, если обнаруженная одновременная модификация tx признана недействительной со статусом
MVCC_READ_CONFLICT
Более подробную информацию вы можете найти в документации " Поток транзакций ".