txm: rewrite and refactor mvcc code
There were several problems that was connected with broken pointers in tuple history. Another problems is that that code was quite huge and difficult to understand. This patch refactors all the code that is connected to lists of stories in history. A bunch of helper function was added and in fact these functions was carefully rewtitten: * memtx_tx_history_add_stmt * memtx_tx_history_rollback_stmt * memtx_tx_history_prepare_stmt * memtx_tx_history_commit_stmt In addition to refactoring a couple of significant changes was made to the logic: * Now del_story in statement point to story of the tuple that was effectively deleted by this statement. * Conflicts in secondary indexes (that were previously named as 'cross coflicts' now handled transparently during statement preparation. Closes #6132 Closes #6021
Showing
- changelogs/unreleased/gh-6132-mvcc-lost-tuple-after-conflict-exception.md 4 additions, 0 deletions...eased/gh-6132-mvcc-lost-tuple-after-conflict-exception.md
- src/box/memtx_engine.c 1 addition, 1 deletionsrc/box/memtx_engine.c
- src/box/memtx_tx.c 654 additions, 413 deletionssrc/box/memtx_tx.c
- test/box/tx_man.result 578 additions, 1 deletiontest/box/tx_man.result
- test/box/tx_man.test.lua 181 additions, 0 deletionstest/box/tx_man.test.lua
Loading
Please register or sign in to comment